просто хочу посмотреть, смогу ли я получить какую-то помощь по этому вопросу, у меня всего две недели работы с javacard, и давайте скажем, что это весело!хаха, но серьезно.Вот кусок кода, который я вызываю в моей функции, это очень просто, у меня есть немного случайно сгенерированных данных, и я зашифровываю один из массивов в apdu для отправки в ответ, другие команды работают так же хорошо, как memметод, но тот постоянно терпит неудачу.
private void initi(APDU apdu){
byte[] buf = apdu.getBuffer();
cdataoffset = (short)buf[ISO7816.OFFSET_CDATA];
len = Util.getShort(buf, cdataoffset);
try{
rd.generateData(tempbuf, (short) 0, (short) 32);
rd.generateData(serial, (short) 0, (short) 16);
rd.generateData(salt, (short) 0, (short) 6);
}
catch(CryptoException e){
ISOException.throwIt((short)(0x6900 | e.getReason()));
}
try{
privKey.setKey(tempbuf, (short) 0);
}
catch(ArrayIndexOutOfBoundsException e){}
catch(NullPointerException e){}
try{
cipherPriv.init(privKey, Cipher.MODE_ENCRYPT);
}
catch(CryptoException e){
ISOException.throwIt((short)(0x6900 | e.getReason()));
}
try{
cipherPriv.doFinal(serial, (short) 0, (short) 30, buf, cdataoffset);
}
catch(CryptoException e){
ISOException.throwIt((short)(0x6900 | e.getReason()));
}
apdu.setOutgoingAndSend((short) 0, len);
private void mem(APDU apdu){
byte[] buf = apdu.getBuffer();
short availableNVM = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_PERSISTENT);
short availableVM = JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_TRANSIENT_DESELECT);
Util.setShort(buf, (short) 0, availableNVM);
Util.setShort(buf, (short) 2, availableVM);
apdu.setOutgoingAndSend((short) 0, (short) 4);
}
Кстати, я использую карту JCOP J3A081 и gppro / antbuilder от martin для сборки / установки
ответ от карты:
A >> T = 1 (4 + 0000) B0120000 A << (0000 + 2) (89 мс) 6901 SCardDisconnect («Identiv SCR3500 A Contact Reader», true) </p>
Моя другая теория заключается в том, что я на самом деле получаю свой исключительный бросок плюс значение, но я не нахожу это вероятным, но я действительно не уверен, ха-ха