問題タブ [jcop]
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.
smartcard - GPShell を使用して JCOP カードのアプレットを一覧表示する
JCOP スマートカード ( CJ3A080 ) を持っています。カード上のデフォルトのアプレットを一覧表示したかったので、GPShell の最新バージョン (1.4.4) をダウンロードして、という名前のスクリプトを実行しますlistjcop10.txt
。しかし、それは失敗しました。これはスクリプトの内容です:
listjcop10.txt :
そして、これは GPSShell の出力です:
問題の原因を知っている人はいますか?
このカードは私がここで言及したのと同じカードであることに注意してください
encryption - Javacard がサポートする暗号化アルゴリズム
Javacard でサポートされている暗号化/署名アルゴリズムのリストを提供する JCop または GPShell コマンドはありますか?
たとえば 3-DES のサポートされているキーの長さを提供するのはどうですか?
仕様がわからないカードの情報が欲しい…
smartcard - なぜMFが選べないのですか?
JCOPカード(CJ3A080)を持っています。これは、OpenSC-Tool list files
コマンドの出力です。
質問 1: これらのゼロバイトは何ですか? EEPROMですか?もしそうなら、なぜ 128 バイトなのですか (私のカードには 80KB の EEPROM があります)。
質問 2: 下の行の要素の意味は何ですか?
質問 2: 出力からわかるように3F00
、AID を持つ DF が必要ですよね? では、なぜ私はそれを選択できないのですか?
これは融合されていないカード (パーソナライズされていない) であることに注意してください -->ここを見てください
更新 1:
上記の同じコマンドを使用して、他のいくつかのカード(一部のメモリカードも)をテストしました。出力は上記の出力と同じで、ATR が変更されただけです。この出力は正確で信頼できますか?
更新 2:
インストールされているドライバーを一覧表示すると、次のように出力されます。
私のカードはJCOPカードです。そして、上記のリストに JCOP が表示されます。しかし、-n
パラメータを使用するとサポートされていないカードで応答します。
smartcard - スマート カードの事前パーソナライゼーションと履歴バイト
融合されていないスマートカードを持っていました(つまり、事前にパーソナライズされていませんでした)。ATR= があり3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 32 52 33 A2
ます。
Q1: カードのヒストリカル バイトはどこにありますか? それらをどのように分析できますか?
Q2: カードのモデルはどこで確認できますか? インターネットで ATR を検索しましたが、何も見つかりませんでした。
GPJなどのツールを使用して、本当に空白のカード (融合されていないカードを意味します) のアプレットを一覧表示しようとすると、次の出力が表示されます。
上記の出力は、ツールが選択する SC を見つけられなかったことを意味します。
私はインターネットで多くのことを検索し、最終的に、個人化前の手順にキー ( Transport-Key )が必要であることがわかりました。
いくつかの知識を共有させてください!
パーソナライゼーション前の手順は次のとおりです (JCOP の場合)。
- ATRの依頼
- Select コマンドでルート アプレットを選択します (Transport-Key はこのアプレットの AID です)。
- ブート コマンド
- 必要な数の Read、WRITE、ADMINEXEC、SB_NAT_APPLET_INSTRUCTION、および AUTH コマンドが可能です。
- PROTECT コマンド
- コマンドを融合する
- カードをリセットします。
ステップ 4 では、IC をデフォルト設定で初期化します (IC の必要なライフサイクルの構成、通信動作の定義、ATR および/または ATS パラメータ、またはアプレットのプリロード)。
ところで、最初の 2 つの手順 (1 と 2) を実行してから、カードをリセットし、アプレットをもう一度一覧表示しようとしました。
ご覧のとおり、アプレットは AID= で表示されA0 00 00 01 51 00 00
ます。しかし、私はEXTERNAL AUTHENTCATコマンドをうまく実行できませんでした!
Q3: 外部認証が失敗したのはなぜですか? SDキーを設定していないから?
OpenSC Toolを使用してこのアプレットを選択しようとしました:
Q4: この出力の意味は何ですか?
以下では、 get-dataスクリプトの後のGP Shellの出力も確認できます。
Q5: この出力の意味は何ですか? どうすれば分析できますか?
javacard - .cap ファイルの読み込みで DAP 検証を行うには?
.capファイルをインストールしたい。しかし、ファイルのアップロード中にCard Manager にDAP検証を実行してもらいたいのです。何をすればよいでしょうか?デフォルトで DAP をチェックしますか、それともインストール プロセスでいくつかのパラメータを使用する必要がありますか?
私のスマート カードは、Global Platform 2.2.1に準拠したJava Card 3.0.1です。
アプレットの開発にEclipseとJCDKを使用し、アプレットのアップロードにgpとJCManagerを使用しているわけではありません。
applet - javacardx.framework.math.BigNumber の使用時にアプレットがインストールされない
javacard アプレットで BigNumber データ型を宣言しているときに問題が発生しました。宣言をコメントするだけで、アプレットはシミュレーターに正しくロードされます。正確には、import.cap ファイルの読み込み中の問題です (jcshell: エラー コード: 6a80 (間違ったデータ))。
Javaカードキット2.2.2を使用
}
javacard - PCSC 例外 0x8010002f の取得
JCOPツールを使用しているので、Javaカードにロードします。カードに正常にロードされますが、コマンドを送信すると、APPLETを選択すると9000が返されますが、他のコマンドは返されます。
Gpshell を使用していると、次のようなエラーが発生します。
デバッグ モードでは、すべての結果が良好になります。誰が私がどこで間違いを犯しているのか教えてもらえますか???
java - JCOP 独自のメソッドを使用して使用可能なメモリを返す方法は?
以下に、APDU コマンドの受信時に EEPROM の使用可能なメモリを返すように記述されたプログラムを示します。
しかし、APDU コマンドをアプレットに送信すると、以下が返されます0x6F00
。
上記のプログラムを以下のループでも試したことに注意してください。
コンパイルも成功しました!コンパイラは、配列インデックスの型をbyte
only またはshort
only に制限すべきではありませんか? インデックスに両方のタイプを受け入れるのはなぜですか?
-この 2 番目のプログラムは、OpenSCTool で同じ出力が得られます。どうしたの?