Delphi-PRAXiS
Seite 7 von 7   « Erste     567   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Smartcard auslesen, Kommandos senden (https://www.delphipraxis.net/164316-smartcard-auslesen-kommandos-senden.html)

totti14 9. Nov 2011 20:40

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Zitat von newuser01 (Beitrag 1135399)
welche Komponente benutzt du @totti ?

CPort benutze ich.
Ist aber egal welche Kompo die laufen alle recht gut.

newuser01 9. Nov 2011 20:44

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.

totti14 9. Nov 2011 20:50

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Zitat von newuser01 (Beitrag 1135395)
Zitat:

Zitat von totti14 (Beitrag 1135393)
Hi newuser01,
was hast Du vor :?

Soll das so aussehen wir bei mir :)


ja genau, du weist schon was ich will :-D auslesen und CMDs senden



CMD's senden ganz einfach :)

Delphi-Quellcode:

const
 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);
Nachdem die Karte im richtigen Modus läuft

newuser01 9. Nov 2011 21:09

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.

totti14 9. Nov 2011 21:41

AW: Smartcard auslesen, Kommandos senden
 
Zitat:

Zitat von newuser01 (Beitrag 1135414)
@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.


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

newuser01 9. Nov 2011 21:53

AW: Smartcard auslesen, Kommandos senden
 
OK, werd ich mir dann mal anschauen


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.
Seite 7 von 7   « Erste     567   

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