2017-04-06 29 views
-1

時雖然使用apdu.sendBytesLong()函數形式的APDU命令從Java卡發送數據發送127個字節作爲響應APDU命令,我能夠發送127字節數據作爲響應,但128字節數據給出錯誤代碼6f00(SW_UNKNOWN)。 爲什麼會發生這種情況,任何人都可以提出解決方法,而不需要將數據分成兩個apdu命令。無法從Java卡發送128點字節的數據,但可以使用sendBytesLong()

le = apdu.setOutgoing(); 
      if(le != 128) 
       ISOException.throwIt(ISO7816.SW_WRONG_LENGTH); 
apdu.setOutgoingLength((byte)le); 
apdu.sendBytesLong(mod_PkAIKR,(short)0, le); 

其中mod_PkAIKR是128字節的字節數組。

謝謝

+0

你怎麼能指望我們找出不透露你的代碼的相關部分?並通過有關我的意思是,你處理APDU,並與卡的通信APDU跟蹤Java卡代碼的一部分。 –

+0

@MichaelRoland不需要代碼,但我仍然添加了。 –

+0

當然,你需要發佈的代碼(見http://stackoverflow.com/help/mcve)如果您希望我們能夠找出爲什麼你的代碼* *不起作用。 –

回答

0

變化 apdu.setOutgoingLength((byte)le);apdu.setOutgoingLength(le);

  1. 參數類型的API apdu.setOutgoing()的是短暫的,它沒有需求類型轉換。
  2. 如果您將轉換爲字節,參數值將成爲負值。 (byte) 128的值是-128
相關問題