RFID pcsc: Unterschied zwischen den VersionenAus Attraktor Wiki
Aktuelle Version vom 23. Oktober 2012, 01:03 UhrInhaltsverzeichnisPCSCCard Daemon Debugsudo ./pcscd -a -f zum starten und traffic beobachten: Loading lib v2.06 99999999 APDU: FF CA 00 00 00 00001642 SW: 04 89 51 C2 FE 20 80 90 00 APDU sind die Befehle an die Tags, SW sind die Antworten. PerlDebian liefert PerlBindings fuer pcsc mit. Hier ein Beispielskript zum lesen von UIDs #!/usr/bin/perl use Chipcard::PCSC; use Chipcard::PCSC::Card; use warnings; use strict; my $hContext; my @ReadersList; my $hCard; my @StatusResult; my $tmpVal; my $SendData; my $RecvData; $hContext = new Chipcard::PCSC(); die ("Can't create the pcsc object: $Chipcard::PCSC::errno\n") unless (defined $hContext); @ReadersList = $hContext->ListReaders (); die ("Can't get readers' list: $Chipcard::PCSC::errno\n") unless (defined($ReadersList[0])); $, = "\n "; $" = "\n "; $hCard = new Chipcard::PCSC::Card ($hContext, $ReadersList[0]); die ("Can't connect to the reader '$ReadersList[0]': $Chipcard::PCSC::errno\n") unless (defined($hCard)); @StatusResult = $hCard->Status (); die ("Can't get card status: $Chipcard::PCSC::errno\n") unless (defined ($StatusResult[0])); printf "ATR = "; foreach $tmpVal (@{$StatusResult[3]}) { printf ("%02X ", $tmpVal); } print "\n"; $SendData = [0xFF, 0xCA, 0x00, 0x00, 0x00]; $RecvData = $hCard->Transmit($SendData); die ("Can't transmit data: $Chipcard::PCSC::errno") unless (defined ($RecvData)); print "UID = "; foreach $tmpVal (@{$RecvData}) { printf ("%02X ", $tmpVal); } print "\n"; $hCard->Disconnect($Chipcard::PCSC::SCARD_LEAVE_CARD); undef $hCard; $hContext = undef; Siehe auch |