1

私は Java Card テクノロジの初心者で、Java Card テクノロジについて読み始めたばかりです。カード用のスマート アプレットを作成したいと考えています。私の目標は、非接触で使用されるカードで動作することです。NFC カードリーダー ACR122 を使用して *.cap ファイルをカードにインストールするために、jar ファイル (GlobalPlatformPro) をダウンロードしました。しかし、残念ながらエラーが発生しました:

Exception in thread "main" java.lang.IllegalArgumentException: apdu must be at least 2 bytes long
        at javax.smartcardio.ResponseAPDU.check(ResponseAPDU.java:73)
        at javax.smartcardio.ResponseAPDU.<init>(ResponseAPDU.java:67)
        at sun.security.smartcardio.ChannelImpl.transmit(ChannelImpl.java:91)
        at pro.javacard.gp.GlobalPlatform.select(GlobalPlatform.java:203)
        at pro.javacard.gp.GPTool.main(GPTool.java:334)

私の最初の質問は、このリーダーを使用してアプレットを作成することは可能ですか? 次に、これをどのように行うことをお勧めしますか?

4

1 に答える 1

0

問題は、Global Platform も Java Card もサポートしていないカードにアプレットをアップロードしようとしていることです。Mifare 1K はシンプルなデータ ストレージであり、独自の API を使用して書き込んだデータを保持できます。アプレットを実行できません。このカードは「スマート」ではありません。

エラー メッセージには、応答 APDU が予想よりも短いことが示されています。Mifare 応答は ISO7816 に従わず、応答ステータスは 1 バイトのみで構成されますが、ISO7816 は少なくとも 2 バイト長のステータス ワードを想定しています。

別のカードを探します。検索するキーワードである JCOP をサポートする必要があります。

于 2015-10-23T17:04:36.583 に答える