2017-09-19 37 views
2

私は.CAPファイル(アプレット)を持っています。私はそれを私のJavaカードにインストールしたいと思います。 私はGPShellやapdutool(JCDKから)のようなツールを使用してそれを行うことができますが、インストールプロセスを自分で複製したいと思っています。Java CardにアプレットをインストールするためのAPDUコマンドのシーケンスは何ですか?

GPスタンダードでは、インストールプロセスは次のとおりです。APDUコマンドINSTALL [for load]の後に複数のLOADコマンドを続け、INSTALL [for install]コマンドを続けます。

.CAPファイルをインストールするために、オラクルのドキュメントでは、.CAPファイルをインストールするための異なる一連のAPDUコマンドが提案されていますが、選択(発行者セキュリティドメイン?)、CAP開始、コンポーネント## Begin + Data + End(各コンポーネント)アプレットを作成します。

アプレットをインストールする方法はどちらも同等ですか?

LOADコマンドのDATAフィールドには何が含まれていますか? GP標準ではそれが指定されておらず、.CAPファイルから生のバイトを送信することが間違っていることが分かりました。 私はGPShellを使ってアプレットを正常にインストールしましたが、LOADコマンドのDATAフィールドはわかりませんでした。私はAPDUコマンドをgenetateするには、Javaカード開発効率向上キットからscriptgenを使用したOracle方法が、それらのコマンドからINSバイト(B0、B2、B4、BC、BA)のためにGPShell output

にはGPの参照を持っていません。 scriptgen output

+0

Oracleのマニュアルを教えてください。 .capファイルをロードするにはさまざまな方法があります。正式にGPを使用する必要はありません。しかし、GPは99%の時間使用されます。これは同じプロセスを記述する別の方法である可能性が高くなります。 –

+0

タグを使用したときにWebアプレットが推定されるという単純な理由から[tag:applet]タグを削除しました。ちょうど[タグ:javacard]で十分です。 –

+0

oracle doc:https://docs.oracle.com/cd/E59935_01/guide/downloading_cap_files_and_creating_applets.htm#GUID-E07D5102-4DC0-4E25-B124-7FB474396C01へのリンク。おそらく、GP標準ではこのコマンド領域(INSバイトB0、B2、B4、BC、BA)はカバーされていません。私はしかし、oracleプラットフォームからのapduコマンドシーケンスを使用して、それが動作するかどうかを確認しようとします。 – Vbs

答えて

3

Oracleのドキュメントは。CAPファイルをインストールするためのAPDU コマンドの異なる配列を提案しながら:(?発行者セキュリティドメインを )を選択し、CAPは+データ+エンドを開始し##、コンポーネントを開始します(各コンポーネントについて)、CAP 終了、アプレットの作成。

カードにアプレットをロードしてインストールする責任があるコンポーネントであるため、アプレットをインストールする前に、カードマネージャ(発行者セキュリティドメイン - ルート)を選択する必要があります。また、セキュアチャネル(好ましくはSCP02)を確立することによってカードマネージャーで認証する必要があります。

アプレットをインストールするには、APDUの次の手順を実行します -

  1. 選択発行者セキュリティドメイン(ISD)。 00 a4 04 00 Lc AID_ISD

  2. ISDで認証してください。

    SCP02をセットアップします(コマンド初期化の更新、外部認証を参照してください)。 ここでは、カードの3DESキーが必要です。カードに付属のマニュアル を参照してください。

  3. [送信する]をインストールします。

紛らわしいものはGP標準でインストール プロセスであることである:APDUコマンドは、[負荷のために] INSTALL複数のLOAD INSTALL [インストールのために]コマンドが続く コマンドが続きます。

  1. Send apdu、Load Blocks。

    あなたが持っているアプレットの.capファイルは、その構成CAPの ファイルのジップです(http://pfa12.free.fr/doc_java/javacard_specifications/specs/jcvm/html/JCVM06cap.html)。したがって、各CAPファイルを1枚ずつカードに送信する必要があります。

    などロード(Header.cap)、ロード(Directory.cap)...

  2. は、APDUを送信し、[インストール方法]インストールします。インストールが完了。

+1

OPは[GlobalPlatformPro source](https://github.com/martinpaljak/GlobalPlatformPro/blob/67ee76e7f189fada318053b6daf2d55d92a1c89c/src/pro/javacard/gp/CapFile.java#L215)を調べたいかもしれません。LOADが準備される。 – vlp

関連する問題