Forum: Mikrocontroller und Digitale Elektronik APDU für I²C Smart Card


von Henry M. (heinrich85)


Lesenswert?

Hallo liebe Forrengemeinde,
Ich bräuchte dringen eure Hilfe oder zumindest ein Feedback.

Ich möchte mithilfe eines Kartenlesers (intelliStripe65) Daten auf eine 
EEPROM I²C-Smart Card schreiben und lesen.  Dazu benutze ich Befehle, 
die APDU’s zwischen Karte und Kartenleser austauschen. Das Schreiben 
eines Bytes funktioniert  und das Lesen mehrerer Bytes auch. Wenn ich 
mehrere Byte mit einmal schreiben möchte gibt es jedoch einen Fehler.
Zum Schreiben mehrerer Bytes benutze ich z.B. die APDU: 0,D6,4,0,2,A,B 
und bekomme als Antwort die SW1/SW2 Antwort 65,81 in Hexadezimal, was 
laut Dokumentation des Kartenlesers bedeutet, dass einige Bytes nicht 
geschrieben werden konnten. Ich weiß das die ersten beiden Zahlen der 
ADPU immer gleich sind, das die 3. und 4. die Adresse der Speicherstelle 
angeben und die 5. die Länge der zu schreibenden Bytes.  Was ich nicht 
ganz verstehe ist die genaue Adressierung, da ich durch ausprobieren 
sehe dass die Speicherstellen 3,0 und 4,0 direkt nebeneinander liegen.
Vor dem lesen/schreiben auf die Karte ist es laut Doku notwendig, dass 
man einstellt ob für den Befehl Bytewrite 3 oder 4 Byte benötigt werden. 
Ich stelle diese Option auf 4 Byte.
Die Chipkarte ist vom Typ 24AA16/24LC16B mit 16KByte.
Ich wäre sehr dankbar für jede Antwort.

von MagpieGuy (Gast)


Lesenswert?

Hi,
ich weiß nicht genau, ob du das schon ausprobiert hast, aber der Befehl 
"D6" steht für "UpdateBinary" und nicht "WriteBinary". Die Befehle und 
auch Infos zur Addressierung kann man hier nachlesen:

http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_6_basic_interindustry_commands.aspx#chap6_2

Ein WriteBinary führst du mit dem InstructionCode D0 statt D6 aus.

Ich versuche gerade etwas Ähnlihches. Allerdings scheitere ich schon am 
Schreiben eines Bytes auf die Karte. Kannst du mir vielleicht verraten, 
welche APDU's du alle in welcher Reihenfolge absetzt, um ein Byte auf 
die Karte zu schreiben?

Ich wäre dir furchtbar Dankbar :)

Gruß
MagpieGuy

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.