簡體   English   中英

在JavaCard中安裝小程序

[英]Installing applet in javacard

我通過Eclipse創建了流行的“ Hello World” javacard代碼的.cap文件

現在,我想通過GPShell和ACR38智能卡讀取器將其加載到真實的Java卡中。

問題:我需要任何密鑰才能將.cap文件加載到卡中嗎? 我的意思是,我應該在將小程序上傳到卡中之前進行身份驗證嗎?還是不需要? 我認為必須進行身份驗證。 在不進行身份驗證的情況下上傳.cap是不合理的。 但我不知道如何進行身份驗證。 問題:這有什么問題?

C:\Users\ghasemi>java -jar e:\gpj\gpj.jar -load e:\helloWorld.cap -install
Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
javax.smartcardio.CardException: connect() failed
        at sun.security.smartcardio.TerminalImpl.connect(Unknown Source)
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_SHARING_VIOLATION
        at sun.security.smartcardio.PCSC.SCardConnect(Native Method)
        at sun.security.smartcardio.CardImpl.<init>(Unknown Source)
        ... 2 more
Found card in terminal: ACS CCID USB Reader 0
java.lang.NullPointerException
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)

C:\Users\ghasemi>java -jar e:\gpj\gpj.jar -load e:\helloWorld.cap -install

Found terminals: [PC/SC terminal ACS CCID USB Reader 0]

Found card in terminal: ACS CCID USB Reader 0

ATR: 3B 7F 94 00 00 80 31 80 65 B0 85 02 02 ED 12 0F FF 82 90 00

DEBUG: Command  APDU: 00 A4 04 00 07 A0 00 00 01 51 00 00

DEBUG: Response APDU: 6A 82

Failed to select Security Domain GP211 A0 00 00 01 51 00 00 , SW: 6A 82
DEBUG: Command  APDU: 00 A4 04 00 08 A0 00 00 00 18 43 4D 00

DEBUG: Response APDU: 6F 65 84 08 A0 00 00 00 18 43 4D 00 A5 59 73 4A 06 07 2A 8
6 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B 02 02 01 01 63 09 06 07 2A 86 48
86 FC 6B 03 64 0B 06 09 2A 86 48 86 FC 6B 04 01 05 65 0B 06 09 2B 85 10 86 48 64
 02 01 03 66 0C 06 0A 2B 06 01 04 01 2A 02 6E 01 02 9F 6E 06 12 91 20 11 02 02 9
F 65 01 FF 90 00

Successfully selected Security Domain GemaltoXpressPro A0 00 00 00 18 43 4D 00
DEBUG: Command  APDU: 80 50 00 00 08 17 2A 53 4F AC DF 8D 16

DEBUG: Response APDU: 69 82

javax.smartcardio.CardException: Wrong initialize update, SW: 69 82
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.openSecureChan
nel(Unknown Source)
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)

n

響應代碼6A 82用於Security_Status_Not_Satisfied

選擇Security Domain ,由於以下兩個原因之一,可能會出現此狀態字:

  • 卡的卡Life Cycle State (CLCS)LOCKEDTERMINATED ,因此不允許選擇安全域,因為如果CLCS為LOCKED則只能選擇具有Card Lock特權的安全域和/或應用程序,並且如果CLCS被TERMINATED則如果安全域具有` TERMINATED最終應用程序''特權,則僅應處理GET DATA命令,所有其他命令應被禁用並返回錯誤;如果CLCS被LOCKED則嘗試選擇該安全域和/或具有卡鎖特權並嘗試在SCP session的幫助下使用SETSTATUS命令將卡生命周期狀態(CLCS)移至SECURED應用程序,否則,如果CLCS被TERMINATED則CLCS無法切換回SECURED,因為此狀態是不可逆的。

  • 或您嘗試選擇的Security Domain本身處於LOCKED狀態,在這種情況下,OPEN可能會阻止安全域進一步選擇,並返回錯誤狀態字。

@CLCS-卡生命周期狀態。

樂意效勞。

您應該要求有關卡的全球平台狀態。 6982是一個常規狀態字,表示“安全狀態未滿足”,因此您的卡可能處於錯誤狀態(例如,全局平台已鎖定或已終止)。

也可能是您使用了無效的Global Platform密鑰集,或者這些密鑰不可用。

請與智能卡的供應商聯系,以了解卡的狀態以及應使用的密鑰。

卡管理器AID顯示它是金雅拓XPresso卡。 該卡的默認卡為47454d5850524553534f53414d504c45嘗試設置這些密鑰。 如果它不起作用,則該卡已更改CM密鑰,或者該卡可能已被鎖定,請注意,嘗試使用錯誤的密鑰進行過多的身份驗證可能會鎖定該卡

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM