APDU für I²C Smart Card

OP #3105243
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.
Gast #3113563
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.