Аутентификация Java бесконтактной смарт-карты

Я новичок в разработке, связанной с NFC. Я хочу создать Java-приложение, которое раньше считывало и записывало защищенный элемент в смарт-карту mifare desfire ev1. Поэтому я нашел свободную библиотеку. Но проблема в том, что я хочу сначала проверить подлинность смарт-карты. создал какой-то метод authenticate и попробуйте с этим. Но он всегда говорит, что класс не поддерживает error. В этом коде я хочу загрузить некоторые ключи в приложение. Сначала я хочу узнать, хочу я создать какое-либо приложение или нет, если оно хочет создайте приложение, как можно сначала пройти аутентификацию.

Это мой код

    /**
      * Load key
      */
   public String loadKey(byte[] key, char keyType) throws CardException
   {
       String res = null;
       System.out.println("Load Key");
       CommandAPDU apdu = this.reader.loadKey(this.decoder.decode(key), keyType);
       showAPDU(apdu.getBytes());
       ResponseAPDU r = send(apdu);
       showResponse(r.toString());
       if (r.getSW() == E_NO_ERROR) {
           System.out.println("Sucessfully Load  keys");
       } else{
           System.out.println("load keys failed");
       }
       res = APDUtoJSON(r).toString();
       return res;
   } 
//send command apdu
private ResponseAPDU send(CommandAPDU cmdApdu) throws CardException {
    return card.getBasicChannel().transmit(cmdApdu);
}

// read response in main class i call these methods
byte[] key = new byte[]{(byte) 0x1a, (byte) 0x1a, (byte) 0x1a, (byte) 0x1a,
                        (byte) 0x1a, (byte) 0x1a, (byte) 0x1a, (byte) 0x1a,
                        (byte) 0x1a, (byte) 0x1a, (byte) 0x1a, (byte) 0x1a,
                        (byte) 0x1a, (byte) 0x1a, (byte) 0x1a, (byte) 0x1a};
terminal.loadKey(key, 'a');

0 ответов

Другие вопросы по тегам