![]() |
AW: Smartcard auslesen, Kommandos senden
Zitat:
Ist aber egal welche Kompo die laufen alle recht gut. |
AW: Smartcard auslesen, Kommandos senden
CPort benutze ich auch, vielleicht kannst du mir ja weiterhelfen. Wie machste denn das, also erst ATR abfragen dann Serial dann HexSerial usw. Es muss doch eine bestimmte Reihenfolge oder Ablauf stattfinden oder? Und das mit den Answer klappt ja auch noch nicht so recht, siehste ja in meinen Postings. Punkte Smartcard Programmierung hab ich NULL Erfahrung.
|
AW: Smartcard auslesen, Kommandos senden
Zitat:
CMD's senden ganz einfach :)
Delphi-Quellcode:
Nachdem die Karte im richtigen Modus läuftconst sc_GetHEXSerial: Array [0 .. 4] Of byte = ($02, $01, $00, $00, $00); //------------------------------------------------------------------------ Function ICC_Async_CardWrite(Var reader: treader; command: Pbyte; command_len: Word; rsp: Pbyte; Var lr: Word): Boolean; Const resync: Array [0 .. 3] Of byte = ($21, $C0, $00, $E1); Var try1: Integer; a: byte; Begin a := command[0]; lr := 0; // will be returned in case of error Case (reader.protocol_type) Of ATR_PROTOCOL_TYPE_T0: Protocol_T0_Command(reader, command, command_len, rsp, lr); ATR_PROTOCOL_TYPE_T1: Begin try1 := 1; While (try1 <= 3) Do Begin If Protocol_T1_Command(reader, command, command_len, rsp, lr) = OK Then break; Inc(try1); // try to resync Protocol_T1_Command(reader, @resync, sizeof(resync), rsp, lr); reader.ifsc := DEFAULT_IFSC; End; End; ATR_PROTOCOL_TYPE_T14: Protocol_T14_ExchangeTPDU(reader, command, command_len, rsp, lr); Else Log.cs_log('Error, unknown protocol type %i', [reader.protocol_type]); Result := false; exit; End; If debug Then Begin Dump.cs_dump(rsp, lr, 'answer from cardreader %s:', [reader.alabel]); End; Result := True; End; //------------------------------------------------------------------------- Function reader_cmd2icc(Var reader: tReader; buf: PByte; l: Word; cta_res: PByte; Var cta_lr: Word): Boolean; Var rc: Boolean; Begin If debug Then Begin Dump.cs_dump(buf, l,'write to cardreader %s:', [reader.alabel]); End; rc := ICC_Async_CardWrite(reader, buf, l, cta_res, cta_lr); end; ------------------------------------------------------------------------------ // * Ascii/Hex-Serial reader_cmd2icc(reader, @sc_GetASCIISerial, SizeOf(sc_GetASCIISerial), @cta_res, cta_lr); |
AW: Smartcard auslesen, Kommandos senden
Liste der Anhänge anzeigen (Anzahl: 1)
@totti
was bedeutet ATR_PROTOCOL_TYPE_T1: und ATR_PROTOCOL_TYPE_T14: und was ist das Dump.cs_dump @totti hab mein Projekt mal mit angehangen, vielleicht hast ja Lust mir unter die Arme zu greifen. |
AW: Smartcard auslesen, Kommandos senden
Zitat:
Dump ist nur ein LoggerThread der mir was ins Memo schreibt. Besser Du schreibst mir mal ne PM mit Deiner MailAddr dann schicke ich Dir mein Projekt zu. Ist aber nicht einfach zu lesen da ich es teilweise von C übersetzt habe. Das kannst Du dann Step by Step mal durchgehen. T1 und T14 usw. sind die verschieden Protokolle der jeweilegn Karten. Irteto, Nagra .... googeln Und wenn Du dann bei SSL und BigNum Typen angekommen bist :P |
AW: Smartcard auslesen, Kommandos senden
OK, werd ich mir dann mal anschauen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz