私はnfc関連の開発に不慣れです.mifare desfire ev1スマートカードでセキュアエレメントを読み書きするために使用されるJavaアプリケーションを構築したいので、無料のライブラリを見つけました.しかし問題は、最初にスマートカードを認証したいことです.so iいくつかの認証メソッドを作成して試してみましたが、クラスがサポートされていないというエラーが常に表示されます。このコードでは、アプリケーションにいくつかのキーをロードしたいのです。最初に認証が可能な方法でアプリケーションを作成します。
これらは私のコードです
/**
* 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');