ãã®ã·ãªãŒãºã®èšäºã§ã¯ããœãããŠã§ã¢ãä¿è·ããããã®Javaã¹ããŒãã«ãŒãïŒé»åããŒã®å®äŸ¡ãªã¢ããã°ïŒã®äœ¿çšã«ã€ããŠèª¬æããŸãã ãµã€ã¯ã«ã¯ããã€ãã®ç« ã«åãããŠããŸãã
èšäºã®æ å ±ãèªãã§ç解ããã«ã¯ã次ã®ã¹ãã«ãå¿ èŠã§ãã
- WindowsãœãããŠã§ã¢éçºã®åºç€ïŒDelphiãVisual Basicãªã©ã®èŠèŠç°å¢ã§ã®ããã°ã©ãã³ã°ã¹ãã«ã§ååã§ãïŒ
- æå·åã®åéã«é¢ããåºæ¬çãªç¥èïŒæå·ã察称ãé察称ã¢ã«ãŽãªãºã ãåæåãã¯ãã«ãCBCãªã©ãå¿ é ã®èªã¿åãã«ã¯Bruce Schneier Applied Cryptographyããå§ãããŸãïŒã
- å°ãªããšããªã¢ãŒãã§æ§æïŒJavaãC ++ãCïŒãPHPãªã©ïŒã®Javaãé£æ³ããããããããèšèªã®åºæ¬çãªããã°ã©ãã³ã°ã¹ãã«
ãµã€ã¯ã«ã®ç®æšã¯ãèªè ã«Javaãããã玹ä»ããããšã§ãïŒãã·ã¢èªã§ã®äœ¿çšã«é¢ããæç®ã¯ã»ãšãã©ãããŸããïŒã ãã®ãµã€ã¯ã«ã¯ããJavaãããã«åºã¥ããœãããŠã§ã¢ä¿è·ã®éçºã®ããã®ã¬ã€ãã©ã€ã³ãã®ã¹ããŒã¿ã¹ããJavaããããžã®ã¬ã€ããã®ã¿ã€ãã«ã䞻匵ããŠããŸããã
ãµã€ã¯ã«ã®æ§æïŒ
- 第1ç« Javaãããã äžè¬çãªæ å ±ã
- 第2ç« ã¢ãã¬ããéçºè ã®èŠ³ç¹ããèŠãJavaããã
- 第3ç« IDEã®ã€ã³ã¹ããŒã«ãšæ§æ
- 第4ç« æåã®ã¢ãã¬ããã®äœæ
- 第5ç« ã»ãã¥ãªãã£
1.å¿ èŠãªãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«
Javacard SDK 2.2.1ãå®å šã«ãµããŒãããéåžžã®IDEã«åºããããŸããã§ããã ãããããIBMãNXPã«å£²åŽããJCOP ToolsãšãNXPã¯ã©ããã§å€±ã£ããããããŸããã ãããããã®ããããèŠã€ãããšããŠããææã§ãã ããã䜿çšããã«ã¯ãNDAã®çœ²åãå¿ èŠã ãšåãããŠããŸãã ææã®SDKãããã€ãããããã®ãã¡CyberââFlex SDKã§ããäœæ¥ããŠããŸããã 奜ããããªãã£ãã
NetBeans 6.9+ã«ã¯ãéåžžã«åŒ·åãªJavacard Toolsãã©ã°ã€ã³ãå«ãŸããŠããŸãã ãã ããæ®å¿µãªããããã®ãã©ã°ã€ã³ã¯ãJavacard SDK 3.0 Connectedãšäºææ§ã®ããã«ãŒãã®éçºã®ã¿ããµããŒãããŠããŸãã ããããåžå Žã«ã¯ãã®ãããªã«ãŒãã¯ã»ãšãã©ãããŸããã ãã ããJava Card API 3.xã®æ©èœã䜿çšããã«ãã®ç°å¢ã§ã¢ãã¬ãããéçºããéåžžã®SDK 2.2.1ã§ã¢ãã¬ããã®ãœãŒã¹ã³ãŒããåçŽã«ã³ã³ãã€ã«/å€æããããšã¯ãããŸããã
éçºã®ããã«ãç§ã¯é·ãéJavaéçºè åãã®éåžžã®Eclipse IDEã䜿çšããŸããããSDKããå¿ èŠãªãŠãŒãã£ãªãã£ãçµã¿èŸŒãããšã§å°ãé ã«æµ®ãã³ãŸããã ãã®ãããEclipse Webãµã€ãããJavaéçºè åãã®Eclipse IDEã®ææ°ããŒãžã§ã³ãããŠã³ããŒãããŠãã ããã
ããŠã³ããŒãããã¢ãŒã«ã€ããã©ããã«ïŒProgram Filesã§ã¯æãŸãããªãïŒããŒããã©ã€ãã«ããŠã³ããŒãããŸãã éåžžãeclipse-javaãã©ã«ããŒã®ãã©ã€ãã®ã«ãŒãã«é 眮ããŸãã 以éããã©ã«ãåã«ãã·ã¢èªã®æåãšã¹ããŒã¹ã䜿çšããããšã¯æãŸãããããŸããã
次ã«ããã¹ãŠã®ããŒãžã§ã³ã®Java SDKãå¿ èŠã§ãã éåžžãJavaSEïŒJava Standard Edition SDKïŒãJDKãšåŒã°ããŸãã OracleãSunãè²·åããããããªã³ã¯ã¯å€æŽãããå¯èœæ§ããããŸããããããçºçããå Žåã¯GoogleããæäŒãããŸãã ãããŸã§ã®ãšãããããããããŠã³ããŒãã§ããŸãã ã€ã³ã¹ããŒã©ãŒãè£ åãããŠãããããéåžžã©ããã«ã€ã³ã¹ããŒã«ããŸãã
ãŸãã Java Card Development Kit 2.2.1ãå¿ èŠã§ãã ãŸããéåžžã¯ããŒããã©ã€ãã®ã«ãŒãã«é 眮ããŸãã
次ã«ãã·ã¹ãã ãå°ãæ§æããå¿ èŠããããŸãã ããŒããŒãã§Windows + Breakãåæã«æŒãããåã«[ãã€ã³ã³ãã¥ãŒã¿]ã®ããããã£ãéããŸãã [詳现èšå®]ã¿ããã¯ãªãã¯ãã[ç°å¢å€æ°]ãã¿ã³ãã¯ãªãã¯ããŸãã 以äžãã·ã¹ãã å€æ°ã«è¿œå ããå¿ èŠããããŸãã
JC_HOME = CïŒ\ java_card_kit-2_2_1 -Java Card Development Kitã解åãããã¹
JAVA_HOME = cïŒ\ j2sdk1.4.1ã¯ãJava SDKãã€ã³ã¹ããŒã«ãããŠãããã¹ã§ãã Program Filesã«ã€ã³ã¹ããŒã«ããå Žåã¯ãçã8.3ãã¹ãCïŒ\ Prograã1 \ ...ãã䜿çšããããšããå§ãããŸãã
ããã§ãå€ã;ïŒ JC_HOMEïŒ \ bin;ïŒ JAVA_HOMEïŒ \ bin;ããPATHå€æ°ã®æåŸã«è¿œå ããå¿ èŠããããŸãã ã ãŸããå€æ°ïŒ ..ïŒ ã¯å±éããŠPATHãã¹ã«å®å šã«æå®ããæ¹ãé©åã§ãã
Java Card SDKïŒãµããã£ã¬ã¯ããªã®ãµã³ãã«ïŒããããã©ã«ããŒã«ããbuild_samples.batãã¡ã€ã«ãå®è¡ããããšã«ãããã€ã³ã¹ããŒã«ã確èªã§ããŸãã ãã ãã1.3ãŸãã¯1.4以å€ã®Java Developer Kitã䜿çšããå Žåã¯ãå°ã調æŽããå¿ èŠããããŸãã build_samples.batãã¡ã€ã«ãéãããã©ã¡ãŒã¿ãŒã-target 1.2 -source 1.2ãããset JCFLAGS ãè¡ã«è¿œå ããŸãïŒãã¡ããåŒçšç¬ŠãªãïŒã ã«ãŒãã®ãã¡ã€ã«ã³ã³ããŒã¿ãŒã¯ãäºææ§ã®ããã³ã³ãã€ã©ãŒã«ãã£ãŠãã¡ã€ã«ãã³ã³ãã€ã«ãããããšãæåŸ ããŠããããããããå¿ èŠã§ãã
build_samplesãèµ·åããŠæ£ããå®è¡ããããšã ïŒ JC_HOMEïŒ \ samples \ classes \ com \ sun \ javacard \ samples \ HelloWorld \ javacard \ãã©ã«ããŒã«ã HelloWorld.capãHelloWorld.expãHelloWorld.jcaãã¡ã€ã«ã衚瀺ãããŸãã HelloWorld.capãã¡ã€ã«ã¯ããããã«ããã«ã¢ããããŒãããæºåãã§ããŠããŸãã
2. Eclipseãæ§æãã
Eclipseãèµ·åããŸãã æåã®èµ·åæã«ãã¯ãŒã¯ã¹ããŒã¹ã®ç®çã®å Žæã«ã€ããŠå°ããããŸãã éåžžãããã©ã«ãã®å Žæããã®ãŸãŸäœ¿çšããŸãã
æ°ããJavaãããžã§ã¯ããäœæããŸãã ãã¡ã€ã«->æ°èŠ->ãããžã§ã¯ã-> Java-> Javaãããžã§ã¯ãã 圌ã«äœããåŒãã§ãã ããã å¿ èŠã«å¿ããŠãã¯ãŒã¯ã¹ããŒã¹ã®å€åŽã«é 眮ã§ããŸãã æ®ãã®èšå®ã¯ãã®ãŸãŸã«ããŠããããšãã§ããŸãã 次ãžãã¯ãªãã¯ããŸãã [ã©ã€ãã©ãª]ã¿ãã«ç§»åããããã«ãããã¹ãŠã®ãã®ãåé€ããŸãã [å€éšJARã®è¿œå ]ãã¿ã³ãã¯ãªãã¯ãã ïŒ JC_HOMEïŒ \ lib \ api.jarãã¡ã€ã«ïŒïŒ JC_HOMEïŒ =解åããJava Card SDKå ïŒãéžæããŸãã å®äºãã¯ãªãã¯ããŸãã
å·ŠåŽã«[ããã±ãŒãžãšã¯ã¹ãããŒã©ãŒ]ãŠã£ã³ããŠã衚瀺ãããŸãã srcãã©ã«ããŒãå³ã¯ãªãã¯ããŠããæ°èŠã->ãããã±ãŒãžããéžæããŸãã ãã¹ãã¢ãã¬ãããå«ãããã±ãŒãžãäœæããå¿ èŠããããŸãã 奜ããªååãä»ããŠãã ããã ããšãã°ãtestpackageã ããã±ãŒãžãšã¯ã¹ãããŒã©ãŒã§ããã±ãŒãžã¢ã€ã³ã³ãå³ã¯ãªãã¯ããŸãã [æ°èŠ]-> [ã¯ã©ã¹]ãéžæããŸãã ã¹ãŒããŒã¯ã©ã¹ïŒã¢ãã¬ããã®ã¯ã©ã¹ãç¶æ¿ããã¯ã©ã¹ïŒãšããŠããjavacard.framework.Appletããéžæããå¿ èŠããããŸãã mainïŒïŒïŒã¹ãŒããŒã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ãç¶æ¿ãããæœè±¡ã¡ãœããïŒãé€ããEclipseãæäŸãããã¹ãŠã®ã¹ã¿ãã®äœæã«æ³šæããŠãã ããã ã¢ãã¬ããã¯ã©ã¹ã®ååãå ¥åããŸãã ããšãã°ãTestAppletã å®äºãã¯ãªãã¯ããŸãã
ã芧ã®ãšãããEclipseã¯ã¢ãã¬ããã¹ã¿ããçæããŸãããããã¯ã以éã®ç« ã§å®å šã«æ©èœããã¢ãã¬ããã«ãªããŸãã
ããã§ãã¢ãã¬ãããã³ã³ãã€ã«ããŠ* .capãã¡ã€ã«ã«å€æããããã»ã¹ãèªååãããã¡ã€ã«ãäœæããããšã«ãããäœæ¥ãå°ã楜ã«ããå¿ èŠããããŸãã ãããè¡ãã«ã¯ã2ã€ã®ãã¡ã€ã«ãäœæããå¿ èŠããããŸãã 1ã€ã¯ã³ã³ãã€ã«ããã³å€æãšã¢ãã¬ããçšã§ããã1ã€ã¯ããããžã®ããŠã³ããŒãçšã§ãã ãã ããå¿ èŠã«å¿ããŠããã¹ãŠã1ã€ã®ãã¡ã€ã«ã«çµåã§ããŸãã ããã±ãŒãžã«mytestappletãšããååãä»ããã¢ãã¬ããã«MyTestAppletãšããååãä»ããããšã«æ³šç®ããŠãã ããã
ãããã£ãŠãbuild.batïŒ
@echo off set APPLET_HOME=C:\Work\JavaCard\MyTestApplet set PACKAGE_NAME=mytestapplet set APPLET_NAME=MyTestApplet del /q %APPLET_HOME%\bin\%PACKAGE_NAME%\*.class del /q %APPLET_HOME%\bin\%PACKAGE_NAME%\javacard\*.* %JAVA_HOME%\bin\javac -g -d %APPLET_HOME%\bin -classpath %JC_HOME%\samples\classes\;%JC_HOME%\lib\api.jar;%JC_HOME%\lib\installer.jar -source 1.2 -target 1.2 %APPLET_HOME%\src\ %JC_HOME%\bin\converter -config %APPLET_HOME%\%APPLET_NAME%.opt pause
ããã§ã¯ã³ã¡ã³ããªãã§ãã¹ãŠãæ確ã«ãªã£ãŠãããšæããŸãã ãŸããã³ã³ããŒã¿ãæ å ±ãèªã¿åããµã³ãã«ã®MyTestApplet.optãã¡ã€ã«ïŒæåŸãã2çªç®ã®è¡* .batïŒïŒ
-out CAP JCA -exportpath E:\java_card_kit-2_2_1\api_export_files;D:\java_card_kit-2_2_1\lib\api.jar -classdir C:\Work\JavaCard\MyTestApplet\bin\ -d C:\Work\JavaCard\MyTestApplet\bin\ -verbose -applet 0xa0:0x46:0x52:0x41:0x43:0x54:0x41:0x4c:0x0:0x1 mytestapplet.MyTestApplet mytestapplet 0xa0:0x46:0x52:0x41:0x43:0x54:0x41:0x4c:0x0 1.0
-appletãã£ã¬ã¯ãã£ãïŒã¢ãã¬ããã®AIDã瀺ãïŒãšæåŸã®è¡ïŒAIDãšããã±ãŒãžããŒãžã§ã³ïŒã«æ³šæããŠãã ããã *æäœåŸã®.capãã¡ã€ã«ã¯ããã©ã«ããŒCïŒ\ Work \ JavaCard \ MyTestApplet \ bin \ã«ãããŸãã
ãã®ãã¡ã€ã«ã¯ããå®è¡ã->ãå€éšããŒã«ã->ãå€éšããŒã«æ§æããä»ããŠEclipseã¡ãã¥ãŒã«è¿œå ã§ããŸãã ããã§ã¯ãã¹ãŠãéåžžã«ç°¡åã§ã説æãå¿ èŠãšããªããšæããŸãã
3. IntelliJïŒJetBrainsïŒIDEA
ç§ã¯IDEAã®ãã¡ã³ã ãšèšããªããã°ãªããŸããã IDEAã¯ãç§ã«ãšã£ãŠçæ³çãªãã¶ã€ã³ã®çæ³çãªç°å¢ã®çæ³ã§ãïŒç¹°ãè¿ããç³ãèš³ãããŸããããç³ãèš³ãããŸããã§ããïŒã ãã®ããããã°ããããŠEclipseã䜿çšããŠIDEAã«ç§»è¡ããbatãã¡ã€ã«ãåçŽãªAntã¿ã¹ã¯ã«å€æããŸããã ç§ã¯çµæã«éåžžã«æºè¶³ããŠããŸãã
åãããšã匷ããå§ãããŸãã ãã¡ãããå³ãšè²ã¯...
4.æ£è ã®èªè ã®ãããã§
ãã®å Žæãèªãã§ãããã¿ããªã«æè¬ããŸãã æè¬ãšresã¿ãåãå ¥ããããŸãã
ã³ã¡ã³ãå ã®è³ªåã«åãã§å¯Ÿå¿ããåçãå«ãŸããããã«èšäºãæŽæ°ããŠã¿ãŸãã