問題タブ [apdu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - eVRCスマートカード
eVRC(Electronic Vehicle Eegistration Cards)やJAVAでのAPD Uコマンドを読んだ経験のある人はいますか?
どんな例でも役に立ちます。
前もって感謝します。
smartcard - カード ID を取得する APDU コマンド
カード ID の 7 バイトを取得する APDU コマンドはどれですか? ISO14443 レイヤーで T=CL (ISO7816) プロトコルを使用します。カードの検出では、カード ID の 4 バイトしか確認できません。これは、カード ID を取得するための APDU コマンドであることがわかりました。たとえば、その:
0xFF, 0xCA, 0x00, 0x00, 0x00
しかし、このコマンドの結果は:6E 00
です。APDU の仕様では、「クラスはサポートされていません」と回答
その後、その APDU コマンドが次のようになる可能性があること
0x00, 0xCA, 0x00, 0x00, 0x00
が6A 88
わかり6A XX
ました。88
あなたはそれについてどう思いますか?
ありがとうございました!
PS すべてのコマンドとして:CLA, INS, P1, P2, LenData, Data
他の私のコマンドは正常に動作します (sellect aplet やそれで動作するなど)、カード ID の取得のみの問題
applet - どうすればSIMカードアプリケーションからSIMカードにデータを保存できますか?
私はSIMカードアプレットを書いていますが、SIMカードにデータを保存する必要があります。
しかし、私はそれをしませんでした。例を見つけて使用しましたが、シミュレーターを再起動するとデータが常に消えます。「cmdPUTDATA(apdu);」を使用します データを保存するためのメソッドで、「cmdGETDATA(apdu);」を使用します。データを保存する方法。
これが私のコードと応答です。
android - 現実の世界ではJavaCard3?
私は現在、卒業証書の仕事に取り組んでいます。作業の一部には、通常のSIMカード用のJavaCardアプレットの開発が含まれます。最初のオプションは、JavaCard2.X APIを使用し、 APDUコマンドを使用してアプレットと通信することです。これは、Android用のクライアントアプリ(このアプレットと通信する)を開発する必要があるため、非常に難しい場合があります。これは、これまでのところ、 Seek-for-androidと呼ばれる特別な(それほどユーザーフレンドリーではない)APIを介してのみ可能です。(私が間違っている場合は、私を訂正してください)
ただし、 JavaCard3 Connected Editionにも出くわしました。これは、Webアプレットなど、はるかに多くのオプションを提供します。SIMカードに展開されたWebアプリを使用し、モバイルデバイスのブラウザーを介してそれらにアクセスすることは非常に便利です(もちろん、そのようなアプレットの開発もはるかに簡単です)。問題は、実際の生活で、あるいは実際のSIMカードでさえ使用されているJavacard3についての言及が見つからないことです。そのようなカードのリリースの可能性についての言及すら見つかりません。実際、このトピックに関する情報はほとんどありません。
だから、私の質問は-このプラットフォームについて何か役に立つことを知っていますか?実際の使用法について何かありますか?どのカードがJavacard3をサポートしていますか?「JC3対応」の開発者用スマートカードはありますか?将来、このプラットフォームを備えたSIMカードはありますか?
答えてくれてありがとう!!!
android - セキュア エレメントに Android スマート カード API を使用する方法
Android アプリケーションを開発しており、データを安全に保存したいと考えています。
それには2つの方法があります
SIMカードの収納
2 つ目のカードを使用したいのですが、自分にとって有用であることを確認する前に、このカードを購入したくありません。
Google のSmartcardSample
( svn ) アプリケーションを実行しています。
しかし、私はこのようなエラーが発生します。
android - Android での Mifare Ultralight C 認証 (2.3.6)
Mifare Ultralight C (ISO/IEC 14443-2 および 14443-3 タイプ A 互換) タグを認証しようとしています。
Android で提供されている MifareUltralight.transceive() 関数で認証コマンドを送信します。NfcA.transceive() も確認しました (このオブジェクトは ISO/IEC 14443-4 タグを処理するためのものであり、IsoDep.transceive() を使用しないのはこのため、IsoDep はこの種のタグと互換性がないようです)。
したがって、最初に認証要求コマンドを送信すると、タグは AFxxxx..... で transceive() に応答します。ここで、タグの応答を処理し、その応答への応答で別の transceive() を送信しますが、... 直前にtransceive() を送信すると、タグが接続されます。送信すると、「タグが失われました」という警告と「送受信に失敗しました」というメッセージが表示されます。
また、NfcA で試してみると、同じ問題が発生します。
最後に、最初の 1 つの応答の後に 1 つの認証コマンドを送信しようとすると、「タグが失われました」という警告が表示され、送受信が失敗します。
だから私の質問は:
2 番目の transceive() を送信すると NFC タグが失われるのはなぜですか? <<
(2番目のtransceive()を送信する直前にタグで接続が開かれているため、タイムアウトの問題ではないようです)UIのものとは別のスレッドですべてのものを作成しました。
前もって感謝します!
blackberry - java.lang.SecurityException:この接続へのJSR177アクセスは許可されていません
SATターゲットでAPDUConnectionを使用してSIMカードと通信しようとしていますが、次の例外が発生します。
「java.lang.SecurityException:この接続へのJSR177アクセスは許可されていません」
通信しようとしているSIMカードでこの問題が発生しましたが、キャリア(Rogers)などの他のSIMカードでは、APDU接続を正常に開くことができます。
windows-phone-7 - Windows-phone-7 プラットフォームで PC/SC API にアクセスできますか?
Windows Phone 7 のドキュメント Web サイトを参照しましたが、APDU コマンド/応答 (ISO7816) を使用してスマートフォンの SIM カードと通信できるアプリケーションをこのプラットフォームで作成できるかどうかを見つけることができませんでした。
PC/SC やその他の API を使用してこれを行うことは可能ですか? はいの場合、それに関するドキュメントはどこにありますか?
java-me - j2meのjava.lang.nullpointerexception
mifareカードを読み取るためのアプリケーションを作成していますが、APDUを渡すと、エミュレーター「java.lang.nullpointerexception」でエラーが発生します。その後、ISO14443_CARDを正常に検出し、次のようにAPDUを渡します。
java - javax.smartcardio: ネイティブ コマンドを Defire カードに送信する方法は?
PC/SC 非接触リーダーと javax.smartcardio API を介して Mifare DESFire カードと通信する Java アプリケーションを作成しています。通常の ISO 7816 APDU (CLA、INS、P1-P2、Lc、コマンド データ、Le) を送信することができました。
Ridrix のブログで、DESFire カード (少なくとも私が使用している EV1 バージョン) は APDU とネイティブ コマンドの両方をサポートし、コマンドのほとんどが 1 バイト長しかないことを読みました。
たとえば、「バージョンの取得」コマンド:
このコマンドを SpringCard のPC /SC Diagプログラム(ここから入手可能) でテストしたところ、正しい応答が得られました。
しかし、javax.smartcardio でこのコマンドを送信することはできません。この API は実際のAPDU 用に作成されたようで、1 バイト長のコマンドは許可されません。
これが私がしたことです:
次のエラーが表示されます。
コマンドを送信する唯一の(AFAIK)他の方法を試しました:
同様のエラーが発生します。
javax.smartcardio などを使用してこの種のコマンドを送信する方法を知っていますか?
これらのコマンドをラップできることはわかっていますが、(より単純な) ネイティブ コマンドを使用することをお勧めします。
ありがとう。