いくつかのデータをオフセットISO7816.OFFSET_CDATA
でAPDUバッファに保存し、それらのバイトを応答として送信するJava Cardアプレットを作成しました。スマートカードからの応答ステータスワード0x61xxの意味は何ですか?
Util.arrayCopy(Input_Data, (short)0, buffer, (short) ISO7816.OFFSET_CDATA, (short)Datalength);
apdu.setOutgoing();
apdu.setOutgoingLength((short)(DataLength));
apdu.sendBytesLong(buffer, ISO7816.OFFSET_CDATA, (short)(DataLength));
これをシミュレータで問題なくテストしました。しかし、私が実際のスマートカード(Gemaltoが製造したJava Card v2.2.1)でこれをテストすると、ステータスワード0x6180
が返されます。
私のコマンドAPDUは00 40 00 00 80 Data
です。データの長さは128バイトなので、バッファに4 + 128バイトあり、(260-(4 + 128))バイトはnullです。
すみません。私はアンデュドゥードゥアップではありません00 C0 00 00 xx。私はapduを送る00 00 00 00 80 INS = 40で自分の機能を選択するデータ。私の機能を選択する方法私はapduでC0を使用していますか? –
@FatemeJafari「00 40 00 00 80 Data」を使用すると、「61XX」が受信され、「00 C0 00 00 XX」が使用されます。これは、カードからデータを受信するための特別なコマンドです。 '40'コマンドの応答を返します。あなたは他のアプレットを選択する必要はありません... – vojta
ありがとう非常に親愛なるvojta。この状態で私は1つのapduで私の応答を得るでしょうか?私は256以上の応答があれば、どうすればいいですか? –