2017-12-05 2 views
0

Ich habe Java-Code, der zum Lesen von Daten von einer Smartcard funktioniert gut:Wie Smartcard APDU Befehl auf Java zu C# konvertieren?

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

Aber ich brauche diese auf C# & Ich schreibe dies:

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

Aber auf C# response.Data gleich zu null

Wer weiß, was ist mein Fehler oder was ist die Lösung?

Antwort

0

Basierend auf welchem ​​Status-Code, der von der Karte zurückgegeben wird, Ihr Problem vielleicht hat mehrere Gründe:

  1. SW = 61XX; Sie müssen den Befehl GET_RESPONSE an die Karte senden.
  2. SW = 9000; Sie müssen Sie C# -Wrapper überprüfen. (Vielleicht müssen Sie Le im Befehl apdu setzen)
  3. SW = 6F00; Etwas falsch in Ihrem Befehl oder Karte
  4. SW = alles andere; Sie müssen es im Internet suchen.

Viel Glück

+0

Ich denke, ist die letzte 00 bereits die LE; aber ich weiß, dass Java LC selbst berechnet, was von einer anderen Sprache aus manuell gemacht werden muss. – guidot

Verwandte Themen