必要なすべての tlv ライブラリ (JavaCard のライブラリ) を Java SE アプリケーションにインポートしましたが、期待どおりに動作しません。
例として、JavaCard アプレットで実行しようとすると、次のようになります。
byte data[] = {(byte) 0xc1, (byte) 0x02, (byte) 0x01, (byte) 0x02};
if (BERTLV.verifyFormat(data, (short) 0, (short) 4)) {
ISOException.throwIt((short) 0x6666);
}
受信したステータス ワードは 0x6666 です。つまり、データは整形式の BER TLV 表現です。
しかし、Java SE コードを実行しようとすると:
byte data[] = {(byte) 0xc1, (byte) 0x02, (byte) 0x01, (byte) 0x02};
System.out.println(BERTLV.verifyFormat(data, (short) 0, (short) 4));
結果は偽です。つまり、データは整形式の BER TLV 表現ではありません。
同様に、Java SE アプリケーションでは他の機能が正しく動作しません。
どうすれば修正できますか?
読んでくれてありがとう。