2017-12-05 21 views
0

私は、スマートカードからデータを読み出すため正常に動作するJavaコードを持っている:スマートカードのAPDUコマンドをJavaでC#に変換するには?

byte[] dataSetEF12 = {0, -80, -110, 0, 0}; 
apdu = new CommandAPDU(dataSetEF12); 
ResponseAPDU response = cardChannel.transmit(apdu); 
byte[] data = response.getData(); 

をしかし、私は私がこれを書くのC#&でこれを必要とする:

apdu = new APDUCommand(0x00, 0xB0, 0x92, 0x00, null, 0x00); 
APDUResponse response = cardReader.Transmit(command); 
byte[] data = response.Data; 

が、Cの#response.Dataはに等しいですnull

誰かが私の間違いを知っています または何が解決策ですか?

答えて

0

カードから返されたものを、ステータスコードに基づいて、あなたの問題は、おそらくいくつかの理由があります:

  1. SW = 61XXを。 GET_RESPONSEコマンドをカードに送信する必要があります。
  2. SW = 9000; C#ラッパーをチェックする必要があります。 (おそらくあなたはコマンドapduでLeを設定する必要があります)
  3. SW = 6F00;コマンドやカードに何か問題がある
  4. SW =他のもの;あなたはウェブ上でそれを検索しなければなりません。

私は推測

+0

幸運は、最終的に00はすでにLEです。しかし、私はJavaがそれ自身でLCを計算することを知っています。それは別の言語から手動で行う必要があるかもしれません。 – guidot

関連する問題