2

CMACなしのAPDU(CLAバイト= 0x80)をアプレットに送信しています。SCP02i55を使用しています。関数でデータを暗号化する必要がありSecureChannel.encryptData()ます。手動で暗号化したくないので、Global Platformがデータを暗号化する必要があり、正しいセッションキーで復号化した後(データは適切に計算されていると確信しています)。

次のコードを使用してAPDUバッファーを暗号化しています。

byte buffer = apdu.getBuffer();
buffer[0] = 20;
short lc = chan.encryptData(buffer, (short) 0, (short) 1);
apdu.setOutgoingAndSend((short) 0, lc);

これにより、セキュリティステータスが満たされない例外(0x6982)がスローされ、暗号化された20の応答APDUが期待されていました。

私は何を間違えますか?

4

1 に答える 1

0

ステータス バイトをラップするのを忘れました。標準から:

アプレットは、予期されるステータス バイトを応答データの末尾に追加して、安全なメッセージングによって保護する必要があります。

于 2012-10-03T21:46:46.493 に答える