スマートカードからのデータの書き込みと読み込み方法

私はアプレットを作成し、それをスマートカードにインストールしました。しかし、私はスマートカードにデータを読み書きする方法を知らないのですか?

private void readName(APDU apdu) throws ISOException
{
    byte[] apduBuffer = apdu.getBuffer();
    for (byte i=0; i

スマートカードからデータを読み取るのは正しいコードですか?

javacardを使ってスマートカードにデータを書き込む方法を教えてください。

1
はい、それをどうやるか教えてくれますか?
追加された 著者 Sachin D,
私はあなたがスマートカードからデータを読み書きすることを望まないと仮定します。代わりに、ホストからアプレットにデータを送る方法を尋ねています。カード上でアプレットを処理した後、応答データをホストアプリケーションに送り返します。
追加された 著者 Robert,

2 答え

あなたのカードは、接触または非接触のいずれかです。アプレットをすでにインストールしていると言いますから、カードの鍵があると思います。

もしそうなら、あなたのカードと連絡を取るためには、以下を行う必要があります:

  1. アプレットがインストールされているセキュリティドメインで最初に認証する
  2. アプレットのAIDを選択する
  3. SENDを使用してアプレットにデータを送信します。

応答では、アプレットから送信しているバイトが表示されます。

apdu.setOutgoingLength((short)userName.length);
apdu.sendBytes((short)5, (short)userName.length);

さらに何かが必要な場合は、達成しようとしていることの詳細を提供する必要があります。

1
追加された
問題は、2回目にアプレットにデータを送信すると、前のデータのデータが上書きされるということですか?アプレットからデータを読み込む方法を教えてください。
追加された 著者 Sachin D,
@KiranKuppa通常、SELECTを実行する前にセキュリティドメインで認証する必要はなく、セキュリティドメインの選択が解除されるため、SELECTによって実際には無意味になります。
追加された 著者 Maarten Bodewes,
アプレットにデータを送信するたびに、APDUとともにアプレットのプロセスメソッドが呼び出されます。したがって、このプロセスメソッドでは、必要なデータを保存します。あなたは働いている環境が何であるかを教えてください。 - どのような種類のカード(コンタクト/コンタクトレスか)、メーカー、GPバージョンのサポート、使用しているリーダー、J2SEなどでPC/SCを介して通信しようとしている人達成する?
追加された 著者 Kiran Kuppa,
@owlsteadああ、SDで認証する必要はないかもしれない。しかし、通常、開発された商用アプリケーションは、セキュリティレベルが外部通信のためにSDによって定義されるようなものです。さて、私は個人的には、SDとの相互認証を実行する必要がない場合
追加された 著者 Kiran Kuppa,

私は解決策を見つけました。実際に私はエディタのJavaカードプラグインとしてEclipseを使用しています。私はスマートカード上のプログラムを実行すると、以前のアプレットに毎回アプレットをインストールします。すべての応答のおかげで..

0
追加された
JAVACARD PluginとJCOP PluginをEclipseにインストールしました。ハードウェアでプログラムを実行しようとしていましたが、最新のアプレットを以前のAppletに置き換えました。プログラムを実行するたびにスマートカードのデータが失われました。私はスマートカードからのデータを表示するツールを見つけました。そして、プログラムが動作していることを知っています。
追加された 著者 Sachin D,
私はその答えの多くを理解していません(そして、実際にはあなたの質問の多くを理解していません)。どのプラグインを使用していますか? pyapduツールとは何ですか?
追加された 著者 Maarten Bodewes,
今、それは私にとって理にかなっています。 Sachinに報告してくれてありがとう。アプレットインスタンスを削除すると、Java Cardはガベージコレクションを実行しますが、ヒープ(永続メモリ内)をきれいに消去します。特別なAPIを使用せずに、あなたが処分できる唯一のストレージエリアです。
追加された 著者 Maarten Bodewes,