PCSCSmartCardComponent icon indicating copy to clipboard operation
PCSCSmartCardComponent copied to clipboard

Componente Delphi para SmartCard

The PCSC Connector Component for Delphi

The component has the following properties, methods and events:

Methods:

constructor Create(AOwner: TComponent); override;
destructor  Destroy; override;

  Obvious what these do

function Init: boolean;

  Init tries to establish a connection with the SmartCard API and to read the
  list of installed readers. If the connection is successfull, and a minimum
  of one reader is found, TRUE is returned

function Open: boolean;

  Open starts watching the selected reader for status changes

procedure   Close;

  Close cancels all open requests and finishes watching the reader

function Connect: boolean;

  Connect tries to connect to the card in the selected reader.
  If successful, TRUE is returned

procedure Disconnect;

  Disconnect disconnects from the card in the selected reader

function GetResponseFromCard(const apdu: string): string;
function GetResponseFromCard(const command : string; 
                             var   data    : string; 
                             var   sw1, sw2: byte): boolean;

  Let you send APDUs to the card. Either provide a complete APDU and get the
  resulting APDU as a string, or provide the command (CLA,INS,P1,P2,P3) and DATA and get
  SW1, SW2 and DATA as response and TRUE as result if the request was successful

Properties:

property ReaderList:   TStringList;
property UseReaderNum: integer;

  ReaderList holds the list of available readers. It is filled by calling Init.
  UseReaderNum points to the Reader to use in ReaderList or is set to -1
  if no reader is selected

property NumReaders:       integer;

  Holds the number of available readers

property Connected:        boolean;

  TRUE if connected to the reader (the reader MAY BE empty)

property Opened:           boolean;

  TRUE if a reader is being watched

property ReaderState:      cardinal;

  holds the last status of the reader, see WinSCard.pas

property AttrProtocol:     integer;

  the protocol used to communicate with the current card

property AttrICCType:      string;

  the ICC type of the current card

property AttrCardATR:      string;

  the ATR of the current card

property AttrVendorName:   string;

  the vendor name of the reader

property AttrVendorSerial: string;

  the serial number of the reader

Events:

property OnCardInserted :     TPCSCCardEvent

  fires when a card is inserted in the reader

property OnCardActive :       TPCSCCardEvent

  fires when a inserted card is recognised and may be accessed.
  The Attr-propertys are filled beforehand

property OnCardRemoved :      TPCSCCardEvent

  fires when a inserted card is removed from the reader

property OnCardInvalid :      TPCSCCardEvent

  fires when a inserted card is not readable

property OnReaderWaiting :    TPCSCReaderEvent

  fires when the reader is ready and waiting for a card

property OnReaderListChange : TPCSCReaderEvent

  fires when the reader list has been updated

property OnError :            TPCSCErrorEvent

TPCSCErrorEvent = procedure(Sender:    TObject; 
                            ErrSource: TErrSource;
                            ErrCode:   cardinal)

TErrSource      = (esInit, esGetStatus, esConnect, esTransmit);

  fires when a error message is received while connecting to the card,
  reading the status word or transmitting data to the card

Hints:


First, call INIT

Then, set the reader you want to use

Then, call OPEN

or

call OPEN in the On ReaderWaiting Event

Then, if a card is inserted, you may call GetResponse...


A error 0x80100002 (The action was cancelled by an SCardCancel request) is normal behaviour when calling CLOSE