pcsc-tools-1.4.22/0000755000175000017500000000000012266234522014170 5ustar rousseaurousseaupcsc-tools-1.4.22/gscriptor.gtk1.20000755000175000017500000006017111203062533017133 0ustar rousseaurousseau#!/usr/bin/perl -w # gscriptor: GTK interface to send APDU commands to a smart card # Copyright (C) 2001 Lionel Victor, Ludovic Rousseau # 2002-2003 Ludovic Rousseau # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # gscriptor uses libgtk-perl, please make sure it is correctly installed # on your system # $Id: gscriptor.gtk1.2 4192 2009-05-10 15:48:14Z rousseau $ use strict; use Gtk; use File::Basename; use Carp; use Chipcard::PCSC; use Chipcard::PCSC::Card; init Gtk; set_locale Gtk; my $strAppName = "gscriptor"; my $strConfigFileName = "$ENV{HOME}/.$strAppName"; my @ResultStruct; my %hConfig; # PCSC related variables my $hContext = new Chipcard::PCSC (); die ("Can't create the Chipcard::PCSC object: $Chipcard::PCSC::errno\n") unless (defined $hContext); my $hCard = new Chipcard::PCSC::Card ($hContext); die ("Can't create the Chipcard::PCSC::Card object: $Chipcard::PCSC::errno\n") unless (defined $hContext); ############################### create widgets ############################### my $wndMain = new Gtk::Window ("toplevel"); my $txtScript = new Gtk::Text (); my $txtResult = new Gtk::Text (); my $rdbASCII = new Gtk::RadioButton("ASCII"); my $rdbHex = new Gtk::RadioButton("Hex", $rdbASCII); my $chkWrap = new Gtk::CheckButton ("Wrap lines"); my $btnRun = new Gtk::Button ("Run"); my $txtStatus = new Gtk::Entry(); ############################## arrange widgets ############################### # arrange_widgets () is used to arrange widgets in the windows. # It allows to conveniently allocate temporary variables for the various # containers and the scrollbars, as well as the menu. # This function also sets some basic properties of the different # widgets used... configuration is therefore grouped in a single place. sub arrange_widgets () { $wndMain->set_title ("$strAppName"); $txtScript->set_editable(1); $txtScript->set_word_wrap(1); $txtResult->set_word_wrap(1); $txtStatus->set_sensitive(0); $txtStatus->set_editable(0); $chkWrap->set_active(1); $rdbHex->set_active(1); # create and bind toolbars my $vscScript = new Gtk::VScrollbar ($txtScript->vadj); my $vscResult = new Gtk::VScrollbar ($txtResult->vadj); # create and set tooltips my $tipScript = new Gtk::Tooltips(); my $tipResult = new Gtk::Tooltips(); my $tipASCII = new Gtk::Tooltips(); my $tipHex = new Gtk::Tooltips(); my $tipRun = new Gtk::Tooltips(); my $tipWrap = new Gtk::Tooltips(); $tipScript->set_tip ($txtScript, "list of APDUs to exchange"); $tipResult->set_tip ($txtResult, "result window"); $tipASCII->set_tip ($rdbASCII, "show ASCII data"); $tipHex->set_tip ($rdbHex, "show hexadecimal data"); $tipRun->set_tip ($btnRun, "run the current script"); $tipWrap->set_tip ($chkWrap, "wrap long lines"); # create and set the menu with the accel_table my @menu_items = ({ path => '/_File', type => '' }, { path => '/File/_New', callback => \&NewScriptFile }, { path => '/File/_Open', accelerator => 'O', callback => \&LoadScriptFile }, { path => '/File/_Save', accelerator => 'S', callback => \&SaveScriptFile }, { path => '/File/Save _As', callback => \&SaveAsScriptFile }, { path => '/File/sep', type => '' }, { path => '/File/_Quit', accelerator => 'Q', callback => \&CloseAppWindow }, { path => '/R_eader', type => '' }, { path => '/Reader/_Connect', accelerator => 'C', callback => \&ConnectDefaultReader }, { path => '/Reader/Reco_nnect', accelerator => 'R', callback => \&ReconnectDefaultReader }, { path => '/Reader/_Disconnect', accelerator => 'D', callback => \&DisconnectDefaultReader }, { path => '/Reader/sep', type => '' }, { path => '/Reader/_Status...', callback => \&DefaultReaderStatus }, { path => '/Ru_n', type => '' }, { path => '/Run/_Run Script', accelerator => 'R', callback => \&RunScript }, { path => '/Run/C_lear Result Area', accelerator => 'L', callback => \&ClearResult }, { path => '/_Settings', type => '' }, { path => '/Settings/Reader', callback => \&ReaderConfig }, { path => '/_Help', type => '' }, { path => '/_Help/About', callback => \&Help }); my $accel_group = new Gtk::AccelGroup(); my $item_factory = new Gtk::ItemFactory( 'Gtk::MenuBar', '
', $accel_group); $item_factory->create_items( @menu_items ); $wndMain->add_accel_group( $accel_group ); # create and arrange box containers my $vbxMainBox = new Gtk::VBox(0,3); my $hbxScriptBox = new Gtk::HBox(0,3); my $vbxScriptBox = new Gtk::VBox(0,10); my $hbxResultBox = new Gtk::HBox(0,3); my $vbxResultBox = new Gtk::VBox(0,3); $hbxScriptBox->add($txtScript); $hbxScriptBox->pack_end($vscScript, 0, 0, 0); $vbxScriptBox->add($hbxScriptBox); $vbxScriptBox->pack_end($btnRun, 0, 0, 0); $vbxScriptBox->pack_end($chkWrap, 0, 0, 0); $vbxScriptBox->set_border_width(5); $hbxResultBox->add($txtResult); $hbxResultBox->pack_end($vscResult, 0, 0, 0); $vbxResultBox->add($hbxResultBox); $vbxResultBox->pack_start($rdbASCII, 0, 0, 0); $vbxResultBox->pack_start($rdbHex, 0, 0, 0); $vbxResultBox->set_border_width(5); # create and fill frame containers my $frmScript = new Gtk::Frame ("Script"); my $frmResult = new Gtk::Frame ("Result"); $frmScript->set_border_width(5); $frmScript->add ($vbxScriptBox); $frmResult->set_border_width(5); $frmResult->add ($vbxResultBox); my $hpaned = new Gtk::HPaned; $hpaned->border_width(5); my $hbxBox = new Gtk::HBox (0,10); $hpaned->add1($frmScript); $hpaned->add2($frmResult); $hbxBox->add($hpaned); $vbxMainBox->pack_start ($item_factory->get_widget( '
' ), 0, 0, 0); $vbxMainBox->add ($hbxBox); $vbxMainBox->pack_end ($txtStatus, 0, 0, 0); $vbxMainBox->show_all(); $wndMain->add($vbxMainBox); } # Connect widgets together $chkWrap->signal_connect('toggled', sub { $txtScript->set_line_wrap($chkWrap->active); } ); $wndMain->signal_connect ("delete_event", \&CloseAppWindow); $btnRun->signal_connect ("clicked", \&RunScript); $rdbASCII->signal_connect('toggled', \&RefreshResult); $rdbHex->signal_connect('toggled', \&RefreshResult); ReadConfigFile(); arrange_widgets(); ############################### create widgets ############################### $txtStatus->set_text ("welcome to the $strAppName application !!! - not connected"); # Show up everything as we should be ready by now $wndMain->show_all(); if (exists $hConfig{'script'}) { unless (ReadScriptFile ($hConfig{'script'})) { MessageBox ("Can not open $hConfig{'script'}: $!", ['OK']); delete $hConfig{'script'}; } } main Gtk; die ("The Gtk event loop failed to start resulting in abnormal program termination...\n"); ######################### application engine follows ######################### sub MessageBox { my $strMessage = shift; my $strTitle = shift unless ref ($_[0]); my @ButtonDescr = @_; my $refCurButtonDescr; my $last_button; # Choose a nice title to our message box $strTitle = $strAppName unless $strTitle; @ButtonDescr = ["OK"] unless @ButtonDescr; my $dlgDialog = new Gtk::Dialog (); my $hbxButtonBox = new Gtk::HBox (0,3); my $hbxTextBox = new Gtk::HBox (0,3); # build up all the buttons and associate callbacks foreach $refCurButtonDescr (reverse @ButtonDescr) { croak ("invalid button name") unless scalar ($$refCurButtonDescr[0]); $$refCurButtonDescr[1] = sub { $dlgDialog->destroy(); } if $#$refCurButtonDescr == 0; warn ("button named '$$refCurButtonDescr[0]' has an invalid callback: '$$refCurButtonDescr[1]'") unless ref ($$refCurButtonDescr[1]); # Each button is constructed from its label my $btnTmpButton = new Gtk::Button($$refCurButtonDescr[0]); $btnTmpButton->can_default(1); # A mouse click on the button triggers a call to its embedded # callback then destroys the dialog box $btnTmpButton->signal_connect ("clicked", sub { &{$$refCurButtonDescr[1]}; $dlgDialog->destroy(); }); $hbxButtonBox->pack_end($btnTmpButton, 0, 0, 10); $last_button = $btnTmpButton; } $dlgDialog->action_area->pack_start($hbxButtonBox, 1, 1, 0 ); my $label = new Gtk::Label($strMessage); $hbxTextBox->pack_start($label, 0, 0, 30); $dlgDialog->vbox->add ($hbxTextBox); # the last button is the default one $last_button->grab_default(); # Finally show up everything $dlgDialog->set_policy (0, 0, 1); $dlgDialog->set_default_size (0,0); $dlgDialog->set_title ($strTitle); $dlgDialog->set_modal(1); $dlgDialog->show_all(); } sub ReaderConfig { my $dlgReaderConfig = new Gtk::Dialog (); my $txtReader = new Gtk::Label ("Reader"); my $cboReaders = new Gtk::Combo(); my $rdbT0 = new Gtk::RadioButton("T=0"); my $rdbT1 = new Gtk::RadioButton("T=1", $rdbT0); my $rdbRAW = new Gtk::RadioButton("T=RAW", $rdbT0); my $txtProtocol = new Gtk::Label ("Protocol"); # This sub adjusts the content of $hConfig with the selected protocol my $subProtocol = sub { $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_RAW if ($rdbRAW->active); $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_T0 if ($rdbT0->active); $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_T1 if ($rdbT1->active); }; $rdbT0->signal_connect ('toggled', $subProtocol); $rdbT1->signal_connect ('toggled', $subProtocol); $rdbRAW->signal_connect('toggled', $subProtocol); my $btnOK = new Gtk::Button ("OK"); $btnOK->signal_connect( "clicked", sub { $hConfig{'reader'} = $cboReaders->entry->get_text(); $hCard->Disconnect($Chipcard::PCSC::SCARD_UNPOWER_CARD); $dlgReaderConfig->destroy(); }); $btnOK->can_default(1); my $btnCancel = new Gtk::Button ("Cancel"); $btnCancel->signal_connect( "clicked", sub { $dlgReaderConfig->destroy(); }); $btnCancel->can_default(1); my $hbxReaderBox = new Gtk::HBox (0,10); my $hbxButtonBox = new Gtk::HBox (0,3); my $hbxStatusBox = new Gtk::Table (3,2,1); $hbxReaderBox->pack_start ($txtReader, 0, 0, 10); $hbxReaderBox->pack_start ($cboReaders, 1, 1, 10); $hbxButtonBox->pack_end($btnCancel, 0, 0, 10); $hbxButtonBox->pack_end($btnOK, 0, 0, 10); # Select the last prefered protocol if any if (defined $hConfig {'protocol'}) { $rdbT0->set_active(1) if ($hConfig {'protocol'} == $Chipcard::PCSC::SCARD_PROTOCOL_T0); $rdbT1->set_active(1) if ($hConfig {'protocol'} == $Chipcard::PCSC::SCARD_PROTOCOL_T1); $rdbRAW->set_active(1) if ($hConfig {'protocol'} == $Chipcard::PCSC::SCARD_PROTOCOL_RAW); } $hbxStatusBox->attach_defaults ($txtProtocol, 0, 1, 0, 1); $hbxStatusBox->attach_defaults ($rdbT0, 1, 2, 0, 1); $hbxStatusBox->attach_defaults ($rdbT1, 1, 2, 1, 2); $hbxStatusBox->attach_defaults ($rdbRAW, 1, 2, 2, 3); $cboReaders->set_popdown_strings ($hContext->ListReaders ()); $cboReaders->set_case_sensitive(1); $cboReaders->set_value_in_list(1, 0); # We select the last reader if available if (exists $hConfig{'reader'}) { $cboReaders->entry->set_text($hConfig{'reader'}); } $dlgReaderConfig->action_area->pack_start($hbxButtonBox, 1, 1, 0 ); $dlgReaderConfig->vbox->add ($hbxReaderBox); $dlgReaderConfig->vbox->add (new Gtk::HSeparator()); $dlgReaderConfig->vbox->add ($hbxStatusBox); # the OK button is the default one $btnOK->grab_default(); $dlgReaderConfig->set_policy (0, 0, 1); $dlgReaderConfig->set_default_size (0,0); $dlgReaderConfig->set_modal(1); $dlgReaderConfig->show_all(); } sub ReadConfigFile { if (-f $strConfigFileName) { die ("Can't open $strConfigFileName for reading: $!\n") unless (open (FILE, "<$strConfigFileName")); while () { chomp; next if /^#/; next if /^\s*$/; if (/^\s*(\S+)\s*=\s*\'(.*)\'$/) { $hConfig{$1} = $2; } else { print STDERR "Error while parsing $strConfigFileName\n\t'$_'\n"; } } close (FILE); } else { print STDERR "Couldn't read from $strConfigFileName. Using default configuration\n"; } } sub WriteConfigFile { my $strTmpKey; die ("Can't open $strConfigFileName for writing: $!\n") unless (open (FILE, ">$strConfigFileName")); print FILE "# This file is automatically generated\n# Do not edit unless you know what you are doing\n\n"; foreach $strTmpKey (keys %hConfig) { print FILE "$strTmpKey = \'$hConfig{$strTmpKey}\'\n"; } close (FILE); } sub ReadScriptFile { my $strScriptFileName = shift; my $strBaseFileName = basename ($strScriptFileName); return 0 unless open (FILE, "<$strScriptFileName"); $txtScript->freeze(); $txtScript->delete_text (0,-1); while () { $txtScript->insert_text ($_, $txtScript->get_length); } $txtScript->thaw(); close (FILE); # Upon succesfull completion, we also set the window title as well # as the current ScriptfileName in the configuration hash $hConfig{'script'} = $strScriptFileName; $wndMain->set_title ("$strAppName - <$strBaseFileName>"); return 1; } sub WriteScriptFile { my $strScriptFileName = shift; my $strBaseFileName = basename ($strScriptFileName); return 0 unless open (FILE, ">$strScriptFileName"); print FILE $txtScript->get_chars (0,-1); close (FILE); # Upon successfull completion, we also set the window title as well # as the current ScriptfileName in the configuration hash $hConfig{'script'} = $strScriptFileName; $wndMain->set_title ("$strAppName - <$strBaseFileName>"); return 1; } sub NewScriptFile { if ($txtScript->get_length()) { # That call to MessageBox will connect the OK button with a callback # that actually erase the script MessageBox( "The current work will be lost !\nAre you sure you want to continue ?", ["OK", sub { EraseCurrentScript(); } ], ["CANCEL"] ); } } sub EraseCurrentScript { $txtScript->delete_text (0,-1); $wndMain->set_title ("$strAppName"); delete $hConfig{'script'}; } sub SaveScriptFile { my ($widget) = @_; if (exists $hConfig{'script'}) { WriteScriptFile ($hConfig{'script'}); } else { SaveAsScriptFile ($widget); } } sub SaveAsScriptFile { my ($widget) = @_; my $file_dialog = new Gtk::FileSelection( "Save File" ); $file_dialog->ok_button->signal_connect( "clicked", sub { my $file = $file_dialog->get_filename(); if (-d $file) { MessageBox ("Can't open $file: file is a directory", ['OK']); } else { MessageBox ("Can't open $file: $!", ['OK']) unless WriteScriptFile ($file); } $file_dialog->destroy(); }); $file_dialog->cancel_button->signal_connect( "clicked", sub { $file_dialog->destroy(); }); if (exists $hConfig{'script'}) { $file_dialog->set_filename(dirname($hConfig{'script'})) } $file_dialog->show(); } sub LoadScriptFile { if ($txtScript->get_length()) { MessageBox( "The current work will be lost !\nAre you sure you want to continue ?", ["OK", \&LoadScript], ["CANCEL"] ); } else { LoadScript(); } } sub LoadScript { my $file_dialog = new Gtk::FileSelection( "Load File" ); $file_dialog->ok_button->signal_connect( "clicked", sub { my $file = $file_dialog->get_filename(); if (-d $file) { MessageBox ("Can't open $file: file is a directory", ['OK']); } else { MessageBox ("Can't open $file: $!", ['OK']) unless ReadScriptFile ($file); } $file_dialog->destroy(); }); $file_dialog->cancel_button->signal_connect( "clicked", sub { $file_dialog->destroy(); }); if (exists $hConfig{'script'}) { $file_dialog->set_filename(dirname($hConfig{'script'})."/"); } $file_dialog->show(); } sub ClearResult { $txtResult->delete_text (0, -1); @ResultStruct = (); } sub RefreshResult { my $tmpLine; my $tmp_value; $txtResult->freeze(); $txtResult->delete_text (0, -1); foreach $tmpLine (@ResultStruct) { if (ref $tmpLine) { foreach $tmp_value (@$tmpLine) { if ($rdbHex->active) { $txtResult->insert_text (sprintf ("%02X ", $tmp_value), $txtResult->get_length); } else { # TODO: enhance filtering of non-printable chars # TODO: how can we use array_to_ascii here ??? maybe # enhence the function so it can directly receive # ranges of chars to ignore optionally ? if (($tmp_value > 0x20) && ($tmp_value < 0x80)) { $txtResult->insert_text (chr ($tmp_value), $txtResult->get_length); } else { $txtResult->insert_text ('.', $txtResult->get_length); } } } $txtResult->insert_text ("\n", $txtResult->get_length); } else { $txtResult->insert_text ($tmpLine, $txtResult->get_length); } } $txtResult->thaw(); } sub ConnectDefaultReader { if (exists $hConfig{'reader'} && !($hConfig{'reader'} eq '')) { if (defined $hCard->{hCard}) { MessageBox ( "The card is already connected...\nDo you want to reconnect ?", ['OK', \&ReconnectDefaultReader], ['CANCEL'] ); } else { $hCard->Connect ($hConfig{'reader'}, $Chipcard::PCSC::SCARD_SHARE_EXCLUSIVE, $hConfig{'protocol'}); if (defined $hCard->{hCard}) { $txtStatus->set_text ("Connected to '$hConfig{'reader'}'"); } else { MessageBox ("Can not connect to the reader named '$hConfig{'reader'}':\n$Chipcard::PCSC::errno", ['OK']) }; } } else { MessageBox ("No default reader has been configured\nPlease make sure you have configured a reader first", ['OK']); } } sub ReconnectDefaultReader { if (defined $hCard->{hCard}) { $hCard->Reconnect ($Chipcard::PCSC::SCARD_SHARE_EXCLUSIVE, $hConfig{'protocol'}, $Chipcard::PCSC::SCARD_RESET_CARD); if (defined $hCard->{hCard}) { $txtStatus->set_text ("Connected to '$hConfig{'reader'}'"); } else { MessageBox ("Can not reconnect to the reader named '$hConfig{'reader'}':\n$Chipcard::PCSC::errno", ['OK']) }; } else { # we just propose to connect but do not call Reconnect() # afterwards that would be quite useless MessageBox ("The Chipcard::PCSC:Card object is not connected...\n Do you want to connect ?", ['OK', sub {ConnectDefaultReader();}], ['CANCEL']); } } sub DisconnectDefaultReader { if (defined $hCard->{hCard}) { $hCard->Disconnect($Chipcard::PCSC::SCARD_UNPOWER_CARD); if (defined $hCard->{hCard}) { MessageBox ("Can not disconnect from the reader named '$hConfig{'reader'}':\n$Chipcard::PCSC::errno", ['OK']); } else { $txtStatus->set_text ("not connected"); }; } else { MessageBox ("The Chipcard::PCSC::Card object is not connected !", ['OK']); } } sub DefaultReaderStatus { if (defined $hCard->{hCard}) { my @StatusResult = $hCard->Status(); if (defined $StatusResult[0]) { #TODO This stinks can't I rewrite it so it looks better&shorter my $tmpVal = 0; my $MessageString = "You are connected to reader $StatusResult[0].\n"; $MessageString .= "Card status (". sprintf ("0x%04X",$StatusResult[1]) ."): "; # Verbosely describes the Card Status (powered, inserted, etc... if ($StatusResult[1] & $Chipcard::PCSC::SCARD_UNKNOWN) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "'Unknown state'"; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_ABSENT) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "Absent"; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_PRESENT) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "Present"; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_SWALLOWED) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "Swallowed"; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_POWERED) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "Powered"; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_NEGOTIABLE) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "'PTS is negotiable'"; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_SPECIFIC) { if ($tmpVal) { $MessageString .= ", "; } ++$tmpVal; $MessageString .= "'PTS has been set'"; } # Verbosely describes the currently active protocol $MessageString .= ".\nThe active protocol (".sprintf ("0x%04X", $StatusResult[2]).") is "; if (($StatusResult[2] & $Chipcard::PCSC::SCARD_PROTOCOL_T0)) { $MessageString .= "T=0 "; } elsif (($StatusResult[2] & $Chipcard::PCSC::SCARD_PROTOCOL_T1)) { $MessageString .= "T=1 "; } elsif (($StatusResult[2] & $Chipcard::PCSC::SCARD_PROTOCOL_RAW)) { $MessageString .= "RAW "; } else { $MessageString .= "unknown"; } # Displays the ATR (if available) $MessageString .= ".\nThe ATR is "; if (defined $StatusResult[3]) { foreach $tmpVal (@{$StatusResult[3]}) { $MessageString .= sprintf ("%02X ", $tmpVal); } } else { $MessageString .= "not available"; } MessageBox ($MessageString, ['OK']); } else { MessageBox ("Can not retrieve reader status:\n$Chipcard::PCSC::errno", ['OK']) } } else { MessageBox ("The reader is not connected...\n Do you want to connect ?", ['OK', sub {ConnectDefaultReader(); if (defined $hCard->{hCard}) {DefaultReaderStatus();}}], ['CANCEL']); } } sub RunScript { if (defined $hCard->{hCard}) { my @tmpCommandArray = split /\n/, $txtScript->get_chars (0,-1); my $raCurrentResult; my $nIndex; push @ResultStruct, "Beginning script execution...\n\n"; foreach $_ (@tmpCommandArray) { # this variable has to be inside the loop as we store a # reference to it in the result struct... it has to be # unique for each command line my $raCurrentCommand; # Skip blank lines and comments next if /^\s*$/; next if /^#/; if (/reset/i) { push @ResultStruct, "[Reset]\n\n"; ReconnectDefaultReader(); next; } # if the command does not contains spaces (00A4030000) we expand it s/(..)/$1 /g if (! m/ /); # Extract bytes from the ascii string $raCurrentCommand = Chipcard::PCSC::ascii_to_array($_); # push them in the Display structure push @ResultStruct, "Sending: "; push @ResultStruct, $raCurrentCommand; # Transmit them to the card $raCurrentResult = $hCard->Transmit ($raCurrentCommand); if (ref $raCurrentResult) { push @ResultStruct, "Received: "; push @ResultStruct, $raCurrentResult; push @ResultStruct, Chipcard::PCSC::Card::ISO7816Error(substr Chipcard::PCSC::array_to_ascii($raCurrentResult), -5), "\n\n"; } else { MessageBox ("Transmit failed: $Chipcard::PCSC::errno\nStopping script execution", ['OK']); push @ResultStruct, "\nErrors During Script Execution: $Chipcard::PCSC::errno\n"; last; } } push @ResultStruct, "Script was executed without error...\n"; } else { MessageBox ("The Chipcard::PCSC::Card object is not connected !\nDo you want to connect ?", ['OK', sub {ConnectDefaultReader(); if (defined $hCard->{hCard}) {RunScript();}}], ['CANCEL']); } RefreshResult(); } sub CloseAppWindow { undef $hCard; undef $hContext; WriteConfigFile(); Gtk->exit(0); } sub Help { MessageBox (" $strAppName is coded by Lionel VICTOR, (C) 2001. and debugged by Ludovic ROUSSEAU, (C) 2001-2003. $strAppName is a small application written in Perl. It basically demonstrates how easy it is to develop a quick working prototype that uses smartcards in Perl. ", ['OK'] ); } # End of File # pcsc-tools-1.4.22/smartcard_list.txt0000644000175000017500000053450712266234327017765 0ustar rousseaurousseau# # smartcard_list.txt # Copyright (C) 2002-2012 Ludovic Rousseau # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA # 02111-1307 USA # # This list contains a match between an ATR and a card type # The list is sorted for edition purposes # # You can get the latest version of this file from: # http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt # # $Id: smartcard_list.txt 6824 2014-01-17 13:53:40Z rousseau $ # # syntax: # ATR in regular expression form # \t descriptive text # \t descriptive text # \t descriptive text # empty line 3B 02 14 50 Schlumberger Multiflex 3k 3B 02 53 01 Gemplus GemClub Memo SuperShop clubcard 3B 04 00 00 00 00 Laundromat payment card Spanish ID ("DNIe: Documento Nacional de Identidad electrónico). http://www.dnie.es/ 3B 04 07 3C 85 92 OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 07 3C 85 9A OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 07 3C 89 10 OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 07 3C 89 18 OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 07 3C 89 92 OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 07 3C 89 9A OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 07 3C 8C 10 OLD Spanish Prepaid phone cards (pesetas) provided by Telefonica 3B 04 09 9C 2B 83 T.P.G. - CART@BONUS 20CHF (Transport) http://www.tpg.ch/fr/titres-de-transport/moyens-de-paiement/carte-prepayee-cartabonus.php 3B 04 17 3C CC E0 prepaid payphone card, issued by Telefónica Comunicaciones Públicas (http://www.cabitel.es) 3B 04 2A FF 32 00 Mac Gray Intelligent Laundry Systems laundry card 3B 04 41 11 77 81 Sample Mifare DESFire contactless smartcard from Phillips 3B 04 41 11 77 B1 IBM JCOP 30 contactless 3B 04 49 32 43 2E German Health Insurance Card "LogCard" from concept2.com (a indoor rower manufacturer) I2C card 3B 04 92 23 10 91 Siemens SLE 4432/42 card 3B 04 99 FF FF 90 Madrid prepaid parkimeters parking card 3B 04 9C FF 21 43 Hercules laundry stored value card 3B 04 A2 13 10 91 PM2P Chipkarte SLE 4442, Code FFFFFF Bahn BKK (Deutsche Bahn AG - Insurance Company) NH Hotels World fidelization card Miele Professional card for paying washing machine 3B 04 C9 D0 F1 40 Cuban prepaid phone card provided by ETECSA 3B 04 C9 D5 FD 20 Bell Canada LaPuce card - prepaid phone card (Telecommunication) 3B 04 FF FF FF FF Identity card Universidad del Pais Vasco / Euskal Herriko Unibertsitatea www.ehu.es 3B 05 00 03 36 66 AE HID (eID) 3B 05 68 01 01 02 05 Certinomis card (electronic certificates) Schlumberger Cryptoflex ActivCard 3B 05 80 73 F7 01 C0 (Shenzhen, China) Mingwah Aohan eKey, eID http://en.mwcard.com/index.php?option=com_k2&view=item&layout=item&id=79&Itemid=439 3B 06 00 00 04 2E CF 4C HID 1346 ProxKey III http://www.hidglobal.com/products/cards-and-credentials/hid-proximity/1346 3B 06 00 10 01 D6 C5 46 HID ProxKey II FOB http://www.hidglobal.com/documents/proxkey_ds_en.pdf 3B 06 01 02 10 .. .. .. ISOProx II Card: http://www.hidglobal.com/documents/isoprox_ds_en.pdf 3B 06 81 24 80 80 90 00 10€ credit card for TV & telephone in Jerez de la Frontera hospital's rooms. The maker can be found at www.isernsa.com (ISERN Medical Telecomunications) 3B 06 A2 13 10 91 90 00 C3P2K SAMPLE CARD (C3PO, S.L) 3B 07 55 4E 4B 4E 4F 57 4E US DOD Smart Card 3B 09 41 04 11 DD 82 2F 00 00 88 1k contactless Mifare 3B 0A 20 62 0C 01 4F 53 45 99 14 AA GSM-SIM BEN (1800MHz) 3B 0A 21 00 26 07 4F 53 45 98 08 F8 ORGA test systems GSM phase 2+ test SIM. 3B 0E BC E1 CA AF C2 DF BC AD BC D3 C3 DC BF A8 German "Versichertenkarte" Healthcare card 3B 0F 00 65 46 53 05 16 05 71 DF 00 00 00 45 50 53 Feitian ePass3000, Feitian formatted 3B 0F 00 65 46 53 05 16 05 71 DF 00 00 00 80 6A 82 Feitian ePass3000, OpenSC formatted 3B 0F 00 65 46 53 05 30 05 71 DF 00 00 00 80 6A 82 Fetian epass3000 3B 0F 80 22 15 E1 5A 00 20 00 30 21 03 31 21 03 00 RSA SecurID SID800 token 3B 0F 80 22 15 E1 5A 00 20 00 31 21 03 31 21 03 00 RSA SecurID SID800 token 3B 0F 80 6A 16 32 46 49 53 45 53 8C E0 FF 07 90 00 GSM-SIM Sonera (from 1998) 3B 0F FF C1 B5 CC 72 CA 00 00 .. Mifare Std 1K 3B 15 11 12 CA 07 00 DB Tricolor TV center card (Pay TV) 3B 15 11 12 CA 07 11 CA DRE Crypt (Pay TV) 3B 15 11 12 CA 07 14 CF PlatformaHD (Russia) DRE Crypt 4AE1:14 3B 15 13 80 53 41 52 03 Eutron CryptoIdentity (ATMEL AT903232C - 6464C Cryptographic processors, 64KB EEPROM, RSA 2048) 3B 15 18 2E 00 5C 00 01 China Unicom 64k OTA 3B 15 94 C3 02 08 16 01 GSM-SIM EMT (Estonia) 3B 16 18 AF 01 02 02 02 00 SIM Virgin Mobile (Australia) 3B 16 94 71 01 01 00 27 00 Cingular GSM SIM Card 3B 16 94 71 01 01 05 02 00 GSM SIM Bouygues Telecom 3B 16 94 71 01 01 06 02 00 SFR GSM SIM Card 3B 16 94 81 10 06 01 .. .. Schlumberger Cyberflex Access 16K 3B 16 94 81 10 06 01 81 2F Schlumberger Cyberflex Access Augmented Crypto 3B 16 94 81 10 06 01 81 3F Schlumberger Cyberflex Access Crypto 3B 16 94 D0 01 76 0D 2A 00 Peruvian GSM SIM 3B 16 94 D0 01 7B 2C 0E 00 SIM tunisiana 3B 16 95 D0 00 45 F7 01 00 Telefónica O2 Czech Republic, a.s. - O2 sim card - 173285 / SIM64ND.GO0 http://www.o2.cz 3B 16 96 41 73 74 72 69 64 Gemalto .NET v2.0 3B 16 96 41 73 74 72 69 64 3B 02 14 50 Gemalto IDPrime v2+ .NET 3B 16 96 BA 00 0E 02 0A 03 Vietel (Telecommunication) 3B 16 96 D0 00 D4 07 2C 00 Vodafone India Postpaid / Local Operator 3G 3B 17 11 80 65 AF 03 42 00 D8 TELE2 SPB SIM Russia 3B 17 13 9C 12 02 01 01 07 40 Schlumberger Cyberflex Access Developer 32k 3B 17 94 18 01 01 01 01 41 93 T-Mobile SIM card 3B 17 94 18 01 01 02 01 41 49 white SFR SIM card 3B 17 94 18 01 01 09 01 41 53 Old Spanish Telefónica Movistar GSM SIM card 3B 17 94 18 02 01 25 01 41 93 AT&T Wireless GSM SIM Card 3B 17 94 20 01 01 0A 02 41 43 KPN SIM card 3B 17 94 20 05 01 10 01 41 FF CLARO SIM card (ex CTI Movil) 3B 17 94 80 65 D0 01 6C F2 BE CMCC sim cards with TD-SCDMA support 3B 17 94 80 65 D0 01 8B F2 08 China SIM card 3B 17 94 89 01 02 01 02 41 87 Vodafone/Omnitel 16K GSM SIM 3B 18 94 53 0D 06 77 24 07 FF 02 GSM SIM Tele2 Estonia, prepaid (Telecommunication) 3B 19 14 55 90 01 01 01 00 05 08 B0 Schlumberger Multiflex 8k 3B 19 14 55 90 01 02 01 00 05 04 B0 Schlumberger Multiflex 4k 3B 19 14 59 01 01 0F 01 00 05 08 B0 Schlumberger Multiflex 8k 3B 19 94 31 02 05 10 45 98 01 02 4E GSM-SIM EMT (Estonia) 3B 1B 94 80 69 06 02 22 11 00 80 08 00 00 eID 3B 1B 94 80 69 07 05 21 11 00 80 00 00 00 Aircel SIM (Telecommunication) 3B 1B 96 05 43 43 32 52 53 05 12 10 90 00 ChipCity CC32RS512 factory boot loader (this is a flash based CPU card with a factory-default bootloader) 3B 1C 94 43 48 49 50 44 52 49 56 45 30 30 31 SCM Chipdrive MyKey MasterKey 24k 3B 1F 11 00 67 42 41 46 49 53 45 53 52 66 FF 81 90 00 Finnish student id card 3B 1F 11 00 67 80 42 46 49 53 45 10 52 66 FF 81 90 00 Nokia branded SC (Setec) 3B 1F 11 00 6A 01 38 46 49 53 45 10 8C 02 FF 07 90 00 GSM-SIM Saunalahti (from 2004) Finnish cell phone operator "Sonera" SIM card (from 2002) 3B 1F 11 00 6A 31 36 46 49 53 45 13 8C 02 FF 07 90 00 GSM-SIM card - Telenor Mobil - http://www.telenor.com/ 3B 1F 11 00 6A 31 38 46 49 53 45 13 8C 02 FF 07 90 00 Latvian GSM operator TELE2 (SIM) 3B 1F 11 80 6A 16 32 46 49 53 45 15 8C E6 FF 07 90 00 GSM SIM card - Tele2 Estonia - http://www.tele2.ee 3B 1F 11 80 6A 32 37 46 49 53 45 12 8C 00 FF 07 90 00 Setec Test card, SetCOS 3.7.2, rel 1.3 3B 1F 11 80 6A 32 37 46 49 53 45 12 8C 02 FF 07 90 00 GSM-SIM DNA Finland (from 2001) 3B 1F 11 80 6A 80 34 46 49 53 45 53 94 00 FF 07 .. .. Setec SetCos 3.4 3B 1F 11 80 6A 80 34 46 49 53 45 53 94 36 FF 07 90 00 SetCOS 3.4.0c RSA SecurID 3100 3B 1F 94 00 6A 01 38 46 49 53 45 10 8C 02 FF 07 90 00 GSM-SIM Saunalahti (from 2004) 3B 1F 94 80 31 00 73 12 21 13 57 4A 33 05 30 32 34 00 Tron - MVNO Malaysia SIM Card (Giesecke & Devrient SIM) http://www.tron.my 3B 1F 94 80 6A 16 32 46 49 53 45 15 8C E6 FF 07 90 00 GSM-SIM Sonera (from 2002) 3B 1F 95 80 31 00 73 12 21 13 57 4A 33 0E 19 32 33 00 Latvian GSM Operator BITE 3B 23 00 00 36 41 81 Schlumberger Payflex 4k SAM 3B 23 00 35 11 80 Schlumberger Payflex 1k User 3B 23 00 35 11 81 Schlumberger Payflex 1k SAM 3B 23 00 35 13 80 Schlumberger Cyberflex Access Campus 3B 23 00 35 13 FF Schlumberger MicroPayflex 3B 23 00 35 41 80 PayflexHID (idenfitied by Sun Ray Services) 3B 24 00 .. .. .. 45 Conax 3B 24 00 30 42 30 30 ComHem Digital-TV smartcard (Sweden) TNK Telewizja Na Kartę (Poland) - Conditional access system : Conax (Norway) http://telewizjanakarte.pl/ 3B 24 00 80 72 94 43 MPCOS-3DES 64K \ EMV Filter (Gemplus) 3B 26 00 00 26 40 00 90 00 Schlumberger, purse? 3B 26 00 11 01 6D 03 OLD CajaMadrid Visa Cash, ID card for Universidad Autónoma de Madrid, Madrid (about 1998) 3B 26 00 11 04 5C 03 90 00 Caixa Abierta (Barcelona, Spain) Cash/Visa Electron 3B 26 00 11 06 23 03 90 00 Tarjeta de la Seguridad Social (Spanish Social Insurance Card) 3B 26 00 24 06 01 00 00 80 old KPN NetBox card 3B 26 00 31 08 6C 03 90 00 VISA ELECTRON from Caixa Catalunya bank card (www.caixacatalunya.es) for students in UPC university of Barcelona (Spain) (www.upc.es) 3B 26 00 31 1A 45 03 90 00 Tajeta Sanitaria Individual (Spanish Insurance Card) from the "Junta de Andalucia(Consejeria de Salud)" 3B 27 00 80 65 A2 .. 01 01 37 Gemplus GemSAFE Smart Card (4K) 3B 27 00 80 65 A2 00 01 01 37 Gemplus GemSAFE Card CSP v1.0 3B 27 00 80 65 A2 02 02 82 37 Gemplus GPK2000s 3B 27 00 80 65 A2 02 03 82 37 Gemplus GPK2000sp 3B 27 00 80 65 A2 04 01 01 37 Gemplus GPK4000s 3B 27 00 80 65 A2 05 01 01 37 Gemplus GPK4000sp 3B 27 00 80 65 A2 06 01 01 37 GPK 4000, RSA 512 bits Sign, Unwrap 40 bits 3B 27 00 80 65 A2 0C 01 01 37 Gemplus GPK4000 3B 27 00 80 65 A2 8C 3B 27 00 GPK 4000, RSA 1024 bits Sign, Unwrap 256 bits 3B 29 00 24 93 01 00 00 00 00 01 A9 Telephone chipcard for the Vienna University of Technology http://nic.tuwien.ac.at/telefonie/chipkarte/ 3B 29 00 80 72 A4 45 64 00 00 D0 15 Moeda Electronica Bradesco (Gemplus MPCOS?) (Brasilia) 3B 29 00 80 72 A4 45 64 00 FF 00 10 MPCOS-3DES 8K (Gemplus) MBNA Europe Platinum Plus Mastercard MasterCard Card - Worldcard - Yapıkredi / Turkey Portugal BPI Visa Electron UCFIN (Italy) "UniCreditCard Free" or "Plus" (VISA or MasterCard) credit card 3B 2A 00 80 65 A0 58 04 01 62 72 D6 43 Gemplus GemCombiXplore MPCOS Pro 3B 2A 00 80 65 A2 01 .. .. .. 72 D6 41 Gemplus MPCOS EMV 1 Byte sectors 3B 2A 00 80 65 A2 01 .. .. .. 72 D6 43 Gemplus MPCOS EMV 4 Byte sectors 3B 2A 00 80 65 A2 01 00 00 00 72 D6 41 MPCOS_EMV_1B 3B 2A 00 80 65 A2 01 00 00 00 72 D6 43 MPCOS_EMV_4B 3B 2A 00 80 65 A2 01 01 01 3C 72 D6 43 Estonian bank "SEB" (VISA Electron) 3B 2A 00 80 65 A2 01 01 01 3D 72 D6 43 GEMPLUS Logico Secure SmartCard for Citrix Metaframe PTTPost Easy Stamp Hungarian student card 3B 2A 00 80 65 A2 01 02 01 31 72 D6 43 MPCOS-EMV 64K Functional Sample 3B 2F 00 80 69 10 80 00 01 A1 0A 01 01 59 83 0E 90 00 Belgium Dexia (Axion) Bank Card Proton/Bancontact Mister Cash/Maestro 3B 2F 00 80 69 AF 03 07 06 68 00 00 0A 0E 83 06 GSM SIM MobilCom (Gemplus) 3B 2F 00 80 69 AF 03 07 06 68 00 00 0A 0E 83 06 9F 16 MobilCom-Karte 3B 2F 00 80 69 AF 03 07 06 68 00 05 0A 0E 83 3E 9F 16 KPN @ Mobile SIM card 3B 32 15 00 06 80 Schlumberger Multiflex 8k 3B 32 15 00 06 95 Schlumberger Multiflex 8k DES 3B 34 00 00 30 42 30 30 Conax card: T-Home Hungary 3B 34 94 00 30 42 30 30 Conax card: ComHem sweden 3B 37 11 00 46 4C 4F 4D 41 90 00 SLE 4428 3B 37 13 00 80 62 11 04 82 90 00 Swiss UBS Maestro/CASH Bank Card 3B 37 13 00 80 62 21 13 82 90 00 Swiss UBS Maestro/CASH Bank Card 3B 3B .. 00 80 6. A[F,E] 03 0[C,D] .. .. 83 .. 90 00 GemXplore Xpresso V3 3B 3B 11 00 67 AF 10 30 07 00 C0 33 33 90 00 Mobicarte Orange 3B 3B 11 00 6A 38 20 00 00 27 A0 33 33 90 00 Spanish Carrefour Móvil SIM card 3B 3B 11 00 80 65 AF 03 0C 01 6F 83 0F 90 00 Gemplus GemX{plore,presso} V3-B1 3B 3B 11 00 80 69 AF 03 0C 01 6F 83 0[0,1] 90 00 GemXplore'Xpresso V3 64K 3B 3B 11 00 91 41 10 10 10 5B A0 00 33 90 00 Pannon SIM card (Hungary) 3B 3B 94 00 00 64 05 3E 03 0F 31 80 0E 90 00 Slovenian national health insurance card 3B 3B 94 00 4F 34 10 20 01 0. .0 33 33 90 00 Wind (Italy) GSM SIM card 3B 3B 94 00 67 37 10 00 00 39 60 33 33 90 00 Avea GSM / Turkey 3B 3B 94 00 69 3C 10 30 01 3E 40 33 00 90 00 UK Vodafone GSM SIM 3B 3B 94 00 6A 38 20 00 00 00 A0 33 33 90 00 Croatia VIPNet Mobile Operator (Telecommunication) 3B 3B 94 00 6A 38 20 00 00 09 E0 33 33 90 00 virgin mobile (french) SIM card 3B 3B 94 00 80 65 32 13 04 03 30 83 81 90 00 SIM cards by the austrian cell phone provider A1 3B 3B 94 00 80 65 AF 03 0D 01 74 83 0F 90 00 Gemplus GemXplore Xpresso V3 B1P Mobistar SIM - Belgium (Gemplus) 3B 3B 94 00 9B 44 20 10 4D 04 20 00 33 90 00 SIM card for 063 network of Telekom Srbije, the Serbian state-owned telephone company. 3B 3B 94 00 9B 44 20 10 4D 05 00 00 33 90 00 SIM card for 066 network Telekom Srbije, the Serbian state-owned telephone company. 3B 3B 94 00 A6 39 90 00 00 00 21 83 83 90 00 meteor ireland http://www.meteor.ie 3B 3B 95 00 91 38 11 20 01 00 80 33 33 90 00 GSM SIM of WIND Italian mobile company 3B 3B 96 00 07 52 51 00 00 A8 FD 33 33 90 00 Movistar Costa Rica SIM card 3B 3B 96 00 40 22 51 00 00 42 00 33 33 90 00 Wind (Italy) 128K GSM SIM card 3B 3B 96 00 40 54 01 00 00 0A C0 33 33 90 00 Wind (Italy) 64K prepaid GSM SIM card 3B 3B 96 00 A7 4C 90 00 00 90 AC 33 33 90 00 Brazilian TIM GSM SIM 3B 3C 11 00 40 AF 13 F3 12 00 06 87 83 80 90 00 SIM GSM Orange Fr 3B 3C 11 00 42 AF 20 A3 20 07 00 22 83 82 90 00 Orange Mobicarte (SIM card old generation) 3B 3C 94 00 42 31 11 A2 12 02 09 51 83 80 90 00 Omnitel IT 16K GSM SIM card 3B 3C 94 00 4B 31 25 A2 10 13 14 47 83 83 90 00 GSM SFR 3B 3C 94 00 4C 31 25 A7 20 1B 00 15 83 83 90 00 GSM-SIM (900MHz) card of the carrier vodafone for their cellular network (phase 2+ with 3V) 3B 3C 94 00 63 31 12 F0 00 00 46 40 83 83 90 00 Old russian "beeline" sim 3B 3D 94 00 01 0F 00 36 00 00 86 60 18 04 00 01 07 Vodafone GSM / Turkey 3B 3D 94 00 23 18 02 56 00 00 86 60 5B 1B 00 00 0F GSM SIM, TMN (Moche prepaid, Portugal) 3B 3D 94 00 24 0E 00 96 00 00 86 60 31 B5 00 06 07 GSM SIM Tele2 Estonia; 2008 3B 3D 94 00 44 4D 54 11 00 06 06 17 62 11 00 30 00 China Unicom SIM card 3B 3D 95 00 80 67 AF 03 0F 01 7C 06 0E 83 3E 9F 16 (Sprint) Nextel USA iDEN SIM card http://www.sprint.com/index_n.html?brand=Nextel 3B 3E 94 00 80 31 00 73 FE 21 13 62 00 31 83 81 90 00 Vodafone (Italy) 64kB GSM SIM card 3B 3F 11 00 6F AF 65 03 12 01 80 73 32 21 1B 83 0F 90 00 GSM SIM card Orange J2RE postpaid 3B 3F 11 00 80 12 00 91 31 C0 64 0E 01 13 12 72 F7 41 05 SCOSTA Smart Card Operating System for Transport Application (transport) 3B 3F 11 00 80 12 00 91 31 C0 64 0E 01 28 AA 72 F7 41 05 SCOSTA Smart Card Operating System for Transport Application (transport) 3B 3F 11 00 80 69 AF 03 37 00 12 00 00 00 0E 83 18 9F 16 Reliance SIM (Prepaid), Telecommunication 3B 3F 94 00 80 65 AF 03 12 01 6F 73 32 21 1B 83 0F 90 00 GSM SIM Card (GEMPLUS), issued by Orange Switzerland (Prepaid) Italian Vodafone 64k SIM GSM SIM T-Mobile NL 3B 3F 94 00 80 65 AF 03 12 01 79 73 32 21 00 83 0F 90 00 O2 (UK) SIM 3B 3F 94 00 80 65 AF 03 12 01 79 73 32 21 1B 83 0F 90 00 UK O2 GSM SIM (2G Online Prepay Maldives) Tesco Mobile (UK) SIM 3B 3F 94 00 80 69 AF 03 07 06 67 00 00 0A 0E 83 3E 9F 16 SFR SIM card (red Gemplus Répertoire) 3B 3F 94 00 80 69 AF 03 07 06 67 09 97 0A 0E 83 3E 9F 16 BASE SIM - Belgium (Gemplus) 3B 3F 94 00 80 69 AF 03 07 06 68 00 85 0A 0E 83 3E 9F 16 O2 (UK) SIM 3B 3F 94 00 80 69 AF 03 0F 02 80 FF FF 06 0E 83 3E 9F 16 GSM-SIM Telefonica Movistar, prepaid (Spain) 3B 3F 94 00 80 69 AF 03 0F 07 A4 00 00 06 0E 83 3E 9F 16 SIM Card PRO from the austrian telecom "A1" 3B 3F 95 00 80 65 AF 03 12 01 6F 73 32 21 1B 83 00 90 00 Gemplus GemXpresso PRO 64 PK SIM 3B 3F 95 00 80 65 AF 03 12 01 6F 73 32 21 1B 83 0F 90 00 Vodafone Italia SIM 64K 3B 3F 95 00 80 65 AF 03 12 01 79 73 32 21 00 83 0F 90 00 GSM SIM Orange NL 3B 3F 95 00 80 65 AF 03 14 01 8A 73 32 21 1B 83 0F 90 00 SIM Vodafone 64k 3B 3F 95 00 80 69 AF 03 0F 02 80 FF FF 06 0E 83 3E 9F 16 AT&T Wireless GSM SIM Card UK Virgin Mobile GSM SIM 3B 3F 95 00 80 69 AF 03 0F 06 A3 FF FF 06 0E 83 3E 9F 16 "SIMYO" SIM card (KPN) 3B 3F 96 00 80 69 AF 03 3D 00 C6 00 00 00 0E 83 1E 9F 16 GSM SIM card of the Austrian provider A1 3B 57 18 02 93 02 01 01 01 90 00 Easyflex FastOS 2.0 / Schlumberger 3B 5B 96 00 00 31 C0 64 C6 FC 10 00 01 90 00 Banking card (Oberthur C.S. 06 18710-04-10) 3B 5B 96 00 00 31 C0 64 C7 FC 10 00 01 90 00 EBanking card (Oberthur C.S. 03 1146821) 3B 5E 11 FF 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 Estonian Identity Card (EstEID v1.0 2006 warm) 3B 5F 95 00 80 73 00 01 00 59 43 4C 5A 1B 00 11 40 90 00 SCM Chipdrive MyKey SC 3B 5F 95 00 80 73 00 01 00 59 43 4C 5A 1C 00 11 40 90 00 "CardLogic" CLXSU256KF5 3B 63 00 00 36 41 80 Schlumberger Payflex 4k User 3B 64 .. FF 80 62 .. A2 JCOP20 3B 64 00 00 80 62 0. 51 Setec SetCOS 5.1.0 EMV 3B 64 00 FF 80 62 02 A2 VISA credit card (Nordea bank) 3B 65 00 00 20 63 CB 47 00 Orga SmartyPlus DATA STORE issued by MORPHO CARDS PERU 3B 65 00 00 20 63 CB 63 00 Bank card from Societe Générale (Oberthur) 3B 65 00 00 20 63 CB 64 00 Bank card Caisse d'Epargne 3B 65 00 00 20 63 CB 64 80 MasterCard from La Banque Postale 3B 65 00 00 20 63 CB 66 00 Boursorama banque VISA (bank) 3B 65 00 00 20 63 CB 66 80 Crédit Agricole (french bank) MasterCard 3B 65 00 00 20 63 CB 68 00 VISA credit card (Skandiabanken) VISA credit card (Banque Populaire) Banque Postale card (bank) Société Générale (visa / jazz) HSBC Business VISA 3B 65 00 00 20 63 CB 68 00 26 VISA Société Générale - Oberthur CS 3B 65 00 00 20 63 CB 68 80 Capital One MasterCard Platinum 3B 65 00 00 20 63 CB 6A 00 CB Visa La Banque Postale (Gemalto) CB Visa BNP Paribas (France) CB Visa du Crédit Coopératif 3B 65 00 00 20 63 CB 6A 80 Mastercard EMV Debit Card Crédit Agricole (french bank) Gold Mastercard 3B 65 00 00 20 63 CB 6B 80 Crédit Agricole (french bank) Mastercard 3B 65 00 00 20 63 CB A0 00 CB Visa Banque Populaire (France) 3B 65 00 00 20 63 CB A0 80 Carrefour, MasterCard credit card, Pass Banque, Oberthur 3B 65 00 00 20 63 CB A1 00 AIB Visa Debit Card, manufcatured by Oberthur 3B 65 00 00 20 63 CB A1 80 bpaid: bpost prepaid Mastercard http://www.bpost.be/site/fr/residential/finance/bpaid/index.html 3B 65 00 00 20 63 CB A3 00 BNP VISA CARD 3B 65 00 00 20 63 CB A3 20 MasterCard Crédit Agricole Anjou-Maine (type Sociétaire) 3B 65 00 00 20 63 CB A3 A0 VISA card from Banque Populaire 3B 65 00 00 20 63 CB A5 20 Mastercard international credit card, with Moneo extension 3B 65 00 00 20 63 CB A7 20 ING Direct (French Bank) Gold MasterCard 3B 65 00 00 20 63 CB A8 A0 HSBC VISA Card 3B 65 00 00 20 63 CB AB 80 Portugal Caixa Geral de Depósitos Mastercard "Caixa Classic" 3B 65 00 00 29 05 01 02 01 ActivCard (Schlumberger) CyberFlex 64K V1 SM 2.1 3B 65 00 00 41 56 49 4F 4E RBC (Royal Bank of Canada) Avion Visa 3B 65 00 00 43 04 6C 90 00 Carte Bancaire (French banking card) (hot reset) 3B 65 00 00 58 01 01 00 80 RBS Advanta Platinum Reserve Master Card UK Lloyds TSB Visa Debit (issued 2003, Gemplus) 3B 65 00 00 9C 02 02 01 02 Dectel CI692 3B 65 00 00 9C 02 02 07 02 US Department of Defense, TEST Common Access Card (CAC) Schlumberger Cyberflex Access #2 Axalto Cyberflex Access 32K V2 Sun Microsystems employee card 3B 65 00 00 9C 1[0,1] 01 01 03 Schlumberger Cyberflex Palmera 3B 65 00 00 D0 00 37 00 80 Visa Debit card issued by National Bank of Dubai 3B 66 00 00 00 9C 11 01 01 03 Axalto Cyberflex Access 32K V4 SM 1.3 3B 66 00 00 00 9C 11 01 03 01 Axalto Cyberflex Access 64K V1 Bio SM 3.1 3B 66 00 00 05 12 01 01 01 B1 Lyon1 student card (Moneo compatible) 3B 66 00 00 31 4B 01 01 00 80 VISA credit card (Skandiabanken) 3B 66 00 00 32 D0 00 30 02 01 Kazakhstan Kazkom Onlinebank (Homebank) PKI client key-card (https://www.homebank.kz/) 3B 66 00 00 66 44 01 01 03 B1 Carte etudiant Paris 1 moneo BNP Paribas france (Oberthur) Carte Monéo Caise d'épargne Crouse de Lyon 3B 66 00 00 90 D1 02 01 10 B1 Moneo card (e-purse) 3B 66 00 00 90 D1 02 01 10 B1 3B 02 14 50 Card "Bordeaux Ma Ville" (yellow) http://www.bordeaux.fr/ebx/portals/ebx.portal?_nfpb=true&_pageLabel=pgPresStand8&classofcontent=presentationStandard&id=57733 3B 66 00 00 90 D1 02 01 20 B1 Moneo card (e-purse) 3B 66 00 00 90 D1 02 01 40 B1 Student card from Paris Diderot University (with Moneo) 3B 66 00 00 90 D1 02 01 52 B1 Pass Campus Alsace, a mix of a student card, a transport card (Badgeo) and a Moneo http://www.passcampus-alsace.fr/ http://www.cts-strasbourg.fr/Tarifs/Carte%C3%A0puceBadgeo/tabid/598/language/fr-FR/Default.aspx 3B 66 00 00 D0 00 47 44 00 80 VISA credit card (RBC Royal Bank) 3B 66 00 FF 4A 43 4F 50 30 33 IBM JCOP 30 3B 66 00 FF 4A 43 4F 50 32 31 JCOP 21 3B 66 00 FF 4A 43 4F 50 33 30 JCOP30 "OP-DI 16k VISA v2 (JCOP30) ORGA" 3B 67 00 00 00 00 00 00 00 90 00 Axa Bank (Belgium) Mastercard Gold / Axa Bank Belgium MisterCash & Proton card VISA Card (emitted by Bank Card Company - Belgium) 3B 67 00 00 00 00 20 00 00 90 00 BankID card from Sparebank1 3B 67 00 00 00 31 80 71 86 90 00 Swiss ZKB-Bancomat-Card 3B 67 00 00 29 20 00 6F 78 90 00 ING (previously Postbank Chippas) (chipknip) Netherlands Rabobank bankcard (dutch) ASN Bank debit card SNS Bank debit card ABN-AMRO Maestro 3B 67 00 00 29 20 00 6F 78 9A 00 ABN AMRO wereldpas 3B 67 00 00 2A 20 00 41 78 90 00 Prepaid Chipknip Netherlands 3B 67 00 00 2D 20 16 01 78 90 00 CNAMTS and CPAM SSO card (French Health Insurance) 3B 67 00 00 2D 20 36 00 78 90 00 Swedish cashcard, http://www.ida.liu.se/~TDDB31/Cashcard.pdf Bank Card (ING - Belgium) Schiphol Group Privium biometric card (Amsterdam Airport entry system) 3B 67 00 00 73 20 00 6C .. 90 00 Malaysia Citizen Identity Card (MyKad) http://www.jpn.gov.my/en/identitycard 3B 67 00 00 7C 20 40 34 2B 90 00 Swedbank Visa card 3B 67 00 00 7D 20 40 34 3B 90 00 Nordea Visa Sweden 3B 67 00 00 80 62 21 13 82 90 00 UBS MAESTRO CARD (Bank) 3B 67 00 00 85 20 36 30 78 90 00 Belgium Fortis Bank Belgium Keytrade Bank Belgium Post Bank 3B 67 00 00 85 22 16 31 78 90 00 Swiss UBS Ebanking Chipcard 3B 67 00 00 85 22 16 31 78 9F 00 UBS Token Card (bank) 3B 67 00 00 9C 10 01 01 03 FF 07 Schlumberger Cyberflex Palmera Protect 3B 67 00 00 A5 20 40 10 1F 90 00 Swedish eLegitimation (eID) from Nordea Bank http://www.elegitimation.se/ 3B 67 00 00 A6 40 40 00 09 90 00 Visa card issued by Norway bank DNBNor 3B 67 00 00 A8 10 42 20 1F 90 00 MyKad- Identification Card for Malaysians http://en.wikipedia.org/wiki/MyKad 3B 67 00 00 AB 40 40 26 09 90 00 Swedish VISA credit card (Volvofinans) 3B 67 00 00 AB 40 40 27 0B 90 00 Sparebanken Vest, Norway (spv.no). Visa credit card and national debit card [BankAxept] + Gemalto Todos authentication 3B 67 00 00 B1 40 40 33 0B 90 00 Sparebank1 VISA card, Norway www.sparebank1.no 3B 67 00 00 B3 40 40 00 3B 90 00 Handelsbanken BankID card (Swedish bank authentication issued 2011) 3B 67 00 00 B4 40 40 25 0B 90 00 Electronic meal check 3B 67 00 00 C1 30 40 01 0B 90 00 MC/Maestro card issued by Czech's "Ceskoslovenska obchodni banka" 3B 67 00 00 C4 30 40 01 0B 90 00 MasterCard issued by Czech's "Ceskoslovenska obchodni banka" Swedish Maestro bank card (Handelsbanken) 3B 67 00 00 C5 30 40 01 0B 90 00 Banking card (Oberthur C.S. 03 1027069) 3B 67 00 FF C5 00 00 FF FF FF FF 5D Alice Tv italia (Pay TV) 3B 67 25 00 29 20 00 6F 78 90 00 Albert Heijn klantenkaart (loyalty card) Rabopas (Rabobank) 3B 67 25 00 2A 20 00 4[0,5] 68 90 00 Swedish cashcard (proton) 3B 67 25 00 62 24 33 03 .. Bull TB1000 ? (SAM for ATM in Luxemburg) 3B 68 00 00 00 73 C8 40 00 00 90 00 Barclaycard Visa Wave & Pay - Chip I/F 3B 68 00 00 00 73 C8 40 10 00 90 00 Icelandic Banking scheme Issued by the Ministry of Treasure in Iceland http://www.islandsrot.is/ 3B 68 00 00 00 73 C8 40 11 00 90 00 Woolworths Everyday Money prepaid Mastercard Nordea Bank Norway Visa + national debet card [BankAxept] VISA Classic - Nordlandsbanken (Norway) 3B 68 00 00 00 73 C8 40 12 00 90 00 Brazilian "e-CPF" card 3B 68 00 00 00 73 C8 40 13 00 90 00 MASTERCARD issued by MLP (Marschollek, Lautenschläger and Partner) G&D 12696-GDM-10/11 DEBIT CARD issued by BANCO DE CREDITO DEL PERU 3B 68 00 00 01 02 10 96 00 00 90 00 Italian BancoPostaClick Postamat Card (Poste Italiane) - MasterCard debit card mbna PLATINUM MasterCard Flash (Banca Fideuram) Italy prepaid Mastercard 3B 68 00 00 56 53 44 43 4C 43 31 30 VISA (Estonian), made by www.trueb.ch Latvian bank "Latvijas Krajbanka" (VISA Electron) 3B 68 00 00 80 62 00 3C 83 00 90 00 Italian PostePay prepaid VISA-Electron PagoBancomat (Debtcard) Maestro - Intesa Sanpaolo Bank / Italy 3B 68 00 00 80 62 00 45 83 00 90 00 MasterCard - Intesa Sanpaolo Bank / Italy 3B 68 00 00 80 66 45 46 01 38 18 03 FNMT WG108k 3B 68 00 00 80 66 57 59 01 00 08 03 Spanish ULPGC student id card (http://www.ulpgc.es/) E-Money capability Alliance With La Caja de Canarias Bank Manufactured by GyD IBÉRICA (http://www.gi-de.com) 3B 68 00 00 80 66 A2 06 01 01 64 00 Visa card issued by Czech's "Komercni banka" (Gemplus brand on chip) 3B 68 00 00 80 66 A2 06 02 01 32 0E Gemplus GemClub 1K 3B 68 00 00 9D 03 02 01 01 56 49 53 Visa Card - SberBank / Russia 3B 68 00 00 9D 08 01 02 01 56 49 53 Visa Card - bonus - DenizBank / Turkey 3B 68 00 00 9D 08 01 03 01 4F 54 53 MasterCard Card - bonus - Garanti Bank / Turkey 3B 68 00 00 9D 08 01 03 01 56 49 53 MasterCard Card - bonus - Garanti Bank / Turkey MasterCard Card - bonus plus (paypass) - Garanti Bank / Turkey 3B 68 00 00 9D 08 01 05 01 56 49 53 MasterCard Card - CartaSi (Italian Credit Card) 3B 68 00 00 A1 02 02 01 01 56 49 53 UK NatWest Business MasterCard UK Barclaycard VISA UK NatWest Platinum MasterCard Visa Card - DenizBank / Turkey 3B 68 00 00 FF 29 23 00 07 68 90 00 Politecnico di Milano student card "Le Chiavi della Città" SienaCard MINIpay Card 3B 68 00 FF 00 73 C8 40 00 00 90 00 Visa credit card for Bank of Taiwan CommSec Debit MasterCard (Australia) 3B 68 00 FF 56 43 41 52 44 6E 73 73 NSSVirtual Smart Card for qemu 3B 69 00 00 24 94 01 00 00 00 00 01 A9 Kazakhstan Helios gas station debit card (http://helios.kz/) 3B 69 00 00 24 94 01 02 01 00 01 01 A9 Chipcard from SUN to be used in SunRay's 370-4328-01 (31091) 3B 69 00 00 24 94 01 03 01 00 01 00 A9 Schlumberger MicroPayflex S card 3B 69 00 00 4A 43 4F 50 33 31 56 32 32 Visa Europe Sample Card / Axalto 3B 69 00 00 50 01 01 04 01 00 01 01 A9 Sample card given to all attendees of the CTST 2004 SmartCard Conference 3B 69 00 00 55 4B 54 20 56 31 2E 30 00 PostFinance Card Direct (Swiss Post) 3B 69 00 00 56 49 53 5F 49 4E 46 20 06 VISA credit card (Ceska Sporitelna) Maestro credit card (Ceska Sporitelna) 3B 69 00 00 80 31 E0 55 42 45 52 47 53 Banrisul Bank 3B 69 00 00 AC 04 00 00 04 B1 8C 61 21 Student card for Université numérique Paris Île-de-France http://unpidf.univ-paris1.fr/la-carte-multiservice-etudiant-de-paris-et-d-ile-de-france-1775.kjsp?RH=unr-carte&RF=unr-carte 3B 69 00 FF 00 64 4A 10 04 32 05 90 00 NXP JCOP 20 V2.1 16K 3B 69 00 FF 32 33 32 43 53 43 53 33 36 CSCS smart card. Must be read using CSCS go smart software. https://download.cscsreader.co.uk/ 3B 69 00 FF 4A 43 4F 50 33 31 56 32 32 JCOP 31 v22 72K - S/C I/F 3B 69 00 FF 53 6D 40 72 74 43 61 66 65 G&D (Giesecke&Devrient) Sm@rtCafé 3B 6A 00 00 80 31 C0 A1 02 03 01 32 81 16 Lloyds TSB Visa Credit/Debit Card 3B 6A 00 00 80 65 A2 01 01 01 3D 72 D6 43 GemSafe Xpresso 16k 3B 6A 00 00 80 65 A2 01 03 01 8D 72 D6 43 American Express Blue Card 3B 6A 00 00 80 66 A1 09 02 01 63 0E 90 00 Danish Visa/Dankort UK MBNA MasterCard Visa Card - Worldcard - YapıKredi / Turkey VISA - Lloyds TSB DEBIT UK Halifax Visa Debit 3B 6A 00 00 80 66 A2 0A 01 01 8B 0E 90 00 CAP-EMV demo card 3B 6A 00 FF 41 42 43 44 32 45 46 47 48 49 Austria card - JCOP 31/36K 3B 6B .. FF 80 62 .. A2 56 46 69 6E 45 49 44 JCOP20 v2.x 3B 6B 00 00 00 31 80 64 2D A0 02 0C 8C 61 27 SmartEMV prototype 3B 6B 00 00 00 31 80 64 43 B0 02 00 8C 61 27 Bull Odyssey 1.2 (Javacard 2.0) 3B 6B 00 00 00 31 C0 64 A9 EC 01 00 82 90 00 Entropia Universe Gold card http://account.entropiauniverse.com/account/security/ 3B 6B 00 00 42 6C 75 63 61 72 64 20 34 4B 42 Blutronics Blucard 4K (Loyalty) http://blucard.blutronics.com 3B 6B 00 00 80 65 A1 09 03 01 97 83 0E 90 00 Visa Card - Worldcard - YapıKredi / Turkey 3B 6B 00 00 80 65 B0 83 01 01 74 83 00 90 00 GemXpresso Pro R3 with 64K EEPROM 3B 6B 00 00 80 65 B0 83 01 03 74 83 00 90 00 Gemplus GemXpresso PRO 64K R3 v1 3B 6B 00 00 80 65 B0 83 01 04 74 83 00 90 00 Gemplus GXP3 64V2N U.S. Department of Defense Common Access Card (DoD CAC) 3B 6B 00 FF 33 00 00 09 FA 10 00 80 01 FF FF Atmel 6464C PRO 64K 3B 6B 00 FF 56 43 41 52 44 5F 4E 53 53 NSSVirtual smart card for qemu 3B 6C 00 00 10 10 10 30 00 00 00 00 00 00 00 00 Datacard Group Aptura Development Card V1.1b 3B 6C 00 00 42 6C 75 6C 6F 67 6F 6E 20 34 4B 42 eID Blutronics Blulogon 4K http://shop.blutronics.com/Prodotti.asp 3B 6C 00 00 80 64 11 65 01 90 73 00 00 00 81 07 Universal Electronic Card (UEC Russia) (eID) 3B 6C 00 02 36 61 86 38 4B 8C 13 04 62 03 59 8A Nagravision, Swiss mode 3B 6D 00 00 00 31 80 64 2D A0 04 0C 71 96 8C 61 29 UK Co-operative Bank Visa Debit (produced 2002) 3B 6D 00 00 00 31 80 71 96 64 33 D1 01 00 82 90 00 DeLaRue GalactIC JavaCard 3B 6D 00 00 00 31 C0 71 D6 64 11 22 33 01 83 90 00 Egg (bank) VISA First Direct (bank) Maestro card First Direct Gold VISA UK Barclaycard Platinum VISA UK Barclaycard VISA UK Halifax Platinum VISA UK HSBC MasterCard UCFIN (Italy) "UniCreditCard Free" or "Plus" (VISA or MasterCard) credit card 3B 6D 00 00 00 31 C0 71 D6 64 19 16 01 00 84 90 00 Eurocard Corporate MasterCard issued by Eurocard AB Sweden Capital One (UK) MasterCard VISA card, issued by Swedbank Latvia VISA issued by Citibank International plc (manufacturer Oberthur) MasterCard issued by Swedbank Estonia (manufacturer Oberthur) Santander Business Visa Debit 3B 6D 00 00 00 31 C0 71 D6 64 34 C7 01 00 84 90 00 DeLaRue ProlifIC 3B 6D 00 00 00 31 C0 71 D6 64 34 C7 02 00 84 90 00 Cybelys card (Thalys fidelity card) 3B 6D 00 00 00 31 C0 71 D6 64 38 D0 02 00 84 90 00 EMV Visa Electron (Oberthur) 3B 6D 00 00 00 31 C0 71 D6 64 38 D0 03 00 84 90 00 HSBC Visa/MasterCard credit card Barclay Card MasterCard 3B 6D 00 00 00 31 C0 71 D6 64 4E D8 01 01 84 90 00 UK Capital One Platinum MasterCard 3B 6D 00 00 00 31 C0 71 D6 64 58 D7 01 00 84 90 00 UK Nationwide Bank Visa Delta UK First Direct Maestro UK Halifax Platinum Visa UK Co-operative Bank Visa Debit (produced 2003-2004) UK HSBC LiveCash Solo Debit card 3B 6D 00 00 00 31 C0 71 D6 65 11 22 33 01 83 90 00 UK Co-operative Bank Visa Debit (produced 2006) 3B 6D 00 00 00 90 08 20 90 00 90 00 00 FF FF FF FF Student college card 3B 6D 00 00 57 44 29 6C 80 86 93 D1 27 1F 13 32 3D SCSTA (Transport) 3B 6D 00 00 57 44 29 6C 80 86 93 D6 03 EE 08 2A 3D SCSTA (Transport) 3B 6D 00 00 80 31 80 65 B0 06 01 01 77 83 00 90 00 GemXpresso Lite: with EMV application 3B 6D 00 00 80 31 80 65 B0 07 02 02 89 83 00 90 00 JCOP30 contact interface 3B 6D 00 00 80 31 80 65 B0 43 01 00 77 83 00 90 00 Gemplus GemXpresso Lite 3B 6D 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 DeutscheBank Identification card 3B 6D 00 00 80 31 80 65 B0 83 02 04 7E 83 00 90 00 LuxTrust card https://www.luxtrust.lu/solutions/comp/cartech2 https://www.luxtrust.lu/faq/middleware/middleware 3B 6D 00 00 80 31 80 65 B0 83 11 40 C8 83 00 90 00 Gemalto TOP IM (Old name GemSafeXpresso 64) 3B 6D 00 00 80 31 80 65 B0 86 26 01 08 83 08 90 00 RBC Royal Bank VISA (Bank) 3B 6D 00 00 80 31 80 65 B0 87 27 01 BC 83 08 90 00 Kazcommertsbank (http://en.kkb.kz/page/WhoWeAre) one of the biggest banks in Republic of Kazakhstan Nordea (Finland) + Finnair MasterCard (credit) 3B 6D 00 00 80 31 80 65 B0 89 40 01 F2 83 00 90 00 PSAM Card 3B 6D 00 00 80 67 A1 11 01 01 64 08 55 83 0E 90 00 Italian Intesa SanPaolo Maestro 3B 6D 00 FF 00 31 80 71 8E 64 48 D5 02 00 82 90 00 Blue for Business, American Express@Business 3B 6D 00 FF 80 65 53 43 01 0D 06 73 94 21 1B 81 0[1,5] Giesecke & Devrient CardToken 350 (ICCD) 3B 6D 00 FF 80 73 00 21 13 57 4A 54 48 61 31 47 00 ActiveKey SIM 3B 6D 00 FF 80 73 00 21 13 57 4A 54 48 61 31 48 00 Spanish Medical College Card 3B 6E 00 00 00 31 80 71 86 65 01 64 02 22 32 80 90 00 MasterCard Card - bonus plus (paypass) - Garanti Bank / Turkey 3B 6E 00 00 00 31 80 71 86 65 01 64 02 22 32 83 90 00 MasterCard Card - bonus YKM - Garanti Bank / Turkey 3B 6E 00 00 00 31 80 71 86 65 01 67 02 A0 0A 83 90 00 Australian ANZ First Visa Card from the ANZ (Australia and New Zealand) Bank 3B 6E 00 00 00 31 80 71 86 65 47 44 23 01 02 83 90 00 Nat West Master Card 3B 6E 00 00 00 31 80 71 86 65 47 44 24 01 81 83 90 00 MasterCard Card - Maximum - IS Bank / Turkey Visa Card - Axess - Akbank / Turkey 3B 6E 00 00 00 31 C0 65 54 B6 01 00 84 71 D6 8C 61 2C Kazakhstan Centrcredit bank VISA electron card (http://www.bcc.kz/en/) 3B 6E 00 00 00 31 C0 65 54 B6 01 00 84 71 D6 8C 61 31 UK BARCLAYS VISA Connect Debit card. The chip is used for the Chip&PIN application common for all UK-issued cards: http://www.chipandpin.co.uk/ 3B 6E 00 00 00 31 C0 65 76 B4 01 01 60 71 D6 8C 61 1F MasterCard Silver from Viseca Card Services SA http://www.viseca.ch/html/en/kreditkarten/produkte_neutrale_karten.php 3B 6E 00 00 00 31 C0 65 77 B2 01 01 47 71 D6 8C 61 33 VISA Credit Card (National Bank of Greece) 3B 6E 00 00 00 31 C0 65 77 B2 01 03 47 71 D6 8C 61 31 UK Barclaycard Business VISA Nationwide Building Society (UK) Visa Debit and Credit Cards 3B 6E 00 00 00 31 C0 65 77 B2 01 03 47 71 D6 8C 61 37 Italian Soldintasca Sanpaolo prepaid VISA-Electron 3B 6E 00 00 00 31 C0 65 77 B3 01 00 70 71 D6 8C 61 .. Italian Bancomat (debit card) 3B 6E 00 00 00 31 C0 65 7C B5 01 00 80 71 D6 8C 61 2C Kazakhstan Kazkom bank VISA electron card (http://en.kkb.kz/) 3B 6E 00 00 00 31 C0 65 7C B5 01 00 80 71 D6 8C 61 35 MasterCard Classic, issued by Avangard Bank (Russia) http://avangard.ru/ 3B 6E 00 00 00 31 C0 65 7C B5 01 00 80 71 D6 8C 61 37 Swedbank MasterCard card 3B 6E 00 00 00 31 C0 65 BC D0 02 01 06 71 D6 8C 61 2E Lloyds TSB Mastercard Credit Card 3B 6E 00 00 00 31 C0 65 BC D0 02 01 06 71 D6 8C 61 33 Lloyds TSB Visa Debit Barclays Visa DEBIT 3B 6E 00 00 00 31 C0 65 BC D0 02 01 06 71 D6 8C 61 43 S-pankki (Finland) Visa Debit 3B 6E 00 00 00 31 C0 65 BC D1 02 01 01 71 D6 8C 61 33 Travelex Cash Passport - Prepaid MasterCard Currency Card 3B 6E 00 00 00 31 C0 65 BC D1 02 01 01 71 D6 8C 61 35 MasterCard Card, issues by Rabobank in the Netherlands 3B 6E 00 00 00 31 C0 65 D3 C1 02 01 28 71 D6 8C 61 22 Visa debit card 3B 6E 00 00 00 31 C0 65 D3 C1 02 01 28 71 D6 8C 61 33 SberBank Silver Debit Card 3B 6E 00 00 00 31 C0 65 D3 C1 02 01 28 71 D6 8C 61 39 Paypal Italy prepaid Mastercard 3B 6E 00 00 00 31 C0 65 D3 C2 02 00 05 71 D6 8C 61 35 Italian Intesa SanPaolo VISA 3B 6E 00 00 00 31 C0 65 D3 C2 02 00 05 71 D6 8C 61 39 Italian Bancomat (Cassa di Risparmio di Rimini) (bank card) 3B 6E 00 00 00 31 C0 65 D3 C3 02 03 01 71 D6 8C 61 3B American Express Platinum from Banco do Brasil 3B 6E 00 00 00 31 C0 65 E2 C4 02 01 01 71 D6 8C 61 22 mastercard (Bank) 3B 6E 00 00 00 31 C0 65 E2 C4 02 02 01 71 D6 8C 61 25 Spanish "Santander" bank - Maestro debit card - Made by gemalto sp SA 3B 6E 00 00 00 31 C0 65 E7 D2 02 01 10 71 D6 8C 61 23 Visa debit card: mBank - BRE Bank SA 3B 6E 00 00 00 31 C0 65 E7 D2 02 01 10 71 D6 8C 61 37 UCFIN (Italy) "UniCreditCard Free" or "Plus" (VISA or MasterCard) credit card 3B 6E 00 00 00 31 C0 65 E7 D2 02 01 10 71 D6 8C 61 47 Hellenic Bank Visa Electron (Gemalto) 3B 6E 00 00 00 31 C0 65 EC D4 02 00 08 71 D6 8C 61 33 Victoria Bank (Republic of Moldova) - Visa Electron 3B 6E 00 00 00 31 C0 71 86 65 01 64 02 22 33 83 90 00 UK NatWest ServiceCard 100 Maestro Visa Card - bonus - Garanti Bank / Turkey UK Royal Bank of Scotland Highline Maestro Debit 3B 6E 00 00 00 31 C0 71 86 65 01 78 01 27 34 83 90 00 UK NatWest ServiceCard 100 Maestro Visa Card - Gold - CARDFINANS / Turkey 3B 6E 00 00 00 31 C0 71 86 65 01 BB 01 13 3B 83 90 00 NatWest Servicecard 100 - Maestro ATM NatWest Visa Debit 3B 6E 00 00 00 31 C0 71 86 65 02 02 04 04 41 83 90 00 CIBC (Canada) "Platinum" (VISA) credit card ING Direct (Italy) "Gold" (VISA) credit card ING Direct (Italy) "Bancomat" (V PAY) debit card HSBC (Canada) (Interac/Cirrus/The Exchange) debit card UniCredit (Italy) "Bancomat" (Maestro) debit card 3B 6E 00 00 00 31 C0 71 C6 65 01 B0 01 03 37 83 90 00 NatWest (UK) "Business" (MasterCard) credit card NatWest (UK) (Maestro) debit card Santander Totta (Portugal) "JÁ KÁ KONTA" (VISA Electron) debit card ANZ (Australia) (VISA) credit card Millennium BCP (Portugal) (VISA Electron) debit card OpenBank (Spain) (VISA) credit card CIBC (Canada) debit card UniCredit (Italy) "Genius Card" (MasterCard) debit card UniCredit (Italy) "UniCreditCard Click" (MasterCard) debit card VISA Electron debit card from the Spanish branch of ING Direct (bank) 3B 6E 00 00 00 31 C0 71 C6 65 01 B0 01 03 3A 83 90 00 MasterCard hostet by Deutsche Bank, Germany Maestro card by Caja de Burgos, Spain MasterCard Debit Card issued by Spain Openbank (www.openbank.es) 3B 6E 00 00 00 31 C0 71 C6 65 01 B0 01 31 37 83 90 00 Electron VISA Credit Card (BANK OF Cyprus) 3B 6E 00 00 00 31 C0 71 C6 65 42 2C 01 35 35 83 90 00 UniCredit (Italy) "UniCreditCard Classic" (VISA) credit card 3B 6E 00 00 00 31 C0 71 C6 65 71 0C 04 35 36 83 90 00 NatWest VISA Business Debit VISA Debit Card (NatWest / ING DiBa) Komercni Banka, A.S., Visa Debit, Czech Republic 3B 6E 00 00 00 31 C0 71 D6 65 12 0D 01 81 00 83 90 00 VISA Gold (VISA ORO) from the Spanish branch of ING Direct (bank) http://www.ingdirect.es/tarjetas-ing/ Visa Credit Card issued by Spain Cetelem for PayPal (www.paypal.es/cetelem) MasterCard debit card: moneybookers.com card issued by Newcastle Building Society 3B 6E 00 00 00 31 C0 71 D6 65 13 0D 01 81 00 83 90 00 Mastercard Black issued by Banco do Brasil (www.bb.com.br) Manufactured by Oberthur (www.oberthur.com) 3B 6E 00 00 00 31 C0 71 D6 65 7D E4 01 10 A0 83 90 00 VISA card, issued by the ANWB, the Dutch national Automobile club VISA Card - Maximum - Oyak Bank / Turkey VISA - Barclays Premier 3B 6E 00 00 00 31 C0 71 D6 65 7D E4 01 11 A0 83 90 00 UK CapitalOne Platinum Mastercard 3B 6E 00 00 00 31 C0 71 D6 65 94 E8 03 40 00 83 90 00 First Direct UK VISA Debit Italian Cariparma Maestro "Net+ Mastercard card" from netpluscards.com, Neteller UCFIN (Italy) "UniCreditCard Free" (VISA) credit card Cirrus ATM Card issued by Permanent TSB in Ireland 3B 6E 00 00 00 31 C0 71 D6 65 A3 03 01 80 00 83 90 00 UK First Direct (HSBC) Maestro / Cirrus UK Capital One Platinum MasterCard HSBC Commercial Card Visa VISA issued by Czech's "Komercni banka" (member of Societe General group) Portugal Caixa Geral de Depositos debit card The co-operative bank VISA Debit SberBank Silver Debit Card (VISA) Maestro/Cirrus/Laser Card issued by Bank of Ireland in Ireland 3B 6E 00 00 00 31 C0 71 D6 65 CE 0B 01 40 00 83 90 00 Nationwide InvestDirect (bank) SberBank Gold Credit Card (VISA) 3B 6E 00 00 00 62 .. 43 57 41 56 41 4E 54 10 81 90 00 Setec SetCOS 4.3.0 3B 6E 00 00 00 62 00 00 57 41 56 41 4E 54 10 81 90 00 Setec SetCOS 5.1.0 EMV + AVANT 3B 6E 00 00 00 62 16 43 .. 41 56 41 4E 54 10 81 .. .. Setec SetCos 4.3.0 3B 6E 00 00 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 Estonian Identity Card (EstEID v1.1 "MULTOS" cold) 3B 6E 00 00 57 44 36 13 69 86 93 02 32 12 56 28 25 32 Watchdata Brazil CSP v1.0 (Banco do Brasil) http://www.watchdata.com/en/bank/solutions.jsp 3B 6E 00 00 62 6C 75 63 61 72 64 20 32 4B 42 2F 76 34 eID Blutronics Blucard 2K http://blucard.blutronics.com 3B 6E 00 00 62 6C 75 63 61 72 64 20 34 4B 42 2F 76 34 eID Blutronics Blucard 4K http://blucard.blutronics.com 3B 6E 00 00 62 6C 75 63 61 72 64 20 38 4B 42 2F 76 34 eID Blutronics Blucard 8K http://blucard.blutronics.com 3B 6E 00 00 80 25 A0 00 00 00 28 56 80 10 24 00 01 11 Opencard, new card in Prague, Czech Republic (transport card) 3B 6E 00 00 80 31 80 65 B0 03 01 01 5E 83 00 00 90 00 FirstUSA Visa 3B 6E 00 00 80 31 80 65 B0 03 02 01 5E 83 00 00 90 00 Gemplus GemXpresso 211is 3B 6E 00 00 80 31 80 66 B0 07 03 00 AC 01 83 00 90 00 e-payment card with topup system, propreteary by local bank http://www.klikbca.com/individual/silver/product.html?s=69 3B 6E 00 00 80 31 80 66 B0 84 0C 01 6E 01 83 00 90 00 Nordea (a Skandinavian bank) eID card http://linux.fi/wiki/Nordea_eID 3B 6E 00 00 80 31 80 66 B0 84 12 01 6E 01 83 00 90 00 Barclaycard Platinum VISA Inteligo debit card 3B 6E 00 00 80 31 80 66 B0 84 16 01 6E 01 83 00 90 00 UK "Barclaycard Gold VISA" with RFID 3B 6E 00 FF 00 62 00 00 57 41 56 41 4E 54 10 81 90 00 debit card (Visa Electron) issued by Nordea bank 3B 6E 00 FF 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 Estonian Identity Card (EstEID v1.0 warm) 3B 6E 00 FF 47 44 2D 47 50 2D 33 32 56 34 2D 44 45 53 Mastercard Ourocard Platinum from Banco do Brasil 3B 6F 00 00 00 66 4D 45 31 61 03 01 53 08 61 04 F0 90 00 Spanish University of Murcia smart ID card - Old version (M.Mar OS) - Also used by many others spanish universities 3B 6F 00 00 00 66 4D 45 31 B1 03 01 53 08 61 04 F0 90 00 Spanish UCAM University smart ID card - (M.Mar OS) - Also used by many others spanish universities 3B 6F 00 00 00 66 4D 45 66 80 03 .. 53 06 61 03 F0 90 00 Millenium Card (www.coruna.es/millennium) municipal city card for A Coruña, Spain. electronic wallet for paying services like parking meter or public service (bus) transportation. 3B 6F 00 00 00 66 4D 45 66 80 03 14 53 03 61 04 F0 90 00 Paypal Prepaid Card (YoUnique Money E.D.E.) 3B 6F 00 00 00 66 4D 45 66 84 03 09 53 03 61 04 F0 90 00 spanish MAESTRO debit card, from Unicaja bank 3B 6F 00 00 00 67 2. 43 46 49 53 45 12 52 66 FF 81 90 00 Setec SetCOS 4.3.2 3B 6F 00 00 00 68 2B 42 05 02 46 49 53 45 31 C8 07 90 00 MAESTRO card, issued by Swedbank Estonia 3B 6F 00 00 00 68 2C 42 05 02 46 49 53 45 31 C8 07 90 00 VISA card, issued by Swedbank Latvia VISA card, issued by the Latvian bank "Latvijas Krajbanka" 3B 6F 00 00 62 6C 75 63 61 72 64 20 31 36 4B 42 2F 76 34 eID Blutronics Blucard 16K http://blucard.blutronics.com 3B 6F 00 00 80 31 C0 52 00 83 64 02 19 08 32 83 83 90 00 Bancomer Mexican Bank 3B 6F 00 00 80 31 C0 52 07 52 64 02 19 08 32 83 83 90 00 Santander (Bank) 3B 6F 00 00 80 31 C0 52 07 6F 64 02 19 04 32 83 83 90 00 Credit Card IXE Banco, México 3B 6F 00 00 80 31 C0 52 0A 47 64 02 B3 02 37 83 83 90 00 Visa debit card issued by the Spanish bank "tubancaja" 3B 6F 00 00 80 31 C0 52 11 F4 64 02 B3 02 37 83 83 90 00 VISA (Bank) 3B 6F 00 00 80 31 C0 52 13 2F 64 02 19 08 32 83 83 90 00 Cajamadrid-UCM (Madrid, Spain) Cash/Visa Electron 3B 6F 00 00 80 31 C0 52 16 B9 64 05 66 80 32 83 83 90 00 Banorte Mexican Bank 3B 6F 00 00 80 31 E0 5B 4E 4F 4B 00 00 00 00 00 00 02 00 Norsk-Tipping (Buypass) Monodex card 3B 6F 00 00 80 31 E0 5B 54 57 44 00 00 00 00 00 00 02 00 MasterCard credit card for Far Eastern Bank, Taiwan 3B 6F 00 00 80 31 E0 5B 59 54 4C 00 00 00 00 00 00 02 00 Turkish Armed Force - Daily Social Facility Usage Card 3B 6F 00 00 80 31 E0 6B 01 03 05 02 E0 55 55 55 55 55 55 American Express Gold Credit Card 3B 6F 00 00 80 31 E0 6B 02 01 02 07 01 55 55 55 55 55 55 Brazilian state bank: Caixa Econômica Federal debit card 3B 6F 00 00 80 31 E0 6B 04 03 03 04 05 55 55 55 55 55 55 Blue American Express Card 3B 6F 00 00 80 31 E0 6B 04 06 03 04 40 55 55 55 55 55 55 Blue American Express Card 3B 6F 00 00 80 31 E0 6B 04 06 05 02 17 55 55 55 55 55 55 Marx Software Security - Cryptoken M2048, MULTOS, Infineon SLE66CX, 64kByte http://www.marx.com/en/ 3B 6F 00 00 80 31 E0 6B 04 20 05 02 30 55 55 55 55 55 55 Buypass card for Norsk Tipping (http://norsk-tipping.no) 3B 6F 00 00 80 31 E0 6B 04 20 05 02 47 55 55 55 55 55 55 "Norsk-Tipping (Buypass) Monodex card" bought from http://buypass.no and used to access norwegian state services at http://altinn.no 3B 6F 00 00 80 31 E0 6B 04 20 05 02 58 55 55 55 55 55 55 Norsk Tipping online player card Norwegian government controlled betting company 3B 6F 00 00 80 31 E0 6B 04 21 05 02 61 55 55 55 55 55 55 NORSK TIPPING NORWAY http://www.norsk-tipping.no/ 3B 6F 00 00 80 31 E0 6B 05 08 05 02 83 55 55 55 55 55 55 Bank of Montreal debit card 3B 6F 00 00 80 31 E0 6B 05 12 05 02 87 55 55 55 55 55 55 American Express credit card 3B 6F 00 00 80 31 E0 6B 07 14 05 02 8A 55 55 55 55 55 55 SolutionsBanking Canada Interac debit card 3B 6F 00 00 80 31 E0 6B 84 06 03 04 31 55 55 55 55 55 55 Multos Developer Sample 3B 6F 00 00 80 31 E0 6B 84 06 0E 02 02 55 55 55 55 55 55 Multos Developer Sample 3B 6F 00 00 80 31 E0 6B 84 20 05 02 39 55 55 55 55 55 55 Multos 14D (2-0-10) 64K Developer Card 3B 6F 00 00 80 31 E0 6B 84 20 05 02 42 55 55 55 55 55 55 Multos 14Dc(6-0-13) 64K Dual-Interface Developer Card 3B 6F 00 00 80 54 43 4F 4C 44 00 00 00 00 00 00 82 90 00 Valovis Bank Mastercard (www.valovisbank.de) 3B 6F 00 00 80 5A .. 0[1-5] .. .. .. .. .. .. .. .. 82 90 00 Card supporting a Calypso application Rev 1 Navigo (France) transport card ACTV (Italy) transport card 3B 6F 00 00 80 5A 08 03 03 00 00 00 01 56 64 F6 82 90 00 transport bus/tram "atout.tag" semitag grenoble 3B 6F 00 00 80 5A 08 06 08 20 02 00 .. .. .. .. 82 90 00 Lisboa Viva, public transport card of Lisbon (Portugal) 3B 6F 00 00 80 5A 08 06 08 20 02 00 10 00 3E DC 82 90 00 CTS (Compagnie des Transports Strasbourgeois) to hold transportation tickets 3B 6F 00 00 80 5A 08 06 08 20 02 00 10 00 48 EA 82 90 00 french public transport card (www.cts-strasbourg.fr) 3B 6F 00 00 80 5A 08 06 08 20 02 00 92 35 1E 52 82 90 00 Public transport card of Lisbon (www.carris.pt) 3B 6F 00 00 80 5A 08 06 08 20 02 23 92 16 D1 BD 82 90 00 "OPUS Card" Montreal's transit system by oberthur cardsystems 3B 6F 00 00 80 5A 08 06 08 20 02 23 92 1B 4B 59 82 90 00 "OPUS Card" Quebec's Bus system. 3B 6F 00 00 80 5A 0A 07 06 20 04 2B 10 5A 8F 94 82 90 00 Rav-Kav, Used by Israeli public transportation companies (Transport) 3B 6F 00 00 80 5A 28 13 02 10 12 2B 92 92 E6 42 82 90 00 Transport card in côte d'or France (mobigo) 3B 6F 00 00 80 5A 29 13 09 10 11 3[3,5] .. .. .. .. 82 90 00 MOBIB (reseau transport en commun Bruxelles, Belgique) http://www.uclouvain.be/sites/security/mobib.html Calypso application similar to French NAVIGO 3B 6F 00 00 80 5A 2C 23 C2 10 10 05 .. .. .. .. 82 90 00 MOBIB (reseau transport en commun Bruxelles, Belgique) 3B 6F 00 00 80 5A 2C 23 C3 10 10 05 71 00 04 2B 82 90 00 NMBS/SCNB Mobility card (basically a train subscription) MoBIB 3B 6F 00 00 80 5A 43 4F 4C 44 00 00 00 00 00 00 82 90 00 LBB Berlin, MasterCard (ADAC branding?) 3B 6F 00 00 80 66 45 46 01 38 18 03 53 02 31 10 82 90 00 Fábrica Nacional de Moneda y Timbre FNMT WG10 http://www.fnmt.es/es/html/tage/fichaTarjeta/fp1_ta_01.asp 3B 6F 00 00 80 66 45 46 01 38 18 03 53 02 31 24 82 90 00 Electronic purse of the Universidad Politecnica of Madrid (provided by Banco Santander) 3B 6F 00 00 80 66 45 46 01 38 18 03 53 07 61 04 82 90 00 Vitrasa Card municipal city card for Vigo, Spain. Electronic wallet for paying bus transportation. http://www.vitrasa.es/php/index.php 3B 6F 00 00 80 66 57 59 01 00 08 03 53 07 61 04 82 90 00 Green card of City council of Vigo (public transport) 3B 6F 00 00 80 66 57 59 01 00 08 03 53 07 61 14 82 90 00 E-money Vitrasa Card - Public transport in Vigo 3B 6F 00 00 80 66 A2 03 02 02 3D 07 53 02 31 10 82 90 00 Electronic purse of the Universidad Politecnica of Madrid (provided by Banco Santander) 3B 6F 00 00 80 66 B0 07 01 01 77 07 53 02 31 10 82 90 00 University ID card (issued by Banco Santander Central Hispano) . Universidad Nacional de Educación a Distancia (UNED, Spain) http://www.uned.es/tarjeta . Universitat Politècnica de Catalunya (UPC.edu) https://www.upc.edu/identitatdigital . Universitat Ramon Llull (URL) http://www.url.edu/cont/url/carnet.php 3B 6F 00 00 80 66 B0 07 01 01 77 07 53 02 31 24 82 90 00 Santander 4B Maestro University of Santiago de Compostela. Spain Polytechnical University of Madrid, Spain 3B 6F 00 01 80 31 E0 6B 04 06 05 02 11 55 55 55 55 55 55 American Express "Entourage" credit card issued by CIBC (http://www.cibc.com) 3B 6F 00 FF 00 56 72 75 54 6F 6B 6E 73 30 20 00 00 90 00 ruToken-S (USB token) http://www.rutoken.ru/products/rutoken/rutoken-s/ 3B 6F 00 FF 52 53 41 53 65 63 75 72 49 44 28 52 29 31 30 RSA SecurID SID800 token 3B 6F 00 FF 53 46 53 45 2D 43 58 33 32 32 2D 56 18 02 02 Giesecke & Devrient SmartCafe Expert 2.0 3B 74 18 00 00 73 66 74 65 SafeSign from A.E.T. Europe B.V. Manufactured by Giesecke & Devrient (G&D) 3B 75 12 00 00 29 05 01 04 01 CAC Cryptographic Service Provider Axalto Cyberflex Access 64K V1 SM 4.1 3B 75 13 00 00 43 09 EA 90 00 Vitale 2 (french health card) 3B 75 13 00 00 44 09 EA 90 00 Carte Vitale 2 (Nouvelle version avec photo) 3B 75 13 00 00 45 09 EA 90 00 Carte Vitale 2 (French health card) 3B 75 13 00 00 46 09 EA 90 00 Health Care card 3B 75 13 00 00 9C 02 02 01 02 Cyberflex Access 32k v2 3B 75 94 00 00 62 02 02 0[1-3] 01 Schlumberger Cyberflex 32K e-gate Gemalto TOP US (product code HWP115278A) 3B 76 11 00 00 00 9C 11 01 02 02 Schlumberger Cyberflex Access 32K 3B 76 11 00 00 00 9C 11 01 02 03 RSA SecureID 5100 3B 76 12 00 00 00 9C 11 01 03 03 Precise BioMatch (TM) JavaCard (Schlumberger) www.precisebiometrics.com 3B 76 13 00 00 80 62 07 41 81 80 Generic mass produced Motorola smart card 3B 76 13 00 00 80 62 07 41 81 81 TransLink card (discontinued San Francisco Bay Area transit card) 3B 76 98 00 00 00 9C 11 01 01 02 CyberFlex Access 32 3B 78 12 00 00 47 C4 03 00 8F F1 90 00 Sattelite bg 23.5 East cryptoworks card 3B 78 12 00 00 54 C4 03 00 8F F1 90 00 Skylink irdeto from Towercom a.s. company irdeto card for the ORF (Austrian national public television) HD channels 3B 78 12 00 00 65 C4 05 00 8F F1 90 00 Digitürk Cryptoworks 3B 78 12 00 00 65 C4 05 05 8F F1 90 00 Turkie Digiturk Cryptoworks 3B 78 12 00 00 A0 C4 03 06 8F F1 90 00 ORF Digital (Irdeto/Cryptoworks) (pay tv) 3B 78 12 00 00 A0 C4 03 07 8F F1 90 00 IRDETO-Smartcard for crytoworks for austrian television (ORF), DVB-s 3B 78 12 00 00 A0 C4 06 00 8F F1 90 00 Cryptoworks/Nagravision decoding card 3B 78 12 00 00 A0 C4 06 05 8F F1 90 00 Satellite cardu, provider: UPC DTH, CAID: 0D02 3B 78 12 00 00 A0 C4 06 07 8F F1 90 00 Skylink CZ/SK - Cryptoworks 3B 78 13 00 00 00 73 C8 40 10 00 90 00 credit/debit card from issued by Finnish credit authority Luottokunta Oy 3B 79 18 00 00 80 54 43 4F 4C 44 82 90 00 LBB VISA Card 3B 79 94 00 00 59 01 01 0E 01 6B 01 02 A9 Vending machine payment card ('Necta' brand) 3B 79 98 00 00 50 01 01 04 01 00 01 01 A9 Gemalto PayFlex used in Aristocrat System 7000 Casino Management System (South Africa only) 3B 7A 11 00 00 48 44 32 2E 30 34 6F FF 90 00 User Smartcard provided with the Hiddn Crypto Adapter (www.hiddn.no) 3B 7A 11 00 02 48 4F 53 54 06 03 19 02 90 00 Swedish bankcard with Mastercard from ICA-banken 3B 7A 13 00 00 00 09 A5 05 01 00 B7 01 A6 01 "cleyris" authentication card. monpass.santé from Mutuelle Générale 3B 7A 18 00 00 73 66 74 65 20 63 64 31 34 34 Republic Slovenia e-Gov, Ministry of Public Administration SIGOV-CA, Slovenian Governmental Certification Authority 3B 7A 18 00 00 73 66 74 65 2D 63 64 30 38 30 HYPOnet online banking card / Croatia 3B 7A 18 00 FF 4A 43 4F 50 32 31 56 32 33 31 JCOP21 18K 3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43 Gemplus GemXpresso Pro R3 E32 PK 3B 7A 96 00 00 80 65 A2 01 01 01 3D 72 D6 43 AGH University of Science and Technology (Poland) - Student Identity Card (ELS) (eID) 3B 7B .. 00 00 80 62 0. 51 56 46 69 6E 45 49 44 Setec SetCOS 5.1.0 3B 7B 18 00 00 00 31 C0 64 77 E3 03 00 82 90 00 Oberthur Cosmopolic 64K v5.2 D 3B 7B 18 00 00 00 31 C0 64 77 E9 10 00 01 90 00 Oberthur Card Systems: Cosmo 64 RSA V5.4 (ISK Key Set: 404142 .. 4E4F) 3B 7B 18 00 00 00 31 C0 64 C6 FC 10 00 07 90 00 Sberbank of the RUSSIAN federation 3B 7B 18 00 00 00 31 E8 54 27 E6 00 00 01 90 00 Oberthur ID-One COSMO 64k v.5 3B 7B 18 00 00 80 62 01 54 56 46 69 6E 45 49 44 FineID identity card for organizations http://fineid.fi/default.aspx?id=491 http://www.opensc-project.org/opensc/wiki/FinnishEid 3B 7B 94 00 00 80 62 1[1,2] 51 56 46 69 6E 45 49 44 Finnish Electronic ID card (fineid card www.fineid.fi) 3B 7B 94 00 00 80 65 B0 83 01 0[1,3] 74 83 00 90 00 Gemplus GemXpresso Pro R3 (E64 PK) 3B 7B 95 00 00 80 65 B0 83 01 04 74 83 00 90 00 Gemplus GemXpresso Pro 64K R3 FIPS v2 3B 7C 13 00 00 80 64 11 65 01 90 73 00 00 00 81 07 Universal Electronic Card (UEC Russia) (eID) 3B 7C 18 00 00 43 52 45 53 43 45 4E 44 4F 38 30 30 HID Global Crescendo C800 (PKI) http://www.hidglobal.com/products/cards-and-credentials/crescendo/c800 3B 7D 11 00 00 00 31 80 71 8E 64 52 D9 01 00 82 90 00 Oberthur Galactic V2 3B 7D 11 00 00 00 31 80 71 8E 64 77 E3 01 00 82 90 00 Oberthur Cosmo 64k RSA v5 3B 7D 11 00 00 00 31 80 71 8E 64 77 E3 02 00 82 90 00 Oberthur 64k v5/2.2.0 3B 7D 11 00 00 00 31 80 71 8E 64 86 D6 01 00 81 90 00 DOD-CAC 3B 7D 13 00 00 4D 44 57 2D 49 41 53 2D 43 41 52 44 32 IAS (Identification, Authentication, and electronic Signature) Premium, profil DGME from Sagem 3B 7D 18 00 00 00 31 80 71 8E 64 77 E3 01 00 82 90 00 Oberthur 64k v4/2.1.1 3B 7D 18 00 02 80 57 59 50 53 49 44 30 33 83 7F 90 00 Sagem YpsID s2 (SafeSign) 3B 7D 94 00 00 55 55 53 0A 74 86 93 0B 24 7C 4D 54 68 SIM from sysmocom sysmoSIM-GR2 3B 7D 94 00 00 57 44 53 05 54 86 93 00 15 6A 5F 13 78 Idea Indian GSM operator SIM 3B 7D 94 00 00 57 44 53 63 96 86 93 00 9D F7 10 00 9D China Mobile SIM card 3B 7D 94 00 00 57 44 53 72 FD 86 93 11 01 06 75 5B 0F China Telecom UIM 64K 3B 7D 94 00 00 57 44 53 96 FA 86 93 03 B7 BF BF 5F 63 Airtel India SIM 3B 7D 94 00 00 80 31 80 65 B0 83 01 01 90 83 00 90 00 GemSafeXpresso 16k R3.2 3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00 Gem e-Seal (GemSafeXpresso 32k R3.2) Gemalto Classic TPC - IS 3B 7D 94 00 00 80 31 80 65 B0 83 02 04 7E 83 00 90 00 GXP Pro R3.2 64K, GemSafe applet MPCOS v1.11 card issued by Czech National Bank dual card: chip used for electronic certificates (czech commercial bank use such card to sign money transfer orders sent to national clearing central) 3B 7D 94 00 00 80 31 80 65 B0 83 11 00 AC 83 00 90 00 GemCombiXpresso R4 72K 3B 7D 94 00 00 80 31 80 65 B0 83 11 00 C8 83 00 90 00 personal identity card (ID card) of Republic of Lithuania LuxTrust card 3B 7D 94 00 00 80 31 80 65 B0 83 11 48 C8 83 00 90 00 Online banking http://www.getinbank.pl/ 3B 7D 94 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00 GemXpresso R4 72K 3B 7D 95 00 00 80 31 80 65 B0 83 02 04 7E 83 00 90 00 Gemalto's Classic TPC HM CC Mifare 1K White PVC (Old name GemSafeXpresso 64K) 3B 7D 95 00 00 80 31 80 65 B0 83 11 00 C8 83 00 90 00 Portuguese ID card 3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00 Portuguese identity card http://www.cartaodecidadao.pt 3B 7D 96 00 00 80 31 80 65 B0 83 11 00 C8 83 00 90 00 GEMALTO Clasic TPC IM CC 3B 7D 96 00 00 80 31 80 65 B0 83 11 11 AC 83 00 90 00 GEMALTO WM GX4 72 DHS TSA 3B 7D 96 00 00 80 31 80 65 B0 83 11 11 E5 83 00 90 00 eCPF (Cadastro de Pessoas Físicas) from Imprensa Oficial do Brasil 3B 7D 96 00 00 80 31 80 65 B0 83 11 13 AC 83 00 90 00 CAC card (GEMALTO GCX4 72K DI) 3B 7D 96 00 00 80 31 80 65 B0 83 11 17 D6 83 00 90 00 DoD CAC card issued Jan 14, 2010 GEMALTO TOPDLGX4 144 Geneva Conventions Identification Card 3B 7D 96 00 00 80 31 80 65 B0 83 11 40 AC 83 00 90 00 GemXpresso R4 64k 3B 7D 96 00 00 80 31 80 65 B0 83 11 40 C8 83 00 90 00 ING BusinessOnLine Bank eToken / Poland Gemalto Classic TPC - IM 3B 7D 96 00 00 80 31 80 65 B0 83 11 48 C8 83 00 90 00 Gemalto GemSafe V1 3B 7D 96 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00 Gemplus X-Presso Pro 64k 3B 7D 96 00 00 80 31 80 65 B0 83 11 C0 C8 83 00 90 00 TOP IM GX4 from Gemalto (was GemXpresso R4) Java Card 2.2.1 Global Platform 2.1.1 (amendment A) 3B 7D 96 00 00 80 31 80 65 B0 83 11 D0 A9 83 00 90 00 GemSafe V2 (2.04, GemP15-1) Gemplus GemXpresso Pro R3 E32PK Gemalto TOP IM GX4 3B 7D 96 00 00 80 31 80 65 B0 93 11 D0 A9 83 00 90 00 Gemalto Classic TPC (Trusted PKI Card) IM Classic TPC IM (PKCS#15): 12 x RSA key containers (standard profile) 3B 7D 96 00 00 80 31 80 65 B0 A3 11 00 C8 83 00 00 00 Handelsbanken BankID card (Swedish bank authentication) 3B 7D 96 00 00 80 31 80 65 B0 A3 11 00 C8 83 00 90 00 Swedish eID (Telia IP5a) http://www.telia.se/privat/katalog/VisaProdukt.do?productRef=/privat/produkter_tjanster/bredband/tjanster/sakerhetstjanster/teliae-legitimation.1537014385.product 3B 7E 11 00 00 00 6A 11 63 54 08 30 24 01 .. .. 21 90 01 Sagem Windows for smart cards 3B 7E 13 00 00 00 31 C0 71 C6 65 01 B0 01 04 40 83 90 00 BahnCard / Commerzbank MasterCard Credit Card 3B 7E 13 00 00 00 31 C0 71 C6 65 01 B4 01 04 40 83 90 00 Portugal Millennium BCP MAESTRO debit Card 3B 7E 13 00 00 00 6A 11 63 54 05 48 .. .. .. 01 22 90 00 Sagem Windows for smart cards 3B 7E 94 00 00 80 25 A0 00 00 00 28 56 80 10 12 00 01 16 CryptoPlus CS xg 3B 7E 94 00 00 80 25 A0 00 00 00 28 56 80 10 12 81 01 17 Česká Spořitelna SERVIS24 certificate card http://smallhacks.wordpress.com/2012/05/04/exploring-servis24-certificate-card-from-the-ceska-sporitelna-bank/ 3B 7E 94 00 00 80 25 A0 00 00 00 28 56 80 10 24 00 01 11 "OpenCard" - card issued by Prague local authority dual card: chip used for electronic certificates 3B 7E 94 00 00 80 25 D2 03 10 01 00 56 00 00 00 01 01 00 Personal identity card (ID card) of Czech Republic 3B 7E 94 00 00 80 31 80 66 47 50 91 45 03 13 83 0F 90 00 JTOP Trusted Logic 3B 7E 94 00 00 80 31 80 66 47 50 A4 45 05 11 83 0F 90 00 JTOP Trusted Logic 3B 7E 95 00 00 80 31 80 73 34 11 80 82 90 00 00 00 00 00 IAS (Identification, Authentication, and electronic Signature) Premium, profil DGME from Gemalto 3B 7F .. 00 00 00 6A 43 45 52 45 53 02 2C 34 02 ...03 90 00 Ceres ST v2 3B 7F .. 00 00 00 6A 43 45 52 45 53 02 2C 34 03 .. 03 90 00 Ceres ST v3 3B 7F 11 00 00 00 31 C0 53 CA C4 01 64 52 D9 04 00 82 90 00 DoD CAC, Oberthur CosmopolIC 32K V4 3B 7F 11 00 00 00 6A 43 45 52 45 53 02 2C 34 02 00 03 90 00 FNMT-CERES ST (Fábrica Nacional de Moneda y Timbre) 3B 7F 11 00 00 80 31 C0 52 14 1E 64 02 18 19 53 83 83 90 00 Advantis card http://www.sermepa.es/ingles/familiaadvantis.htm 3B 7F 11 00 00 80 31 C0 52 21 57 64 02 18 19 53 83 83 90 00 banking card (www.caixacatalunya.com) student id of Universitat Autonoma de Barcelona 3B 7F 11 00 00 80 31 C0 52 35 31 64 05 66 61 52 83 83 90 00 Oberthur Manufactured VISA Banking card (www.caixaterrassa.cat) 3B 7F 13 00 00 80 31 C0 52 02 71 64 05 62 34 70 83 83 90 00 Mastercard Debit Card issued by Caixa d'Enginyers (http://www.caixa-enginyers.com ) - Servired 3B 7F 13 00 00 80 31 C0 52 05 6E 64 02 53 04 36 83 83 90 00 Mastercard from Banc Sabadell in Spain 3B 7F 13 00 00 80 31 C0 52 07 7D 64 05 66 99 36 83 83 90 00 VISA CEPSA (Porque tu vuelves) from Spain http://www.porquetuvuelves.com/ Visa Credit Card issued by Citibank (http://www.citibank.es) - Servired 3B 7F 13 00 00 80 31 C0 52 08 49 64 05 66 99 36 83 83 90 00 Spanish bank called BBVA 3B 7F 13 00 00 80 31 C0 52 08 4B 64 05 66 94 61 83 83 90 00 Visa Electron Card from a Spanish bank called "Caja de Ingenieros" 3B 7F 13 00 00 80 31 C0 52 0A 45 64 02 B3 02 37 83 83 90 00 Bancaja online (Visa) Card , Entity : Bancaja Bank Spain (Bankia currently) 3B 7F 13 00 00 80 31 C0 52 0A A6 64 02 B3 02 37 83 83 90 00 Credit card Visa Classic by "La Caixa" (Spain) 3B 7F 13 00 00 80 31 C0 52 0A D6 64 05 66 94 61 83 83 90 00 Visa Credit Card issued by Caixa d'Enginyers (http://www.caixa-enginyers.com ) - Servired 3B 7F 13 00 00 80 31 C0 52 0B 71 64 05 66 98 36 83 83 90 00 OuroCard VISA International - Banco do Brasil 3B 7F 13 00 00 80 31 C0 52 0B BB 64 05 66 98 36 83 83 90 00 VISA OUROCARD Banco do Brasil S.A. 3B 7F 13 00 00 80 31 C0 52 0D 1E 64 05 66 94 61 83 83 90 00 Universitat Politecnica de Valencia ID Visa Electron Card, http://www.upv.es 3B 7F 13 00 00 80 31 C0 52 0D EA 64 05 66 94 61 83 83 90 00 Universitat Rovira i Virgili Identification Card This card enables his/her propietary to sign documents and to access to rooms, laboratories and classes. 3B 7F 13 00 00 80 31 C0 52 0E D4 64 05 66 96 61 83 83 90 00 BBVA Blue Card (VISA) www.bluebbva.com 3B 7F 13 00 00 80 31 C0 52 12 93 64 02 B3 02 70 83 83 90 00 Visa Infinite issued by Banco do Brasil (www.bb.com.br) Manufactured by Giesecke & Devrient (G&D www.gi-de.com) 3B 7F 13 00 00 80 31 C0 52 13 0B 64 02 B3 02 37 83 83 90 00 Visa Ourocard Platinum from Banco do Brasil 3B 7F 13 00 00 80 31 C0 52 13 66 64 05 66 98 36 83 83 90 00 VISA Platinum from Banco do Brasil 3B 7F 13 00 00 80 31 C0 52 14 D5 64 05 66 96 61 83 83 90 00 Visa Electron Debit Card issued by Spain Caja Madrid (www.cajamadrid.es) 3B 7F 13 00 00 80 31 C0 52 15 54 64 05 66 98 36 83 83 90 00 VISA Card from Banc Sabadell in Spain 3B 7F 13 00 00 80 31 C0 52 15 CB 64 05 66 96 61 83 83 90 00 Bank, Spanish group BANKIA (www.bankia.es) Visa, Servired Manufactured by Saetic (http://www.saetic.es/) 3B 7F 13 00 00 80 31 C0 52 16 20 64 05 66 96 61 83 83 90 00 Bank, Spanish BBVA (http://www.bbva.com/) Visa, Servired Manufactured by Oberthur (http://www.oberthur.com/) 3B 7F 13 00 00 80 31 C0 52 16 43 64 05 69 93 70 83 83 90 00 Gemalto Debit Card cwbU1071682A1212 issued by BANCO DE CREDITO DEL PERU 3B 7F 13 00 00 80 31 C0 52 17 2D 64 02 B3 02 37 83 83 90 00 Spanish "cajamar" bank - Visa Electron Debit Card. Made by Tag Systems 3B 7F 13 00 00 80 31 C0 52 17 A0 64 02 B3 02 37 83 83 90 00 Credit card Visa Classic by "La Caixa" (Spain) 3B 7F 13 00 00 80 31 C0 52 17 B4 64 05 66 98 36 83 83 90 00 Credit Card Banorte International, México 3B 7F 13 00 00 80 31 C0 52 18 80 64 05 66 98 36 83 83 90 00 Visa Electron Debit Card issued by "la Caixa" 3B 7F 13 00 00 80 31 C0 52 18 97 64 02 B3 02 37 83 83 90 00 tool-valley (vale-pedagio) from Bradesco 3B 7F 13 00 00 80 31 C0 52 34 D6 64 05 66 94 61 83 83 90 00 Visa Credit Card issued by Spain Obsidiana (www.obsidiana.com) 3B 7F 13 00 00 80 31 C0 52 35 0D 64 02 61 18 63 83 83 90 00 Visa Credit Card issued by Spain Caja Madrid (www.cajamadrid.es) 3B 7F 13 00 00 80 31 C0 52 36 42 64 05 66 94 61 83 83 90 00 Visa debit card issued by Spain Caja Madrid bank 3B 7F 13 00 FF 45 43 4F 53 76 31 31 30 28 63 29 50 46 42 4D ECOS-Card [Experimental Card Operating System V.1.1] by Philipp Maier http://www.runningserver.com/?page=runningserver.content.download.ecos 3B 7F 14 00 00 80 41 00 57 4A 2D 49 44 4D 36 34 83 7F 90 00 Electronic CPF in Brazil (Cadastro de Pessoas Físicas) http://pt.wikipedia.org/wiki/E-CPF 3B 7F 18 00 00 00 31 C0 73 9E 01 0B 64 52 D9 03 00 82 90 00 Oberthur Galactic V3 (32k) 3B 7F 18 00 00 00 31 C0 73 9E 01 0B 64 52 D9 04 00 82 90 00 Oberthur CosmopolIC 32K v4 Fast ATR Oberthur Authentic 3B 7F 18 00 00 00 31 C0 73 9E 01 0B 64 52 D9 05 00 82 90 00 Oberthur 32k BIO 3B 7F 18 00 00 80 59 49 44 65 61 59 49 44 65 61 6C 5F 31 2E e-CNPJ issued by Fenacon (eID) http://www.fenacon.org.br 3B 7F 18 00 00 80 59 49 44 65 61 6C 5F 31 2E 34 83 07 90 00 Sagem YpsID s3 3B 7F 38 00 00 00 6A 43 45 52 45 53 02 2C 34 02 02 03 90 00 WG10 3B 7F 38 00 00 00 6A 43 45 52 45 53 02 2C 34 03 10 03 90 00 Used card Aragón government (Aragón - España) 3B 7F 38 00 00 00 6A 43 45 52 45 53 02 2C 34 03 20 03 90 00 TiDcarm (Region de Murcia) (Government of the Autonomous region of Murcia, Spain). http://www.carm.es 3B 7F 38 00 00 00 6A 44 4E 49 65 00 02 4C 34 01 13 0F 65 81 DNI (Documento Nacional de Identidad), Spanish ID Card 3B 7F 38 00 00 00 6A 44 4E 49 65 [1,2]0 02 4C 34 01 13 03 90 00 DNI electronico (Spanish electronic ID card) http://www.dnielectronico.es 3B 7F 96 00 00 00 31 B8 64 40 70 14 10 73 94 01 80 82 90 00 IAS/ECC Gemalto (eID) 3B 7F 96 00 00 00 31 B8 64 40 F3 85 10 73 94 01 80 82 90 00 IAS ECC Type 1 3B 80 80 01 01 ISO 14443 Type B without historical bytes Electronic Passport Spanish passport (2012) 3B 81 1F 00 CC 52 eToken R2 2242 3B 81 80 01 80 80 RFID - ISO 14443 Type A - NXP DESFire or DESFire EV1 "Reiner LoginCard" (or "OWOK", how they name it, https://cardlogin.reiner-sct.com/) - they have been distributed by a german computer magazine ("Computer BILD") Belgium A-kaart (Antwerp citycard) Oyster card - Transport for London http://en.wikipedia.org/wiki/Oyster_card 3B 82 00 55 18 GSM SIM of TIM ITalian mobile company 3B 82 00 55 19 GSM card 'Hi' (KPN brand) 3B 82 00 55 22 GSM-SIM TELE2 Smart (Estonia, prepaid or subscription) # cf SCL3711 Reference Manual: 3B 82 80 01 02 44 .. RFID - NFC Forum tag type 1 (Topaz) 3B 82 80 01 03 02 02 Visa Credit Card, issued by TargoBank 3B 82 81 31 76 43 C0 02 C5 CardOS/M2 V2.01(SLE44CxxS) 3B 82 81 31 76 43 C1 03 C5 i.ti (ticket card for Collogne/Bonn) CardOS M2 Combi V2.02 (SLE44R42S) 3B 83 00 12 10 96 GSM-SIM T-Mobil D1 (900MHz) 3B 84 00 91 18 01 00 Proximus 075 Belgacom Mobile SIM 3B 84 80 01 00 00 90 00 95 German (test) passport issued in january 2010 Luxembourg passport (2012) 3B 84 80 01 01 10 00 06 12 Snapper New Zealand (Type A) 3B 84 80 01 01 10 00 09 1D snapper (www.snapper.co.nz) prepaid 14443A cards 3B 84 80 01 01 11 20 03 36 Snapper Sprat (Transport) https://www.snapper.co.nz/snapper-store/ 3B 84 80 01 01 11 20 03 36 90 00 TMES Total Mobility (Wellington City Council, New Zealand) 3B 84 80 01 04 38 33 B1 BB Dutch passport 3B 84 80 01 47 77 F4 00 C1 True Money Touch Sim (Thailand) 3B 85 00 12 02 01 00 96 GSM-SIM Victorvox D1 (900MHz) 3B 85 00 87 25 01 38 02 GSM-SIM Viag Interkom E2 Loop GSM (1800MHz) 3B 85 00 87 25 01 39 00 GSM-SIM Telfort (Netherlands) 900 MHz 3B 85 40 20 68 01 01 .. .. Schlumberger Cryptoflex 8k 3B 85 40 20 68 01 01 00 00 Schlumberger Cryptoflex 8k (no RSA key generation) 3B 85 40 20 68 01 01 03 05 Schlumberger Cryptoflex Key Generation 3B 85 40 20 68 01 01 05 01 Schlumberger Cryptoflex 8k (with RSA key generation) 3B 85 40 FE 68 01 01 02 04 Axalto CryptoFlex 8K 3B 85 40 FF 63 01 01 03 01 Axalto Cryptoflex 16K 3B 85 80 01 20 63 CB A0 00 2C Visa card from Banque populaire du nord/Casden 3B 85 80 01 20 63 CB A1 00 2D AIB Visa Debit Card, manufcatured by Oberthur (NFC interface) 3B 85 80 01 20 63 CB A1 80 AD bpaid: bpost prepaid Mastercard (contactless) http://www.bpost.be/site/fr/residential/finance/bpaid/index.html 3B 85 80 01 4A 4D 52 54 44 41 JMRTD - Java Machine Readable Travel Document (ePassport emulator - http://jmrtd.org/) 3B 85 80 01 4D 79 45 49 44 78 MyEID 3B 85 80 01 80 73 84 21 40 12 Dutch Biometric Passport 3B 86 40 20 68 01 01 02 04 AC Activcard Gold, SchlumbergerSema Cryptoflex 8k 3B 86 80 01 00 04 9A EE 00 CA BD ASK CPL 528 3B 86 80 01 06 75 77 81 02 80 00 NXP Mifare DESFire EV1 8K / MF3ICD81 "OpenCard" - card issued by Prague local authority dual card: RFID (1k Mirfare) used for parkimeters and as public traffic ticket 3B 86 80 01 39 30 43 30 32 31 7E Chase Freedom VISA card 3B 86 80 01 44 49 20 30 32 4D 65 Lufthansa Miles & More Gold MasterCard PayPass Raiffeizen Bank, Russia, MasterCard paypass card 3B 86 80 01 4A 43 4F 50 33 30 12 Mifare ProX T=CL 3B 86 80 01 4A 43 4F 50 33 31 13 JCOP BIO 31 Contactless Card 3B 86 80 01 4B 4F 4E 41 12 20 3E Citibank Russia, Mastercard paypass 3B 86 80 01 4B 4F 4E 41 14 11 09 Mastercard paypass enabled credit card 3B 86 81 31 70 34 45 50 41 20 45 4B 08 Austrian Quick E-purse "Einreichkarte" (transfer card) (http://www.quick.at/) 3B 87 80 01 77 43 49 50 02 00 01 28 CIPURSE (transport) http://www.osptalliance.org/ 3B 87 80 01 80 31 80 73 96 12 80 40 Public transport: VRS Verkehrsverbund Rhein-Sieg (Germany, North_Rhine-Westphalia) http://www.vrsinfo.de/englisch/the-vrs/vrs-about-us.html 3B 87 80 01 80 31 B8 73 84 01 E0 19 Personalausweis (German Identity Card) (eID) 3B 87 80 01 80 31 C0 73 D6 20 C0 32 RFID GeldKarte (girogo) 3B 87 80 01 80 31 C0 73 D6 21 C0 33 Sparkasse Hannover - German contactless GeldKarte (RFID, NFC, girogo) https://www.geldkarte.de/_www/en/pub/geldkarte/service_navigation/about_us.php 3B 87 80 01 C1 05 2F 2F 01 BC D6 A9 RFID - ISO 14443 Type A - NXP Mifare Plus 3B 87 81 31 40 43 4D 46 43 20 31 33 31 6F Telekom Paycard 3B 88 80 01 00 00 00 00 00 00 00 00 09 Personalausweis (German Identity Card) (eID) 3B 88 80 01 00 00 00 00 00 71 71 00 09 OPUS Public Transport card (Montreal, Quebec, Canada) - Oberthur based http://carteopus.info/ ACTV (Italy) transport card (RFID) 3B 88 80 01 00 00 00 00 00 81 91 10 09 Trenitalia (Italy) fidelity card "CartaFreccia" (RFID) 3B 88 80 01 00 00 00 00 B3 71 71 .0 .A Public transportation card in Riga, Latvia, called "e-Talons" http://etalons.rigassatiksme.lv/en/payments/activating_the_e-ticket/ Belgian MOBIB (transport) 3B 88 80 01 00 00 01 07 01 72 90 00 EC Belgian passport (2008-2009) 3B 88 80 01 00 73 C8 40 00 00 90 00 62 NXP JCOP 31 V2.2 36K - RFID I/F Barclaycard Visa Wave & Pay - RFID I/F 3B 88 80 01 00 73 C8 40 13 00 90 00 71 Nokia 6131 NFC phone http://wiki.forum.nokia.com/index.php/Nokia_6131_NFC_-_FAQs Giesecke & Devrient’s (G&D) Sm@rtCafé Expert 3.1 3B 88 80 01 04 02 00 20 00 71 C1 40 DF Seoul Citypass+ T-Money Card 3B 88 80 01 1C 2D 94 11 F7 71 85 00 BE CEPAS Card (Adult card issued by EZ-Link) (Transport) 3B 88 80 01 1C F0 E1 11 F7 71 85 00 16 CEPAS Card (Concession card issued by Land Transport Authority Singapore) (Transport) 3B 88 80 01 31 CC CC 01 77 81 C1 00 0E Ideal v 1.4 (Transport) 3B 88 80 01 4A 43 4F 50 76 32 34 31 5E RFID - ISO 14443 Type A - NXP JCOP NXP J3A081 JavaCard (contactless interface) 3B 88 80 01 C9 12 07 52 02 00 81 10 14 electronic Tickes from the german Transport Association VGN (Verkehrsgemeinschaft Niederrhein) 3B 88 80 01 E1 F3 5E 11 73 81 A5 00 03 US passport (2007) 3B 88 80 01 E1 F3 5E 11 77 81 A5 00 07 US passport (2012) 3B 88 80 01 E1 F3 5E 11 77 81 C7 20 45 French passport (2007-2008) 3B 88 80 01 E1 F3 5E 11 77 83 95 00 35 French biometric ePassport (issued in 2012) 3B 88 80 01 E1 F3 5E 11 77 83 D5 00 75 German Passport (ePass) (issued June 2009) 3B 88 80 01 E1 F3 5E 13 77 83 00 00 A2 ePerso - German ID card (issued 2013) 3B 88 80 01 E1 F3 5E 13 77 83 D5 00 77 ePerso - German ID card (issued 2011) 3B 88 81 31 20 55 00 57 69 6E 43 61 72 64 29 SmartCard for Windows 1.0 3B 89 00 91 26 91 06 00 01 22 01 00 BT Cellnet SIM 3B 89 40 14 47 47 32 36 4D 35 32 38 30 GSM-SIM e-plus (1800MHz) 3B 89 80 01 00 64 04 15 01 02 00 90 00 EE German Passport (issued Apr 2007) 3B 89 80 01 45 4D 56 20 30 33 20 20 06 73 Lufthansa Miles & More Gold MasterCard PayPass (old one) Found a reference pointing to NXP http://www.usingrfid.com/news/read.asp?lc=l17607hx1500zk 3B 89 80 01 4A 43 4F 50 33 31 56 32 32 4A JCOP 31 v22 72K (with Mifare 1K emulation) - RFID I/F 3B 89 80 01 4A 43 4F 50 34 31 56 32 32 4D New Zealand e-Passport Philips Semiconductor JCOP41V22 3B 89 80 01 4D 54 43 4F 53 73 01 02 01 3F Contactless MTCOS http://www.masktech.de/ 3B 89 80 01 4D 54 43 4F 53 73 02 01 04 3A Biometric passport of Czech republic Biometric passport of Libya 3B 89 80 01 53 50 4B 32 35 44 49 90 00 DA SPK 2.5 D1 3B 89 80 01 80 67 04 12 B0 03 05 01 02 4C Austrian Passport 3B 8A 00 91 01 00 16 00 01 16 01 00 96 GSM-SIM T-Mobil D1 (900MHz) 3B 8A 00 91 01 00 16 00 01 20 01 00 96 GSM-SIM T-D1 prepaid (Xtra) 3B 8A 00 91 01 00 16 00 01 20 02 00 96 GSM-SIM (900MHz) card of the carrier t-mobile for their cellular network (phase 2+ with 3V) 3B 8A 00 91 91 00 16 00 01 03 0[3,4] 00 96 GSM-SIM max.mobil (since 2002: T-Mobile Austria) 3B 8A 00 91 91 00 17 00 01 07 02 00 96 GSM-SIM T-Mobile Austria 3B 8A 00 91 91 00 17 00 01 07 03 00 96 T-Mobile prepaid 2G SIM 3B 8A 00 91 91 00 17 00 01 08 01 00 96 GSM-SIM T-Mobile Austria 3B 8A 00 92 01 26 91 07 00 01 93 03 00 Kazakhstan driver licence 3B 8A 00 92 02 03 91 08 00 01 01 04 00 32K SIM Card from the austrian telecom "ONE" 3B 8A 01 4A 43 4F 50 34 31 56 32 32 31 FF JCOP41 3B 8A 80 01 00 64 05 5C 02 03 31 80 90 00 16 T-System Contactless Netkey Card 3B 8A 80 01 00 64 05 76 02 03 31 80 90 00 3C T-System Contactless TCOS Min 3B 8A 80 01 4A 43 4F 50 33 31 56 32 33 32 7A Snapper New Zealand (JCOP) 3B 8A 80 01 4A 43 4F 50 34 31 56 32 32 31 7F NXP JCOP 41 v2.2.1 72k RFID I/F 3B 8A 80 01 80 31 B8 73 84 01 E0 82 90 00 06 German ID Card - Personalausweis 3B 8A 80 01 80 31 F8 73 F7 41 E0 82 90 00 75 ePerso - German ID card 3B 8A 80 01 80 65 A2 01 01 01 3D 72 D6 43 97 Gemplus GemXpresso Pro R3 E32 PK (combi) 3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1 Rutoken ECP (DS) 3B 8B 01 52 75 74 6F 6B 65 6E 20 45 43 50 A0 Rutoken ECP 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2 Aktiv Rutoken lite token 3B 8B 80 01 00 31 C0 64 B0 FC 10 00 00 90 00 53 Thai Passport 2010, 2011 3B 8B 80 01 00 64 04 11 01 01 31 80 00 90 00 5A German Passport (issued Nov 2006) United Kingdom e-Passport Luxembourg passport (2007) 3B 8B 80 01 0B 78 80 82 02 44 49 20 30 32 4D 1B Mastercard Debit issued by Raiffeisen bank in Czech Republic 3B 8B 80 01 4E 58 50 2D 4E 46 43 20 32 00 00 38 TouchandTravel Touchpoint NFC-Card. Train-Station in Berlin. Use a NFC-compliant phone to check in for a ticket. 3B 8B 81 31 40 34 53 4D 41 52 54 53 43 4F 50 45 31 6D Zeeland kaart (Telecommunication) 3B 8C 80 01 04 43 FD .. .. .. .. .. .. .. .. .. .. RFID - NFC Forum tag type 3 (FeliCa) 3B 8C 80 01 4F 54 49 44 28 94 B3 C0 01 00 90 00 45 Belgian passport (2009-2013) 3B 8C 80 01 4F 54 49 44 28 94 F7 C0 00 00 90 00 00 French passport (2010-2013) 3B 8C 80 01 50 01 BA 13 7E 00 00 00 00 B3 71 71 38 Mobib (Brussels public transportation card) 3B 8C 80 01 50 18 61 88 CE E1 F3 5E 11 77 81 C7 0E French passport (2007-2008) 3B 8C 80 01 50 7F 9C 66 8A 00 00 00 00 00 81 87 54 NFC Mastercard issued by CSOB bank Czech Republic, first 4 digits 5168 3B 8C 80 01 59 75 62 69 6B 65 79 4E 45 4F 72 33 58 Yubikey Neo 3B 8C 80 01 80 5A 41 4B 44 65 44 4C 76 31 2E 30 AD Electronic driving license card http://www.akd.hr/?p=10 3B 8C 80 01 80 91 E1 65 D0 00 43 00 00 82 90 00 19 French passport (issued in late 2008) 3B 8C 80 01 80 91 E1 65 D0 00 46 00 00 82 90 00 1C US passport (2009) 3B 8D 80 01 0D 78 80 84 02 00 73 C8 40 13 00 90 FF F8 Nokia 6212 phone seen as NFC device 3B 8D 80 01 73 66 74 65 2D 63 64 30 38 30 2D 6E 66 3F G&D SmartCafe Expert 3.2 80K Dual 3B 8D 80 01 80 31 80 65 B0 07 02 02 89 83 00 90 00 75 JCOP30 contactless interface 3B 8D 80 01 80 91 E1 65 D0 00 5B 01 03 73 D4 41 40 B6 French passport (2010-2011) 3B 8E 80 01 0E 78 33 C4 02 00 64 04 15 01 02 00 90 FF 95 Spanish Passport 3B 8E 80 01 10 38 77 A7 80 91 E1 65 D0 00 42 00 00 82 72 Czech Republic e-Passport (issued Feb 2009) 3B 8E 80 01 13 78 80 80 02 46 49 4F 4D 4B 5F 30 30 31 4E MasterCard/PayPass Card issued by Czech FIO Banka a.s. (contactless chip) note the ASCII string 'FIOK_001N' embedded in ATR 3B 8E 80 01 52 46 49 44 49 4F 74 20 4A 43 4F 50 38 30 5A RFIDIOt G&D SmartCafe 80K 3B 8E 80 01 80 31 80 66 40 90 89 12 08 02 83 01 90 00 0B ISO 14443B Type T = CL Infineon Card 3B 8E 80 01 80 31 80 66 B0 07 03 00 AC 01 83 00 90 00 52 BCA Flazz Card (Bank) www.bca.com 3B 8E 80 01 80 31 80 66 B0 84 0C 01 6E 01 83 00 90 00 1D Barclaycard Platinum contact/contactless (wave) 3B 8E 80 01 80 31 80 66 B0 84 12 01 6E 01 83 00 90 00 03 Contactless Barclaycard Visa 3B 8E 80 01 80 91 91 31 C0 64 77 E3 03 00 83 82 90 00 1C Belgian Passport (2005) Thai Passport 2005 3B 8E 80 01 80 91 E1 31 C0 64 77 E3 03 00 83 82 90 00 6C Belgian Passport (2006-2007) 3B 8F 01 80 25 A0 00 00 00 56 57 44 4B 34 30 30 06 00 B7 SafeNet IKey4000 3B 8F 80 01 00 31 B8 64 04 B0 EC C1 73 94 01 80 82 90 00 0E Contactless CPS v3 Card (Carte de Professionnel de Santé) 3B 8F 80 01 43 55 32 69 AA 20 20 20 20 20 20 20 20 20 20 E9 UBS Access Card (Mobile Online Banking, NFC, Switzerland) 3B 8F 80 01 45 50 41 00 00 00 00 .. .. .. .. 00 00 .. .. .. Austrian Quick E-purse contactless (http://www.quick.at/) 3B 8F 80 01 52 46 49 44 49 4F 74 20 4A 43 4F 50 20 33 36 76 RFIDIOt JCOP 36K Blank (http://rfidiot.org) 3B 8F 80 01 52 46 49 44 49 4F 74 20 4A 43 4F 50 20 37 32 76 RFIDIOt JCOP 72K Blank (http://rfidiot.org) 3B 8F 80 01 52 46 49 44 49 4F 74 20 4A 43 4F 50 37 32 72 24 RFIDIOt JCOP 72K RANDOM_UID Blank (http://rfidiot.org) # Cf PCSC standard, Part 3, Chapter 3.1.3.2.3.2, and Part 3 Supplemental # Document # http://www.pcscworkgroup.com/specifications/specdownload.php 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 01 00 00 00 00 .. Mifare Standard 1K (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 02 00 00 00 00 .. Mifare Standard 4K (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 03 00 00 00 00 .. Mifare Ultralight (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 04 00 00 00 00 .. SLE55R_XXXX (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 06 00 00 00 00 .. SR176 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 07 00 00 00 00 .. SRI X4K (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 08 00 00 00 00 .. AT88RF020 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 09 00 00 00 00 .. AT88SC0204CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 0A 00 00 00 00 .. AT88SC0808CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 0B 00 00 00 00 .. AT88SC1616CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 0C 00 00 00 00 .. AT88SC3216CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 0D 00 00 00 00 .. AT88SC6416CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 0E 00 00 00 00 .. SRF55V10P (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 0F 00 00 00 00 .. SRF55V02P (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 10 00 00 00 00 .. SRF55V10S (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 11 00 00 00 00 .. SRF55V02S (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 12 00 00 00 00 .. TAG_IT (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 13 00 00 00 00 .. LRI512 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 14 00 00 00 00 .. ICODESLI (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 15 00 00 00 00 .. TEMPSENS (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 16 00 00 00 00 .. I.CODE1 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 17 00 00 00 00 .. PicoPass 2K (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 18 00 00 00 00 .. PicoPass 2KS (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 19 00 00 00 00 .. PicoPass 16K (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 1A 00 00 00 00 .. PicoPass 16Ks (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 1B 00 00 00 00 .. PicoPass 16K(8x2) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 1C 00 00 00 00 .. PicoPass 16KS(8x2) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 1D 00 00 00 00 .. PicoPass 32KS(16+16) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 1E 00 00 00 00 .. PicoPass 32KS(16+8x2) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 1F 00 00 00 00 .. PicoPass 32KS(8x2+16) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 20 00 00 00 00 .. PicoPass 32KS(8x2+8x2) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 21 00 00 00 00 .. LRI64 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 22 00 00 00 00 .. I.CODE UID (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 23 00 00 00 00 .. I.CODE EPC (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 24 00 00 00 00 .. LRI12 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 25 00 00 00 00 .. LRI128 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 26 00 00 00 00 .. Mifare Mini (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 27 00 00 00 00 .. my-d move (SLE 66R01P) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 28 00 00 00 00 .. my-d NFC (SLE 66RxxP) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 29 00 00 00 00 .. my-d proximity 2 (SLE 66RxxS) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 2A 00 00 00 00 .. my-d proximity enhanced (SLE 55RxxE) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 2B 00 00 00 00 .. my-d light (SRF 55V01P) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 2C 00 00 00 00 .. PJM Stack Tag (SRF 66V10ST) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 2D 00 00 00 00 .. PJM Item Tag (SRF 66V10IT) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 2E 00 00 00 00 .. PJM Light (SRF 66V01ST) (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 2F 00 00 00 00 .. Jewel Tag (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 30 00 00 00 00 .. Topaz NFC Tag (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 31 00 00 00 00 .. AT88SC0104CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 32 00 00 00 00 .. AT88SC0404CRF (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 33 00 00 00 00 .. AT88RF01C (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 34 00 00 00 00 .. AT88RF04C (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 .. 00 35 00 00 00 00 .. i-Code SL2 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 00 00 00 00 00 00 00 68 NFC/RFID "Android Beam" mode on a Sony Xperia Ion 3B 8F 80 01 80 4F 0C A0 00 00 03 06 01 .. .. 00 00 00 00 .. RFID - ISO 14443 Type A Part 1 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 02 .. .. 00 00 00 00 .. RFID - ISO 14443 Type A Part 2 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 .. .. 00 00 00 00 .. RFID - ISO 14443 Type A Part 3 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 00 00 00 00 00 6B buss/train pass for use with Skånetrafiken (www.skanetrafiken.se) busses and trains. public libary of Düsseldorf, http://www.duesseldorf.de/stadtbuechereien/ specialized Mifare Ultralight card 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A Philips MIFARE Standard (1 Kbytes EEPROM) http://www.nxp.com/#/pip/pip=[pfp=41863]|pp=[t=pfp,i=41863] RFID - ISO 14443 Type A - Transport for London Oyster ACOS5/1k Mirfare RFID - ISO 14443 Type A - NXP Mifare card with 1k EEPROM vivotech ViVOcard Contactless Test Card Bangkok BTS Sky SmartPass 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 02 00 00 00 00 69 RFID - ISO 14443 Type A - NXP Mifare card with 4k EEPROM Bangkok Airport Link Dutch ov-chipkaart (public transportation) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68 RFID - ISO 14443 Type A - NXP Mifare Ultralight or UltralightC 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 FF 00 00 00 00 94 ACTV (Italy) prepaid transport ticket "NFC Tag" — Sony's "Smart Tags" 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 F0 04 00 00 00 00 9F NFC FORUM TYPE 1 TAG www.inovision-group.com/topaz ISO/IEC 14443A - 96 Bytes read/write NFC/RFID IC mandated by NFC Forum as the Type 1 NFC Forum Tag Format. 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 F0 11 00 00 00 00 8A Bangkok Metro (MRT) HTC One X Android phone (European edition "endaevoru") 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 FF 40 00 00 00 00 D4 Nokia N9 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 FF 88 00 00 00 00 1C Infineon Mifare SLE 66R35 http://www.infineon.com/cms/en/product/channel.html?channel=ff80808112ab681d0112ab69686e01ee "Old" "unlimited trips" card for Moscow Metro (underground) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 05 .. .. 00 00 00 00 .. RFID - ISO 14443 Type B Part 1 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 06 .. .. 00 00 00 00 .. RFID - ISO 14443 Type B Part 2 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 07 .. .. 00 00 00 00 .. RFID - ISO 14443 Type B Part 3 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 09 .. .. 00 00 00 00 .. RFID - ISO 15693 Part 1 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0A .. .. 00 00 00 00 .. RFID - ISO 15693 Part 2 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0A 00 1C 00 00 00 00 7E RFID - HID iCLASS 16K CL 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B .. .. 00 00 00 00 .. RFID - ISO 15693 Part 3 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 00 00 00 00 00 63 RFID - ISO 15693 - EM Microelectronic-Marin SA 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 0E 00 00 00 00 6D RFID - ISO 15693 - Infineon 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 12 00 00 00 00 71 RFID - ISO 15693 - Texas Instrument 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 13 00 00 00 00 70 Discovery kit for M24LR04E (http://www.st.com/m24lr04e-discovery) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 14 00 00 00 00 77 Philips ICode RFID - ISO 15693 - Philips Semiconductors 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0C .. .. 00 00 00 00 .. RFID - ISO 15693 Part 4 (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0D .. .. 00 00 00 00 .. Contact (7816-10) I2C (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0E .. .. 00 00 00 00 .. Contact (7816-10) Extended I2C (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0F .. .. 00 00 00 00 .. Contact (7816-10) 2WBP (as per PCSC std part3) 3B 8F 80 01 80 4F 0C A0 00 00 03 06 10 .. .. 00 00 00 00 .. Contact (7816-10) 3WBP (as per PCSC std part3) 3B 8F 80 01 80 5A 08 03 03 00 00 00 01 52 43 21 82 90 00 FF Carte Mode Pass (Used in Clermont-Ferrand, France, to store personal information and T2C subscription. T2C is the public transport company of Clermont-Ferrand: http://www.t2c.fr/) 3B 8F 80 01 80 5A 08 03 03 00 00 00 01 D3 37 72 82 90 00 59 French Transport Card Pass'bus (used in Metz, France) http://www.tcrm-metz.fr/ 3B 8F 80 01 80 91 E1 31 80 65 B0 83 11 00 AC 83 00 90 00 B7 GemCombiXpresso R4 72K (contactless interface) 3B 8F 80 01 80 91 E1 31 80 65 B0 83 11 11 AC 83 00 90 00 A6 GEMALTO WM GX4 72 DHS TSA (contactless interface) 3B 90 16 01 87 BIFIT USB-Token iBank2key 3B 90 95 80 1F C3 59 Dai Nippon Printing Co., DNP Standard-J T3.1 3B 91 94 80 1F 03 23 BA China black(COS) SIM, does not support clock stop 3B 94 18 81 B1 80 7D 1F 03 19 C8 00 50 DC GoldKey Security PIV Token 3B 95 .. 40 FF 62 01 01 .. .. Schlumberger Cryptoflex e-gate 3B 95 15 40 .. 68 01 02 .. .. Schlumberger CryptoFlex 8k v2 3B 95 15 40 FF 63 01 01 00 00 Cryptoflex 16K 3B 95 18 40 FF 62 01 02 01 04 Schlumberger Cryptoflex 32K e-gate 3B 95 18 40 FF 62 04 01 01 05 Schlumberger CryptoFlex 32Ko V1 3B 95 18 40 FF 64 02 01 01 02 Schlumberger CryptoFlex 32Ko 3B 95 94 40 FF 63 01 01 02 01 Schlumberger Cryptoflex 16Ko 3B 95 95 40 FF AE 01 01 02 03 Axalto Cyberflex Access 64K v2a SM 2.3 3B 95 95 40 FF AE 01 03 00 00 Axalto - Cyberflex 64K Gemalto TOP IM FIPS CY2 (product code HWP115291A) 3B 95 95 40 FF D0 00 1A 01 01 Cyberflex Access 64k (v3) 3B 95 95 40 FF D0 00 31 01 01 Cyberflex Access E-gate V3 3B 95 95 40 FF D0 00 54 01 3. Portuguese identity card, http://www.cartaodecidadao.pt 3B 96 18 80 01 80 51 00 61 10 30 9F 00 61 10 30 9E Atmel/Athena T0 PC/SC Compliance Test Card No. 1 (warm reset) 3B 97 11 C0 FF B1 FE 35 1F 83 A5 05 01 01 02 A3 01 5F digital chronotachygraphe card: conducteur/driver, entreprise, contrôleur/controler et atelier/workshop, 2006-2010 manufactured by Imprimerie Nationale, distributed by Chronoservices 3B 97 13 C0 FF B1 FE 35 1F 83 A5 05 01 01 02 A3 01 5D digital chronotachygraphe card: conducteur/driver, entreprise, contrôleur/controler et atelier/workshop, 2005-2006 manufactured by Imprimerie Nationale, distributed by Chronoservices 3B 97 95 C0 2A 31 FE 35 D0 00 48 01 05 A3 11 3C digital chronotachygraphe card: conducteur/driver, entreprise, contrôleur/controler et atelier/workshop, 2010-2015 manufactured by Imprimerie Nationale, distributed by Chronoservices 3B 98 13 40 0A A5 03 01 01 01 AD 13 11 Belgium Electronic ID card 3B 98 94 00 93 91 14 01 0A 06 06 06 Orange Spain 64k Sim card 3B 98 94 40 0A A5 03 01 01 01 AD 13 10 Belgium Electronic ID card 3B 98 94 80 1F C2 32 2E 31 30 31 14 01 40 28 CMCC operator UICC (Telecommunication) 3B 98 95 00 93 94 04 04 03 03 03 03 T-Mobile MVNO SIM card 3B 98 95 40 FF D0 00 48 01 01 AD 13 21 Belgian Eid virtual test card https://env.dev.eid.belgium.be/prepcard.php 3B 98 96 00 80 31 C0 72 F7 41 81 07 Activ Rutoken Magistra 3B 98 96 00 93 94 03 07 03 04 04 04 SIM card GSM SIM of VIP CRoatian mobile company 3B 98 96 00 93 94 03 08 05 03 03 03 SIMple Mobile SIM Card http://www.simplemobile.com 3B 99 18 00 11 88 22 33 44 55 66 77 60 sysmocom sysmoSIM-GR1 3B 99 94 00 91 08 91 06 00 01 06 06 00 GSM-SIM Orange-UK (1800) 3B 99 94 00 91 99 93 12 00 01 16 02 00 ORGA test systems - GSM Phase 2+ Test SIM 3B 9A 94 00 91 01 00 17 00 01 23 10 00 96 GSM-SIM Victorvox D1 (900MHz) 3B 9A 94 00 91 01 00 17 00 01 23 11 00 96 GSM-SIM Card T-D1 (900MHz) 3B 9A 94 00 91 01 00 17 00 01 26 06 00 96 T D1 GSM card 3B 9A 94 00 92 02 75 93 11 00 01 02 02 .. SuperSIM 3B 9A 96 00 92 01 36 93 17 00 02 04 03 00 GSM-SIM EMT "Simpel" (prepaid, Estonia) https://www.emt.ee/web/simpel 3B 9A 96 00 92 01 48 93 17 00 02 12 04 00 SIM Card Carrefour Mobile (Belgium) 3B 9A 96 00 92 01 66 93 17 00 02 12 04 00 GSM SIM Bite.lv prepaid "Toxic"; 2008 3B 9A 96 00 92 03 49 93 16 00 01 21 01 00 GSM-SIM card of the Austrian provider Yesss! (http://www.yesss.at) 3B 9A 96 C0 10 31 FE 5D 00 64 05 7B 01 02 31 80 90 00 76 German driver card for the digital tachographs (mandatory for trucks above 3.5 tons) runnig STARCOS 3.4 and prouced by Giesecke & Devrient GmbH http://www.gi-de.com/deu/de/products_and_solutions/products/tachograph_cards/Fahrtenschreiberkarten-5890.jsp 3B 9B 95 80 1F 47 80 31 A0 73 BE 21 00 53 27 11 02 4C SIM TELE2 Sweden 3B 9B 95 80 1F 47 80 31 A0 73 BE 21 00 53 34 99 05 D0 GSM-SIM EMT "Diil", prepaid (Estonia) 3B 9C 13 11 81 64 72 65 61 6D 63 72 79 70 74 00 04 08 XPlusTV & INXCT Access Card-9 (FIRECrypt) 3B 9C 13 11 81 64 72 65 61 6D 63 72 79 70 74 90 05 99 FireCrypt, access card 9 (Pay TV) 3B 9D 11 40 23 00 68 10 11 4D 69 6F 43 4F 53 00 90 00 MioCOS 1.0 3B 9D 94 40 23 00 68 20 01 4D 69 6F 43 4F 53 00 90 00 Miotec (http://www.miotec.fi) smartcard running Miocos 2.0 on an Atmel AT90SC646 3B 9D 95 80 1F C3 80 31 E0 52 4B 54 62 11 03 73 FE 21 1B 8F KT WiBro UICC (2.3 GHz mobile WiMAX in South Korea) 3B 9D 95 80 1F C3 80 31 E0 73 FE 21 1B 65 D0 00 57 02 62 30 Gemalto NFC enabled (acquired through the Simagine contest) 3B 9D 95 80 1F C3 80 63 AF 03 A0 73 1A 21 1B 83 0F 90 00 F4 Greece TIM GSM SIM 3B 9D 95 80 1F C3 80 73 1A 21 1B 63 AF 07 A7 83 0F 90 00 F7 GemXplore 3G 3B 9D 95 80 1F C7 80 73 1A 21 1B 63 AF 06 A6 83 0F 90 00 F3 Orange UK GSM/UMTS SIM 3B 9D 95 80 1F C7 80 73 1A 21 1B 63 AF 09 A9 83 0F 90 00 F3 Estonian GSM operator TELE2 (WPKI eID support) 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF MCI (Mobile Communication Company of Iran) SIM 3B 9E 94 80 1F C3 80 31 E0 73 FE 21 1B 66 D0 00 17 B4 00 00 A5 Vodafone Ireland SIM card 3B 9E 94 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 6C 02 5F 00 33 Vivo Brasil SIM Card 3B 9E 94 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 6C 06 34 00 5C SIM card SFR 250 128ko 3B 9E 94 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 7A 00 00 00 78 GaduAIR (Poland) - Subscriber Identity Module (SIM) 3B 9E 95 80 1F C3 80 31 A0 73 BE 21 13 67 29 02 01 04 04 CD 39 H3G (?) UMTS USIM card J+ SWIM WIB UMTS SIM Test card http://www.exceldata.es/microprocess/j%2Bswinwibusim.html 3B 9E 95 80 1F C3 80 31 E0 73 FE 21 1B 66 D0 00 29 F4 01 00 DB Vodafone (UK) Pay As You Talk SIM 3B 9E 95 80 1F C3 80 31 E0 73 FE 21 1B 66 D0 00 49 00 00 00 4E UK O2 Unlimited Prepay GSM/UMTS USIM 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 07 00 1E 00 1A H3G (Ireland, UK) UMTS USIM card 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 26 1C 01 00 38 GSM-SIM Telefonica Movistar, contract (Spain) http://www.movistar.es/ 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 28 C4 00 00 EF H3G (Italy) UMTS USIM card 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 49 00 00 00 4A Rogers 3G SIM card 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 49 00 C0 00 4A Rogers SIM card 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 7A 00 00 00 79 Simyo SIM Card, Spanish Mobile Company Hi SIM 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 81 C8 0D 00 47 ESEYE ES4520 Anynet MFF Embedded SIM 3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 01 6C C1 0D 00 A2 Three Hong Kong Prepaid SIM Card (Telecommunication) http://www.three.com.hk/website/appmanager/three/home?_nfpb=true&_pageLabel=P200470391219567710594&pageid=631001&lang=eng 3B 9E 95 C0 0A 1F C6 80 31 E0 73 FE 21 1B 66 D0 01 83 0D 58 81 1E Mobile Paypass G199 NFC 3B 9E 96 80 1F 83 80 31 E0 73 FE 21 12 66 55 57 4E 41 32 33 91 TDC mobile UICC (Telecommunication) 3B 9E 96 80 1F C3 80 31 E0 73 FE 21 1B 66 D0 01 6C 04 0D 00 60 toggle GSM SIM - http://www.togglemobile.co.uk 3B 9E 96 80 1F C3 80 31 E0 73 FE 21 1B 66 D0 01 7B 98 0D 00 EB Lycamobile Pay As You Go SIM 3B 9E 96 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 28 24 01 00 0D United Mobile SIM 3B 9E 96 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 6C 0C 72 00 12 Orange Austria GSM/3G SIM: "Mobiles Internet" 3B 9E 96 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 01 77 49 0D 00 32 UK simcard - O2 unlimited prepay 3G (4DM) USIM (EXT) 3B 9E 96 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 01 77 97 0D 00 SIM Free Mobile 3B 9E 96 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 01 77 97 0D 00 EC SIM Free Mobile 3B 9F .. 80 1F C3 00 68 1. 44 05 01 46 49 53 45 31 C8 .. 90 00 .. Setec SetCOS 4.4.1 3B 9F 11 40 60 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 30 "La7 Cartapiù" for DVB-T decoders, IRDETO access 3B 9F 11 40 60 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 37 dahlia Tv Italian Provider 3B 9F 11 40 60 49 52 44 45 54 4F 20 41 43 53 20 56 36 2E 30 skylink, Pay TV, http://www.skylink.cz T-Mobile Czech Republic, Irdeto Satellite TV encryption card 3B 9F 11 80 1F C3 80 31 E0 73 FE 21 1B 64 07 53 63 01 82 90 00 74 Cingular SIM 3B 9F 11 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 06 A6 83 0F 90 00 0D i-SmartSim GSM phone SIM-lock bypass card http://i-smartsim.com/component/portfolio/7-unlock-sim/7-universal-unlock-sim-f300gold 3B 9F 11 C0 0A 1F C7 80 31 E0 73 FE 21 1B 63 F1 00 AD 83 0F 90 00 59 GemXplore Generation 3G 3B 9F 13 81 31 FE 45 80 67 55 45 4B 41 45 12 61 31 80 73 B3 A1 80 1C UKiS 1.2.1 on YITAL chip 3B 9F 13 81 31 FE 45 80 67 55 45 4B 41 45 12 64 31 80 73 B3 A1 80 19 UKiS 1.2.1 on HNEC chip 3B 9F 13 81 31 FE 45 80 67 55 45 4B 41 45 12 65 31 80 73 B3 A1 80 18 UKiS 1.2.1 on SMIC chip 3B 9F 13 81 B1 80 37 1F 03 80 31 F8 69 4D 54 43 4F 53 70 02 01 02 81 07 86 Swiss Health Insurance Card 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 03 83 95 00 80 55 Nagravision Betacrypt 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 03 84 55 6D FF 80 Nagravision Betacrypt 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 03 84 55 FF 80 6D TV smart card Sky Germany BEtacrypt 1702 http://providers.wikidot.com/sky-deutschland 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 34 2E 31 9D Foxtel paytv decoder in Australia acs 4.1 Irdeto2 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 33 9E red dragoncard chid 0604- Austar provider (pay tv) 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 34 99 Nova Greece package on satellite 13E Hotbird 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 35 2E 37 9A irdeto2 www.digiturk.com.tr (Pay TV) 3B 9F 94 40 1E 00 67 .. 43 46 49 53 45 10 52 66 FF 81 .. .. SLE66CX160S running SETCOS 4.3.1 Revision A 3B 9F 94 40 1E 00 67 11 43 46 49 53 45 10 52 66 FF 81 90 00 Setec / FINEID SETEC Instant EID 3B 9F 94 40 1E 00 67 16 43 46 49 53 45 10 52 66 FF 81 90 00 RSA SecurID 3100 or Utimaco Safeware Smartcard SetCOS 4.3.1 Revision Unknown 3B 9F 94 80 1F C3 00 68 10 44 05 01 46 49 53 45 31 C8 07 90 00 18 SetCOS 4.3.0 32K RSA Instant EID IP2 SETEC SetCard 32K PKI Evaluated SetCOS 4.4.1a2 3B 9F 94 80 1F C7 80 31 E0 73 FE 21 13 57 49 05 0C 86 98 60 18 CC China Unicom USIM 128K 6131H 3B 9F 94 80 1F C7 80 31 E0 73 FE 21 1B 64 06 81 01 00 82 90 00 45 Mobicarte Orange 3B 9F 94 80 1F C7 80 31 E0 73 FE 21 1B 64 07 56 42 00 82 90 00 D0 SIM mobi orange 3B 9F 95 80 1F 43 80 31 E0 73 36 21 13 57 4A 33 0E 09 31 41 00 A9 GSM-SIM Elisa (Estonia, WPKI eID support) 3B 9F 95 80 1F 43 80 31 E0 73 36 21 13 57 4A 33 0E 0C 31 41 00 AC Vodafone SIM (mobile phone) 3B 9F 95 80 1F 43 80 31 E0 73 36 21 13 57 4A 33 0E 10 31 41 00 B0 SIM card O2 (UK, Pay-As-You-Go) Tesco Mobile (UK) SIM 3B 9F 95 80 1F 43 80 31 E0 73 F6 21 13 57 4A 43 05 21 31 41 00 3A GSM SIM AT&T US 3B 9F 95 80 1F 47 80 31 E0 73 36 21 13 57 4A 33 0E 10 31 41 00 B4 Sonera Easy (Telecommunication) http://www.sonera.fi/ 3B 9F 95 80 1F 47 80 31 E0 73 36 21 13 57 4A 33 0E 11 31 41 00 B5 Telus 3G SIM Card 3B 9F 95 80 1F C3 80 31 A0 73 BE 21 13 67 47 01 03 01 02 00 00 99 T-Mobile (UK) SIM Fresh Mobile (UK) SIM 3B 9F 95 80 1F C3 80 31 A0 73 BE 21 13 67 47 01 05 01 04 00 00 99 T-Mobile Nederlands http://www.tmobile.nl 3B 9F 95 80 1F C3 80 31 A0 73 BE 21 13 67 D0 02 03 09 01 00 00 06 GSM, T-Mobile (Germany) 3B 9F 95 80 1F C3 80 31 A0 73 BE 21 13 67 D0 02 03 31 05 00 00 3A T-MOBILE CZ GSM card 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 57 3F 86 60 46 CD 00 01 B4 China Unicom USIM 128K 1295E 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 63 E2 09 A9 83 0F 90 00 8D GSM-SIM EMT (Estonia, WPKI eID support) 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 63 E2 0A D2 83 0F 90 00 F5 GSM, Vodafone (Germany) 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 64 06 90 61 00 82 90 00 31 3G SIM card from AT&T USA 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 64 06 90 62 00 82 90 00 32 AT&T GoPhone SIM Card 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 64 9B 4D 01 11 82 90 00 00 Singular (now AT&T) 3G GSM SIM Card 3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B B3 E2 01 74 83 0F 90 00 88 Gemplus GemXplore 3G USIM 3B 9F 95 80 1F C7 80 31 A0 73 BE 21 13 67 D0 02 04 09 01 00 00 05 T-Mobile SIM card issued in Germany 2012 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 57 12 29 11 02 01 00 00 C2 sysmocom sysmoUSIM-GR1 http://sysmocom.de/ 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 57 4A 33 05 2E 32 34 00 SIM card 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 57 4A 33 0E 07 32 30 00 99 Bell Canada 3G SIM 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 57 4A 33 0E 19 32 33 00 84 WIND Mobile SIM Card 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 57 4A 33 0E 1A 32 36 00 82 TELUS 3G SIM Card 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 63 55 10 AA 83 07 90 00 24 2degrees NFC (Telecommunication) http://www.2degreesmobile.co.nz/home 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 13 67 94 03 11 00 00 02 03 5C AT&T (US) GSM SIM 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 03 94 83 0F 90 00 BE Telenet N.V. Walk & Talk SIM Card Belgium 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 04 A5 83 0F 90 00 88 Cingular "64Ksmartchip" GSM SIM Telia GSM/3G (Swedish operator) 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 06 A6 83 0F 90 00 89 TracFone (US) Net10 GSM SIM card Simyo (Germany) GSM SIM card H3G (Italy) UMTS USIM card 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 07 A7 83 0F 90 00 89 SIM NRJ Mobile H3G (UK) UMTS USIM card Orange UK GSM/UMTS SIM 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 08 A8 83 0F 90 00 89 H3G (Sweden) UMTS USIM card 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 09 A9 83 0F 90 00 89 GSM SIM Vodafone NL postpaid 3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 65 9F 01 09 02 04 81 05 C4 2degrees mobile SIM card (from http://www.2degreesmobile.co.nz/) 3B 9F 95 81 31 FE 9F 00 65 46 53 05 .. 06 71 DF 00 00 00 .. .. .. .. Feitian PKI (http://www.ftsafe.com/products/PKI-Card.html) FTCOS/PK-01C 3B 9F 95 81 31 FE 9F 00 65 46 53 05 30 06 71 DF 00 00 00 80 6A 82 5E Feitian PKI (http://www.ftsafe.com/products/PKI-Card.html) 3B 9F 95 81 31 FE 9F 00 66 46 53 05 01 00 11 71 DF 00 00 .. .. .. .. Feitian ePass2003 token 3B 9F 95 C0 0A 1F C7 80 31 E0 73 FE 21 1B 63 F1 00 AD 83 0F 90 00 DD Telenor SIM card (Norway) 3B 9F 96 40 0A 80 31 E0 6B 04 20 05 02 58 55 55 55 55 55 55 BuyPass identification card. It can also possibly be used to hold e-currency. 3B 9F 96 40 0A 80 31 E0 6B 04 21 05 02 61 55 55 55 55 55 55 altinn - Buypass Electronic ID card for login to the altinn.no service 3B 9F 96 80 1F 43 80 31 E0 73 36 21 13 57 4A 33 0E 09 31 41 00 AA Elisa UICC (Telecommunication) 3B 9F 96 80 1F 43 80 31 E0 73 36 21 13 57 4A 33 0E 0C 31 41 00 AF GSM, Vodafone (Germany) 3B 9F 96 80 1F 47 80 31 E0 73 36 21 13 57 4A 33 0E 0C 31 41 00 AB NATEL SIM-Card swisscom 3B 9F 96 80 1F C3 00 68 10 44 05 01 46 49 53 45 31 C8 07 90 00 1A SETEC SetCard 32K PKI Evaluated SetCOS 4.4.1 3B 9F 96 80 1F C3 80 31 E0 73 FE 21 1B B3 E2 02 7E 83 0F 90 00 82 Vodafone SIM Card (D2, 1800Mhz, Germany, Twincard, possibly others too?), manufactured by Gemplus (See stamp on the chip) MobileOne (Singaporean 3G/GSM operator) SIM card "II(3G-64) M1 3G " 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 .. 63 .. .. .. 83 0. 90 00 .. TIM (Italy) 128KB GSM SIM H3G (Italy) UMTS USIM Vodafone (UK) SIM 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 13 67 91 18 02 04 06 06 06 51 USIM (3G PF) Orange 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 13 67 94 03 07 03 04 04 04 4F GSM-SIM EMT (3G modem 2011, Estonia) 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 13 67 94 04 01 07 02 02 02 4C Orange Mobicarte (France) 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 13 67 94 04 04 03 05 05 05 4A Claro operator SIM 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 63 40 41 91 83 07 90 00 50 giffgaff UK 3G SIM netzclub sponsored mobile 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 03 94 83 0F 90 00 BD USIM (3G DF) Orange 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 64 07 14 81 00 82 90 00 53 SFR operator 3G 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 64 07 54 61 00 82 90 00 F3 Aero2 (Poland) - A 900Mhz HSPA+ and 2500Mhz LTE wholesale telecom operator USIM providing toll-free access to the Internet ("Bezpłatny Dostęp do Internetu" service) http://aero2.pl/bdi.html 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 64 07 59 51 00 82 90 00 CE 00 00 00 00 00 00 00 00 00 00 Oberthur USIM card (Telecommunication) 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 64 40 41 12 00 82 90 00 D2 Free Mobile SIM Card 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 01 6B 82 0E 18 01 FE Telekom Deutschland GmbH - Xtra Data Karte (3G SIM) 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B B3 E2 03 94 83 0F 90 00 6D GemXplore 3G v2.2 3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B B3 E2 04 A5 83 0F 90 00 5B Tre Italia Gemplus (Telecommunication) 3B 9F 96 80 3F C3 A0 80 31 E0 73 F6 21 13 57 4A 4D 0E 1D 31 30 00 71 Telenor SIM card (Norway) 3B 9F 96 81 31 FE 45 80 67 55 45 4B 41 45 12 12 31 80 73 B3 A1 80 EA AKiS v1.2 on nxp chip 3B 9F 96 81 31 FE 45 80 67 55 45 4B 41 45 12 52 31 80 73 B3 A1 80 AA AKiS v1.2.1 on infineon chip 3B 9F 96 81 31 FE 45 80 67 55 45 4B 41 45 12 53 31 80 73 B3 A1 80 AB AKiS v1.2.1 on nxp chip 3B 9F 96 81 31 FE 45 80 67 55 45 4B 41 45 12 92 31 80 73 B3 A1 80 6A AKiS v1.2.2 on infineon chip 3B 9F 96 81 31 FE 45 80 67 55 45 4B 41 45 12 93 31 80 73 B3 A1 80 6B AKiS v1.3 on infineon chip 3B 9F 96 81 B1 FE 45 1F 07 00 64 05 1E B2 00 31 B0 73 96 21 DB 05 90 00 5C SignTrust (www.signtrust.de) Infinion SLE66CX680PE with Starcos 3.2 http://www.deutschepost.de/dpag?xmlFile=link1015459_49595 3B 9F 96 C0 0A 1F C3 80 31 E0 73 FE 21 1B 63 F1 00 AD 83 0F 90 00 DA SIM SFR Pro (French Mobile Operator) 3B 9F 96 C0 0A 1F C7 80 31 E0 73 FE 21 1B 63 F1 00 AD 83 0F 90 00 DE H3G (Italy) UMTS USIM card 3B 9F 96 C0 0A 1F C7 80 31 E0 73 FE 21 1B 65 D0 01 8E 0E 32 81 00 7A Rogers 3G SIM card 3B 9F 96 C0 0A 3F C7 A0 80 31 E0 73 FE 21 1B 65 D0 01 74 0E 8D 81 0F B0 USIM 3B 9F 97 C0 0A 1F C7 80 31 E0 73 FE 21 1B 65 D0 01 10 09 22 81 00 F2 "ultra fast card, max speed supported for telecom"? (transport) 3B 9F 97 C0 FF 1F C7 80 31 E0 73 FE 21 1B 63 F1 00 AD 83 0F 90 00 2A Gemalto Speed Enhancement 97 (Telecommunication) 3B 9F D6 80 B1 A0 59 1F C7 53 4C 45 38 38 5F 50 53 4C 5F 56 30 2E 35 30 01 Infineon SLE88CFX4000P 3B A7 00 40 .. 80 65 A2 08 .. .. .. Gemplus GemSAFE Smart Card (8K) 3B A7 00 40 14 80 65 A2 14 01 01 37 Gemplus GPK4000sdo 3B A7 00 40 18 80 65 A2 08 01 01 52 Gemplus GPK8000 GemSAFE Smart Card (8K) 3B A7 00 40 18 80 65 A2 09 01 01 52 Gemplus GPK16000 3B A7 00 40 18 80 65 A2 09 01 02 52 Gemplus GPK16000 3B A7 00 40 18 80 65 A2 09 01 03 52 Gemplus GemSAFE std (GPK16000?) 3B A8 00 81 71 46 5D 00 54 43 4F 53 31 2E 32 00 65 Telesec TCOS 1.2 3B A8 00 81 71 46 5D 00 54 43 4F 53 31 2E 32 4B 2E CeloCom Card with TCOS 1.2 3B AA 00 40 14 47 47 32 47 54 35 53 34 38 30 GSM-SIM Libertel (900MHz) 3B AA 00 40 80 53 4F 80 53 45 03 04 11 AA A3 "open platform" ATMEGA "new Generation" http://www.masterixweb-italy.com/new/images/articoli/atmega.jpg 3B AB 00 81 31 40 45 80 31 C0 65 08 06 80 00 00 00 00 84 Reloadable Visa Cash card (Schlumberger), Bank of America 3B AC 00 40 2A 00 12 25 00 64 80 00 03 10 00 90 00 Sesam Vitale card CPS (Carte Profesionnel de Santé) 3B AC 00 40 2A 00 12 25 00 64 80 82 02 12 00 90 00 Sesam Vitale card CPS (Carte Profesionnel de Santé) 3B AD 00 40 FF 80 31 80 65 B0 05 01 01 5E 83 00 90 00 Dallas Semiconductor iButton JIB Gemplus GemXpresso 2.11PK 3B B0 11 00 81 31 90 73 F2 SamOS 2.7 3B B0 36 00 81 31 FE 5D 95 Betacrypt 2 (Comvenient GmbH) Conditional Access Smart Card (Pay TV) www.comvenient.com 3B B2 11 00 10 80 00 01 Atmel memory card AT88SC0104C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf Plug'n'Print 3B B2 11 00 10 80 00 02 Atmel memory card AT88SC0204C (Atmel memory card) http://www.atmel.com/dyn/resources/prod_documents/doc5211.pdf 3B B2 11 00 10 80 00 04 Atmel memory card AT88SC0404C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf 3B B2 11 00 10 80 00 08 Atmel memory card AT88SC0808C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf Smart VR Card - GD Burti 3B B2 11 00 10 80 00 16 Atmel memory card AT88SC1616C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf 3B B3 11 00 00 00 00 32 Atmel memory card AT88SC3216C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf 3B B3 11 00 00 00 00 64 Atmel memory card AT88SC6416C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf 3B B3 11 00 00 00 01 28 Atmel memory card AT88SC12816C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf 3B B3 11 00 00 00 02 56 Atmel memory card AT88SC25616C http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf 3B B7 11 00 81 31 90 43 A5 .. .. .. .. .. .. .. Siemens CardOS/M V1.4 (SLE44C80S) 3B B7 11 00 81 31 90 53 B5 .. .. .. .. .. .. .. CardOS EM/V1.4 (SLE44CR80S) 3B B7 18 00 81 31 FE 65 53 50 4B 32 34 90 00 5A Giesecke & Devrient Starcos 2.4 3B B7 18 00 C0 3E 31 FE 65 53 50 4B 32 34 90 00 25 G&D STARCOS SPK 2.4 3B B7 94 00 81 31 FE 55 53 50 4B 32 32 90 00 E0 Dresdner Bank (a German Bank) Key-Card for InternetBanking 3B B7 94 00 81 31 FE 65 53 50 4B 32 32 90 00 D0 Giesecke & Devrient STARCOS SPK2.2 3B B7 94 00 81 31 FE 65 53 50 4B 32 33 90 00 D1 Giesecke & Devrient Starcos 2.3 Deutsche Bank WebSign (RSA-Card) G&D StarSign Token 3B B8 13 00 81 31 20 5D 00 57 69 6E 43 61 72 64 02 SmartCard for Windows 1.1 3B B9 18 00 81 31 FE 9E 80 73 FF 61 40 83 00 00 00 DF Serbian Identity Card This is the new Serbian biometric identity card (every adult cityzen must have). The chip contains owners picture, name, date and place of birth, current address, unique ID number and fingerprint. 3B B9 94 00 40 14 47 47 33 4E 48 38 36 34 30 GSM-SIM card of the Austrian mobile phone provider One, http://www.one.at Proximus SIM - Belgium (SetCOS?) 3B BA 11 00 81 31 FE 4D 55 45 4B 41 45 20 56 31 2E 30 AE AKİS v1.0 on infineon chip 3B BA 13 00 81 31 86 5D 00 64 05 0A 02 01 31 80 90 00 8B Telesec TCOS 2 (SLE44) TCOS 2.0 (on CR80S) Cryptokarte with RSA-Controller, T=1 Protocol 3B BA 14 00 81 31 86 5D 00 64 05 14 02 02 31 80 90 00 91 TCOS 2.0 (on CX160S) Telesec TCOS 2 (SLE66) 3B BA 94 00 40 14 GG3RS732S0 ? 3B BA 94 00 40 14 47 47 33 52 53 37 31 36 53 20 GSM SIM Elisa Estonia 3B BA 94 00 40 14 47 47 33 52 53 37 31 36 53 30 GSM-SIM Viag Interkom E2 Loop (1800MHz) GSM-SIM card of the Austrian A1, http://www.a1.net/privat/home GSM SIM Radiolinja Estonia; 2005 3B BA 95 00 81 B1 86 5D 1F 43 00 64 04 5C 02 03 31 80 90 00 84 T-Mobile Corporate ID Card 3B BA 96 00 81 31 86 5D 00 64 05 60 02 03 31 80 90 00 66 Telesec TCOS 2 (SLE66P) TCOS 2.0 (on CX320P) TeleSec Netkey Card 3B BA 96 00 81 31 86 5D 00 64 05 60 02 03 31 80 90 00 66 70 01 04 05 30 C9 TeleSec Netkey E4 Card 3B BA 96 00 81 31 86 5D 00 64 05 7B 02 03 31 80 90 00 7D TeleSec NetKey Card Deutsche Post card (tcos) 3B BB 18 00 C0 10 31 FE 45 80 67 04 12 B0 03 03 00 00 81 01 38 Giesecke & Devrient Star Sign Card, STARCOS 3.0 DI, 72 KB, RSA2048 bit Giesecke & Devrient Smartc@fe Expert 32K v2.0 3B BB 18 00 C0 10 31 FE 45 80 67 04 12 B0 03 03 00 00 81 05 3C Philips Smart MX Szczecin University of Technology in Poland student identity card (Elektroniczna Legitymacja Studencka = student identity card) CSOB bank, Czech Republic CATCert (Agència Catalana de Certificació) catalan government workers identity card 3B BB 18 00 C0 3E 31 FE 65 47 26 44 20 54 53 4D 20 31 2E 30 B7 Italian Tachograph Driver Card 3B BC 18 00 81 31 20 75 5A 43 33 2E 31 32 20 52 45 56 20 41 46 ZeitControl BasicCard Enhanced 3.7, http://www.basiccard.com/ 3B BC 18 00 81 31 20 75 5A 43 33 2E 31 34 20 52 45 56 20 44 45 ZeitControl BasicCard Enhanced 3.14 Rev D, http://www.basiccard.com/ 3B BC 94 00 40 14 47 47 33 48 33 35 58 53 32 30 30 30 GSM-SIM Era-PL T-Mobile GSM SIM Card 3B BC 94 00 40 14 47 47 33 48 33 35 58 56 32 30 30 30 GSM SIM CARD 32K, Vodafone 3B BC 94 00 40 14 47 47 33 49 35 39 42 43 32 30 30 30 GSM SIM Vodafona NL prepaid 3B BC 94 00 40 14 47 47 33 49 35 43 41 43 31 30 30 30 Siemens SIM card 3B BC 94 00 40 14 47 47 33 49 37 31 39 43 32 30 30 20 Telenor SIM card (Norway) 3B BC 94 00 40 14 47 47 33 49 42 31 42 43 31 30 30 20 Telenor SIM (Telecommunication) 3B BC 94 00 40 14 47 47 33 53 30 35 31 53 31 30 31 30 GSM SIM (Tele2, Estonia) GSM SIM Elisa Estonia; 2007 GSM SIM from 'fonic' Germany 3B BD 18 00 81 31 FE 45 80 51 02 67 04 14 B1 01 01 02 00 81 05 3D Austrian "e-Card" (=Health Card) special Version of Starcos 3.1 3B BD 18 00 81 31 FE 45 80 51 02 67 05 18 B1 02 02 02 01 81 05 31 Austrian health insurance card "e-card" 3B BD 18 00 81 31 FE 45 80 51 03 67 04 14 B1 01 01 02 00 81 05 3C Austrian Health insurance card "eCard" (HealthCare) http://www.chipkarte.at 3B BE 11 00 00 41 01 10 20 38 00 00 00 00 00 00 00 00 00 ACOS2 3B BE 11 00 00 41 01 38 00 00 00 00 00 00 00 00 01 90 00 ACS (Advanced Card System) ACOS-1 3B BE 11 00 00 41 01 38 00 00 00 00 00 00 00 00 02 90 00 ACS (Advanced Card System) ACOS-1 8K 3B BE 11 00 00 41 01 38 00 00 04 00 62 75 62 7A 01 90 00 Advanced Card Systems ACOS3 (24k) V1.7 http://www.acs.com.hk/index.php?pid=product&prod_sections=0&id=ACOS3 3B BE 11 00 00 41 01 38 00 00 05 00 00 00 00 00 02 90 00 ACS (Advanced Card System) ACOS2 3B BE 11 00 00 41 01 38 01 00 03 00 00 00 00 00 02 90 00 ACOS2 test card from ACS reading off a ACR38U 3B BE 11 00 00 41 01 38 4D 80 0A 80 50 52 4F 56 00 90 00 ACS (Advanced Card System) ACOS-3 3B BE 18 00 00 41 05 .. 00 00 00 00 00 00 00 00 00 90 00 Advanced Card Systems (ACS) ACOS5 Cryptographic Smart Card 3B BE 18 00 00 41 05 10 00 00 00 00 00 00 00 00 00 90 00 ACS ACOS5 "ACOS5-32-G" http://www.acs.com.hk/acos5.asp dual card 3B BE 94 00 40 14 47 47 33 53 33 45 48 41 54 4C 39 31 30 00 Latvian GSM operator TELE2 3B BE 95 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00 touchatag SAM card Spanish University of Murcia smart ID card - Old version with CajaMurcia Banking card integrated (Maestro card) (M.Mar OS) - Also used by many others spanish universities 3B BE 96 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00 SAM inside the Tikitag reader from Alcatel-Lucent http://hackerati.com/post/57314994/rfid-on-the-cheap-hacking-tikitag 3B BE 96 00 00 41 05 20 00 00 00 00 00 00 00 00 00 90 00 CryptoMate64 USB Cryptographic token http://www.acs.com.hk/index.php?pid=product&prod_sections=0&id=CRYPTOMATE64 3B BE 96 00 80 1F C7 80 31 E0 73 FE 21 13 62 00 .. 83 81 90 00 .. Vodafone (Italy) 128 kB GSM SIM card TIM (Italy) 128 kB GSM SIM card 3B BF .. 00 81 31 FE 5D 00 64 04 0F 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Philips P5CD036 3B BF .. 00 81 31 FE 5D 00 64 04 11 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Philips P5CT072 3B BF .. 00 81 31 FE 5D 00 64 04 15 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Philips P5CD072 3B BF .. 00 81 31 FE 5D 00 64 04 28 03 02 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 release 2 on Philips P5CD080 3B BF .. 00 81 31 FE 5D 00 64 05 6D 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Infineon SLE 66CX642P 3B BF .. 00 81 31 FE 5D 00 64 05 89 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Infineon SLE 66CLX641P 3B BF .. 00 81 31 FE 5D 00 64 05 8A 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Infineon SLE 66CLX640P 3B BF .. 00 81 31 FE 5D 00 64 05 91 03 .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 on Infineon SLE 66CX680PE 3B BF 11 00 81 31 .. 45 45 50 41 00 00 00 00 .. .. .. .. 00 00 .. .. .. Austrian Quick E-purse http://www.quick.at/ 3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 00 00 00 00 00 00 00 00 F1 a.sign premium signature card 3B BF 11 00 81 31 FE 45 4D 43 41 00 00 01 00 01 69 71 85 00 00 00 00 77 Austrian "easybank" branded Mastercard, issued 2007 3B BF 11 00 81 31 FE 45 4D 43 41 00 00 01 00 02 08 20 51 00 00 00 00 90 austrian combined card of a mastercard and ÖBB Vorteilscard (Austrian Federal Railways) http://www.oebb.at/pv/de/Servicebox/VORTEILScard/Bezahlen_mit_der_VORTEILScard/VORTEILScard_MasterCard.jsp 3B BF 11 00 81 31 FE 45 4D 43 41 00 00 01 00 02 55 91 33 00 00 00 00 1E Mastercard (Paylife Austria) 3B BF 11 00 C0 10 31 FE 44 53 4D 40 52 54 20 43 41 46 45 20 31 2E 31 43 C1 Giesecke&Devrient SmartCafe 1.1 3B BF 18 00 80 31 70 35 53 54 41 52 43 4F 53 20 53 32 31 20 43 90 00 9B Giesecke & Devrient STARCOS S2.1 3B BF 18 00 81 31 70 55 53 54 41 52 43 4F 53 20 53 32 31 20 43 90 00 FA Giesecke & Devrient STARCOS S2.1 3B BF 18 00 C0 20 31 70 52 53 54 41 52 43 4F 53 20 53 32 31 20 43 90 00 9C Giesecke & Devrient SPK 2.1 C 3B BF 94 00 81 31 FE 65 45 4C 55 20 41 75 73 74 72 69 61 20 31 2E 32 38 A-Trust: trust-sign (Old Version, ca. 2002) for Digital Signature etc. A-Trust: a-sign-premium (ca. 2004) "Bürgerkarte" ("Citizen-Card") for Identifikation, Digital Signature etc. ("should be" Starcos 2.3) 3B BF 94 00 81 31 FE 65 45 4C 55 20 41 75 73 74 72 69 61 20 31 2E 32 38 3B BF 96 00 81 31 FE 5D 00 64 .. .. .. .. 31 C0 73 F7 01 D0 00 90 00 .. TCOS 3.0 / NetKey 3.0 3B D0 A8 FF 81 F1 FB 24 00 1F C3 F4 Philips DESFire SAM 3B D2 18 00 81 31 FE 58 C9 01 14 Atos CardOS5 (PKI) http://atos.net/NR/rdonlyres/17C7BDD0-225B-4A58-B9A4-438EA3F3238A/0/74743_20120830_160149_cardos_v5_0__datenblatt_en.pdf 3B D2 18 02 C1 0A 31 FE 58 C8 0D 51 Siemens Card CardOS M4.4 3B D5 18 00 81 31 3A 7D 80 73 C8 21 10 30 Aladdin eToken NG-Flash with 256MB of flash memory Aladdin eToken PRO (72KB) http://www.aladdin.com/etoken/devices/default.aspx 3B D5 18 00 81 31 FE 7D 80 73 C8 21 10 F4 Bank of Lithuania Identification card Aladdin PRO/Java card http://www.aladdin-rd.ru/catalog/etoken/java/ 3B D5 18 FF 80 91 FE 1F C3 80 73 C8 21 13 08 Athena IDProtect (JavaCard 2.2.2) http://www.athena-scs.com/product.asp?pid=32 3B D5 18 FF 81 91 FE 1F C3 80 73 C8 21 13 09 Athena IDProtect Key (v2) http://www.athena-scs.com/product.asp?pid=33 3B D5 95 04 00 AE 01 02 01 01 Axalto Cyberflex Access 64K v2b SM 1.1 3B D5 95 FF 80 91 FE 1F C3 80 73 C8 21 13 85 Athena IDProtect - Cryptographic Java Card http://www.athena-scs.com/product.asp?pid=32 3B D6 18 00 80 B1 80 6D 1F 03 80 51 00 61 10 30 9E Atmel/Athena T0 PC/SC Compliance Test Card No. 1 3B D6 18 00 81 B1 80 7D 1F 03 80 51 00 61 10 30 8F ASECard Crypto, http://www.athena-scs.com/product.asp?pid=8 3B D8 18 FF 81 B1 FE 45 1F 03 80 64 04 1A B4 03 81 05 61 D-Trust multicard advanced 3.1 German public health insurance card ("Gesundheitskarte"), issuer SBK "Siemens Betriebskrankenkasse" 3B D8 96 FF 81 31 FE 45 80 64 04 1B B4 2A 81 05 5B Swiss LAMal health insurance card 3B D9 18 00 C0 09 10 FE 54 59 46 4F 4E 45 00 00 00 Tyfone's SideTap Card (NFC payments) 3B D9 94 00 00 4D 4D 41 52 33 31 34 90 00 Vodafone Spain 64kb SIM card. GSM/3G networks 3B D9 96 FF 81 31 FE 45 43 52 45 53 43 45 4E 44 4F FF HID Global Crescendo JCOP 21 v2.4.1 R2 64K (PKI) 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 00 0C GnuPG card V2 3B DA 94 00 00 4D 4D 41 52 4A 2B 33 39 90 00 SIM card from Vodafone Spain 3B DB 11 FF 50 00 FF 00 00 00 00 00 00 00 07 92 16 03 NEC V-WAY64 v2.1 3B DB 18 00 80 1F 03 00 31 C0 64 77 E3 03 00 82 90 00 4F Oberthur ID-One Cosmo 64K V5.2 3B DB 18 00 80 B1 FE 45 1F 83 00 31 C0 64 C7 FC 10 00 01 90 00 FA Oberthur Cosmo V7 64K Dual/128K 3B DB 18 FF C0 80 B1 FE 75 1F 03 5A 43 37 2E 35 20 52 45 56 20 41 6F ZeitControl BasicCard ZC7.5 user-programmable dual interface smart card http://www.smartcardfocus.com/shop/ilp/id~380/BasicCard_ZC7_5_Dual_Interface/p/index.shtml 3B DB 96 00 80 1F 03 00 31 C0 64 77 E3 03 00 82 90 00 C1 CAC (Common Access Card) 3B DB 96 00 80 1F 03 00 31 C0 64 B0 F3 10 00 07 90 00 80 DoD CAC, Oberthur ID One 128 v5.5 Dual 3B DB 96 00 80 1F 03 00 31 C0 64 B0 F3 10 00 0F 90 00 88 US Department of Veterans Affairs PIV 3B DB 96 00 80 B1 FE 45 1F 83 00 31 C0 64 1A 18 01 00 0F 90 00 52 Serbian Car registration ID card http://blog.goranrakic.com/archives/2011/07/citanje_saobracajne_dozvole_sa_cipom.html 3B DB 96 00 80 B1 FE 45 1F 83 00 31 C0 64 B0 FC 10 00 07 90 00 05 Oberthur Cosmo V7 debug card (SDK) 3B DB 96 00 80 B1 FE 45 1F 83 00 31 C0 64 BE 1B 01 00 01 90 00 FB Bank card 3B DB 96 00 80 B1 FE 45 1F 83 00 31 C0 64 C3 08 01 00 0F 90 00 9B SIM Aruba (Italian provider) 3B DB 96 00 80 B1 FE 45 1F 83 00 31 C0 64 C7 FC 10 00 0F 90 00 7A Guatemalan ID Card http://www.renap.gob.gt/ 3B DB 96 00 81 B1 FE 45 1F 03 80 F9 A0 00 00 03 08 00 00 10 00 18 Oberthur CS PIV End Point v1.08 FIPS201 Certified 3B DB 96 00 81 B1 FE 45 1F 03 80 F9 A0 00 00 03 48 00 00 00 01 49 Fly Clear card 3B DB 96 00 81 B1 FE 45 1F 83 80 F9 A0 00 00 03 08 00 00 10 00 98 Oberthur Cosmo v7 128K with PIV applet http://www.smartcardfocus.com/shop/ilp/id~410/p/index.shtml 3B DB 96 FF C0 10 31 FE 45 80 67 15 01 B4 03 00 09 00 81 05 21 Digital Tachograph Card for Professional Driver 3B DC 18 FF 81 91 FE 1F C3 80 73 C8 21 13 66 01 06 01 30 04 01 55 Athena IDProtect Key Laser 3B DC 18 FF 81 91 FE 1F C3 80 73 C8 21 13 66 01 06 11 59 00 01 28 JaCarta (PKI) http://www.aladdin-rd.ru 3B DC 18 FF 81 91 FE 1F C3 80 73 C8 21 13 66 01 0B 03 52 00 05 38 Athena IDProtect Smart Card Logon Card 3B DD 18 00 81 31 FE 45 80 F9 A0 00 00 00 77 01 00 70 0A 90 00 8B Oberthur National ID Card of Peru issued by RENIEC 3B DD 18 00 81 31 FE 45 80 F9 A0 00 00 00 77 01 08 00 07 90 00 FE Oberthur Cosmo v7 IAS ECC 3B DD 18 00 81 31 FE 45 90 4C 41 54 56 49 41 2D 65 49 44 90 00 8C Identity card (eID) Republic of Latvia http://www.pmlp.gov.lv/lv/pakalpojumi/passes/eid.html 3B DD 18 FF C0 80 B1 FE 45 1F C3 00 68 D2 76 00 00 28 04 04 11 00 90 00 C9 Russian Federation driver card for the digital tachograph 3B DD 96 FF 81 B1 FE 45 1F 03 00 64 04 05 08 03 73 96 21 D0 00 90 00 C9 German public health insurance card ("Gesundheitskarte"), issuer Techniker Krankenkasse 3B DD 96 FF 81 B1 FE 45 1F 03 00 64 05 73 10 A6 73 D6 21 C0 00 90 00 53 New european health insurance card of the German health insurance 3B DD 96 FF 81 B1 FE 45 1F 03 80 31 B0 52 02 03 64 04 1B B4 22 81 05 18 Austrian "e-card" G3 (State Health Insurance Card) (running StarCOS 3.4 by Giesecke & Devrient) 3B DD 97 FF 81 B1 FE 45 1F 03 00 64 04 05 08 03 73 96 21 D0 00 90 00 C8 German "eGK" (State Health Insurance Card) 3B DD 97 FF 81 B1 FE 45 1F 03 00 64 04 05 08 03 73 96 96 21 D0 00 90 C8 German public health insurance card ("Gesundheitskarte"), issuer Knappschaft 3B DE 11 00 00 49 43 4F 53 35 33 00 00 00 00 00 00 00 08 MyKID (eID) 3B DE 18 FF 81 F1 FB 34 00 1F 07 44 45 53 46 69 72 65 53 41 4D 56 31 2E 30 D2 Mifare Desfire SAM Module 3B DE 18 FF 81 F1 FE 43 00 3F 07 83 44 45 53 46 69 72 65 38 20 53 41 4D 2D 58 17 NXP SAM 3B DE 18 FF C0 80 B1 FE 45 1F 03 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 2B Estonian Identity Card (EstEID v1.0 2006 cold) 3B DF 18 00 81 31 FE 58 00 31 B9 64 05 0E 01 00 73 B4 01 D3 00 00 00 22 Identity Card in Slovakia with security chip and e-signature 3B DF 18 00 81 31 FE 67 00 5C 49 43 4D D4 91 47 D2 76 00 00 38 33 00 58 Infineon SICRYPT Card Module D4 PC/SC Compliance Test Card 3B DF 18 00 81 31 FE 7D 00 6B 15 0C 01 80 01 11 01 43 4E 53 10 31 80 E9 Provider: Actalis S.p.A. code: AT00006181 website: http://www.actalis.it 3B DF 18 00 81 31 FE 7D 00 6B 15 0C 01 81 01 11 01 43 4E 53 10 31 80 E8 Italian healthcare card (TS) National Service Card (CNS) Carta Regionale dei Servizi - Regione Lombardia Tuscany TS-CNS http://www.regione.toscana.it/cartasanitaria 3B DF 18 FF 81 31 FE 45 80 59 01 80 48 49 44 43 37 30 30 73 00 01 1B 33 Crescendo C700 + MiFare 4K http://www.smartcardfocus.com/shop/ilp/id~265/p/index.shtml 3B DF 18 FF 81 91 FE 1F C3 00 31 B8 64 0C 01 EC C1 73 94 01 80 82 90 00 B3 ebee card (https://www.ebeeoffice.ca/ebee-home/public) 3B DF 18 FF 81 F1 FE 43 00 1F 03 4D 49 46 41 52 45 20 50 6C 75 73 20 53 41 4D 98 Mifare SAM AV2 3B DF 18 FF 81 F1 FE 43 00 3F 03 83 4D 49 46 41 52 45 20 50 6C 75 73 20 53 41 4D 3B NXP SAM AV2 module 3B DF 94 FF C0 80 B1 FE 45 1F 03 00 6A D2 76 00 00 28 04 15 FA 40 04 00 90 00 3B DVLA Company Card (Transport) 3B DF 96 00 80 31 FE 45 00 31 B8 64 04 1F EC C1 73 94 01 80 82 90 00 EC Ministry of Interior - France "Agent Card" (Carte Agent du Ministère de l'Intérieur Français) 3B DF 96 00 80 31 FE 45 00 31 B8 64 04 29 EC C1 73 94 01 80 82 90 00 DA Finnish identity card given by the City of Helsinki to all members of city council, board and commitees 3B DF 96 00 81 B1 FE 45 1F 83 80 73 CC 91 CB F9 A0 00 00 03 08 00 00 10 00 79 Test PIV Cards available for sale from NIST http://csrc.nist.gov/groups/SNS/piv/testcards.html 3B DF 96 FF 81 31 FE 45 5A 01 80 48 49 44 43 31 31 58 58 73 00 01 1B 09 HID Crescendo iCLASS Px G8H 3B DF 96 FF 81 31 FE 45 80 59 01 80 50 49 56 43 4C 41 53 73 00 01 1B DE HID Global pivCLASS v1.0 (PKI) http://www.hidglobal.com/products/cards-and-credentials/pivclass/pivclass-smart-card 3B E0 00 00 81 31 20 40 30 SmarTEC 3B E0 00 FF 81 31 FE 45 14 "JUKICARD", digitally sign tax documents in Japan 3B E2 00 00 40 20 49 .. Schlumberger Cryptoflex 4k 3B E2 00 00 40 20 49 05 Schlumberger Cryptoflex DES 3B E2 00 00 40 20 49 06 Schlumberger Cryptoflex 3B E2 00 00 40 20 49 07 Schlumberger Cryptoflex Key Generation 3B E2 00 FF C1 10 31 FE 55 C8 02 9C Aladdin eToken PRO (USB token) Siemens CardOS M4.0 3B E3 00 FF 91 81 71 26 44 00 01 13 20 2D Metrebus Card (used in Rome to store personal information and Atac subscription. Atac is the public transport company of the city of Rome.) http://www.atac.roma.it/smart/smart.asp?A=2&S=22&PR=4&LNG=2 3B E5 00 00 81 31 FE 45 D0 00 37 00 80 89 ATM card for Standard Chartered, Taiwan 3B E6 00 00 81 21 45 32 4B 01 01 01 01 7A Axalto Cyberflex Palmera V5 3B E6 00 FF 81 31 FE 45 44 49 20 30 32 4D 70 Alior Sync (Poland) - MasterCard Debit Card with PayPass (Bank) MasterCard Contactless Debit Card issued by Raiffeisen Bank in Czech Republic 3B E6 00 FF 81 31 FE 45 44 49 20 30 32 56 6B VISA credit card (DKB) 3B E6 00 FF 81 31 FE 45 4A 43 4F 50 30 33 07 IBM JCOP 30/16 3B E6 00 FF 81 31 FE 45 4A 43 4F 50 31 30 05 IBM JCOP 10/16 Rental card for Blockbuster, Taiwan 3B E6 00 FF 81 31 FE 45 4A 43 4F 50 32 30 06 IBM JCOP 20/16 IBM JCOP20 with MIFARE or Datakey Smart Card Model 330J (http://www.datakey.com/products/smart_cards/products_sc_330j.shtml) 3B E6 00 FF 81 31 FE 45 4A 43 4F 50 32 31 07 IBM JCOP ID21 3B E6 00 FF 81 31 FE 45 4A 43 4F 50 33 30 07 Mifare ProX T=1 3B E6 00 FF 81 31 FE 45 4A 43 4F 50 33 31 06 IBM JCOP 30/31bio (contact interface) 3B E7 00 00 91 81 31 FE 41 01 10 30 01 00 90 80 49 "FirmenTicket" from the "Rheinbahn" for the "VRR" its a ticket corporates can buy for their employees. so its called "FirmenTicket". "Rheinbahn" is the local service operator for the mass traffic in and around duesseldorf/germany. "VRR" is traffic network spanning over at least a big part of north rhine westphalia (Verkehrsverbund Rhein-Ruhr) (http://www.vrr.de/de/tickets_und_tarife/vielfahrer/firmenticket/index.php) 3B E7 00 FF 81 31 FE 45 44 30 38 2E 30 20 36 57 EMV (MasterCard) card, issued by Raiffeisen Bank in Russia "Deutsche Kreditbank AG" Visa Card produced by AustriaCard GNC All cards (MasterCard, Maestro, VISA Electron) issued by Raiffeisen Bank in Romania EMV (MasterCard) Card, issued by Raiffeisen Bank in Czech Republic 3B E8 00 00 81 31 20 45 00 73 C8 40 00 00 90 00 56 Visa credit card for Standard Chartered, Taiwan 3B E8 00 00 81 31 FE 45 00 73 C8 40 00 00 90 00 88 VISA Card (Skandinaviska Enskilda Banken) with Swedish BankID VISA card (Chinatrust Bank (Taiwan), dual-interface card with a Taipei Metro e-purse function) 3B E8 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 .. .. NXP JCOP v2.4.x (see hist bytes for more info) 3B E8 00 FF 81 31 FE 45 43 4C 61 69 72 65 20 36 1A DKB Visa card with PayWave 3B E9 00 00 81 21 45 45 4D 56 5F 41 54 52 20 06 6C VISA card, issued by HVB Bank Czech Republic (http://www.hvb.cz) or austrian BankAustria 3B E9 00 00 81 21 45 4D 43 5F 5F 49 4E 46 20 06 65 MasterCard Credit card issued by SpareBank1 (http://www.sparebank1.no) in Norway 3B E9 00 00 81 21 45 56 49 53 5F 49 4E 46 20 06 78 VISA card, issued by the Austrian "Raiffeisen" bank (http://www.raiffeisen.at/ Visa Card - Maximum - Oyak Bank / Turkey VISA, issued by Austrian bank "Erste Bank" VISA card, issued by the Latvian bank "Latvijas Krajbanka" 3B E9 00 00 81 31 FE 45 43 44 32 69 09 00 00 00 00 B7 Swiss UBS MasterCard Creditcard 3B E9 00 00 81 31 FE 45 45 4D 56 20 30 33 20 20 06 99 Visa credit card MasterCard credit card 3B E9 00 00 81 31 FE 45 45 4D 56 30 32 5F 34 53 06 80 Maestro Card issued by "First Investment Bank" in Bulgaria, http://fibank.bg/ Visa Electron card: TATRA BANKA, a.s. 3B E9 00 00 81 31 FE 45 4A 43 4F 50 31 30 56 32 32 A3 ORGA Open Platform DES 16k V2.0 / JCOP10 3B E9 00 00 81 31 FE 45 4A 43 4F 50 33 31 56 32 32 A0 JCOP 31 / 72k 3B E9 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 A7 IBM JCOP v2.2 41 3B E9 00 00 81 31 FE 45 4D 43 41 20 30 33 20 20 06 88 PayLife Gold MasterCard -- an unbranded version of the master card 3B E9 00 FF C1 10 31 FE 55 00 64 05 00 C8 02 31 80 00 47 Identity card of Italian Republic 3B E9 00 FF C1 10 31 FE 55 C8 01 20 50 4E 34 30 31 32 AD Siemens CardOS/M 3.0 (SLE66CX160S) 3B EA 00 00 81 31 FE 45 43 6F 6D 62 4F 53 20 49 49 00 FE UBS VISA Gold Card MasterCard from lhv.ee Nordea Bank Finland PLC Estonian Branch (ABnote) 3B EA 00 00 81 31 FE 45 4A 43 4F 50 33 31 56 32 33 32 90 NAB VISA Debit card 3B EA 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 95 HID Crescendo C700 https://www.hidglobal.com/products/cards-and-credentials/crescendo/c700 3B EA 00 FF 81 31 20 75 00 64 05 14 01 02 31 00 90 00 27 GCOS-MDK 3B EA 00 FF 81 31 FE 45 54 55 42 2D 43 4B 01 03 01 00 7B Technische Universität Berlin - Campus Karte Maybe Sm@rtCafé Expert 2.0 (Giesecke & Devrient) or GemXpresso 211 PK (Gemplus) Includes a Mifare-Chip (1 KB - Memory-Chip) 3B EB 00 00 81 31 42 45 4E 4C 43 68 53 43 4B 30 34 30 31 2B Dutch University accesscard & Electronic purse & telphone card 3B EB 00 00 81 31 42 45 4E 4C 43 68 69 70 70 65 72 30 31 0A Dutch Post (Chipper) 3B EC 00 00 40 32 42 4C 55 45 20 44 52 41 47 4F 4E 20 43 00 01 Pay TV 3B EC 00 FF 81 31 FE 45 A0 00 00 00 56 33 33 30 4A 33 06 00 A1 Datakey model 330J card, www.datakey.com http://www.hmk.de/downloads/datakey/Model_330J_Smart_Card.pdf Model 330J JavaCard v2.1.1 Global Platform v2.0.1 specifications. JCCOS operating system applet (Java-based Cryptographic Card Operating System) 3B ED 00 00 81 31 20 43 80 31 80 65 B0 83 02 04 7E 83 00 90 00 32 Latvian Digital Signature Card (warm) (http://www.eme.lv/) 3B EE 00 00 81 31 FE 45 00 31 80 71 86 65 01 67 02 A0 0A 83 90 00 1B IBM JCOP "Java Card 2.1.1" et "Open Plaform 2.0.1" 3B EE 00 00 81 31 FE 45 80 31 80 66 40 90 93 06 0F 17 83 0F 90 00 F3 IC card for the National Health Insurance, Taiwan 3B EF .. 00 40 14 80 25 43 45 52 45 53 57 .. .. 01 01 03 90 00 Electronic Identification Card from the FNMT, the Spanish Official Certification Authority (Fábrica Nacional de Moneda y Timbre) FNMT-Ceres Siemens Infineon SLE 19 3B EF .. 00 40 14 80 25 43 45 52 45 53 57 .. .. 01 02 03 90 00 FNMT-Ceres Siemens Infineon SLE 20 Fábrica Nacional de Moneda y Timbre 3B EF 00 00 81 31 20 49 00 5C 50 43 54 10 27 F8 D2 76 00 00 38 33 00 4D Infineon Technologies PC/SC Compliance Test Card V1.0 3B EF 00 00 81 31 40 69 00 5C 50 43 53 35 C5 3A D2 76 00 00 38 33 00 0F Siemens Nixdorf Sicrypt 3B EF 00 00 81 31 FC 45 80 31 80 65 11 01 13 00 01 53 41 43 45 81 04 21 Slovenska sporitelna (SLSP) Bank card, Maestro Card with chip 3B EF 00 00 81 31 FC 45 80 31 80 65 11 11 23 10 02 53 41 43 45 81 04 12 VISA card issued by UBS, Switzerland 3B EF 00 00 81 31 FE 45 43 4D 42 5F 43 6F 6D 44 44 41 30 30 35 35 00 F7 Master Card (emitted by bank Nordea - Lithuania) 3B EF 00 00 81 31 FE 45 43 4D 42 5F 43 6F 6D 53 44 41 30 30 34 30 00 E4 VISA (Danske Bank Eesti / www.sampopank.ee) 3B EF 00 00 81 31 FE 45 43 4D 42 5F 43 6F 6D 53 44 41 30 30 35 31 00 E4 Visa (Sampo Estonia, 2010) 3B EF 00 00 81 31 FE 45 43 6F 6D 62 4F 53 20 56 49 20 20 20 20 20 00 C4 VfB Stuttgart Fankarte (pay card for the football stadium of the german club VfB Stuttgart) 3B EF 00 00 81 31 FE 45 46 49 4F 4D 4B 5F 30 30 31 20 30 31 30 41 00 9C MasterCard/PayPass Card issued by Czech FIO Banka a.s. (contact chip) note the ASCII string ' FIOMK_001 010A' embedded in ATR 3B EF 00 00 81 31 FE 65 00 5C 50 43 53 D1 91 47 D2 76 00 00 38 33 00 70 Siemens/Infineon Sicrypt S26381-F252-V1 GS:03 3B EF 00 00 81 31 FE 67 00 5C 49 43 4D DB C9 7E D2 76 00 00 38 33 00 1E Infineon SICRYPT CardModule Card 3B EF 00 FF 81 31 .. 45 65 63 Debit card (Germany): ec-cash, GeldKarte(DEM), Maestro, Cirrus 3B EF 00 FF 81 31 20 45 42 61 73 69 63 43 61 72 64 20 5A 43 32 2E 33 BD ZeitControl BasicCard Enhanced 2.3 3B EF 00 FF 81 31 20 45 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 33 BC Electronic Purse (Elton Senegal) 3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 33 8C ZeitControl BasicCard Enhanced 3.3 3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 37 88 ZeitControl BasicCard Enhanced 3.7 3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 39 86 ZeitControl BasicCard Enhanced 3.9 3B EF 00 FF 81 31 42 45 .* 38 UNI-Card 3B EF 00 FF 81 31 42 45 65 63 03 02 03 02 80 00 22 40 48 95 96 00 20 28 Scard Sparkasse Detmold, Deutschland BLZ 47650130 3B EF 00 FF 81 31 50 45 42 61 73 69 63 43 61 72 64 20 5A 43 31 2E 31 CC ZeitControl BasicCard Compact 1.1 3B EF 00 FF 81 31 50 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. .. GeldKarte v2 (Germany) 3B EF 00 FF 81 31 50 45 65 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Geldkarte v2 3B EF 00 FF 81 31 50 45 65 63 08 0B 40 02 80 00 08 15 20 03 36 04 00 7E old banking card (electronic-card / Maestro / Geldkarte) of the Stadt-Sparkasse Duesseldorf (like the above, but old - around 2002). 3B EF 00 FF 81 31 50 45 65 63 0D 24 20 02 80 00 05 08 33 56 10 01 02 43 German ec card 3B EF 00 FF 81 31 52 45 4D 46 43 20 49 42 4D 20 34 30 48 39 36 30 31 FB IBM MFC 3.5 file system smart card (Card from the book "Smart Card Application Development Using Java") 3B EF 00 FF 81 31 60 45 65 63 04 02 11 00 00 00 00 00 A5 32 A5 01 11 B6 GledKarte Siemens M3-Module with a Motorola SC-28. G&D (Giesecke&Devrient) Geldkarten-OS mit der Version 11 3B EF 00 FF 81 31 60 45 65 63 06 03 14 02 50 00 06 51 08 11 5E 01 41 90 Geldkarte from Deutsche Bank, Thomson-Chip 3B EF 00 FF 81 31 66 45 49 42 4D 20 4D 46 43 34 30 30 32 30 38 33 31 A1 IBM MFC 4.1 file system smart card Card from the book "Smart Card Application Development Using Java" authors: Uwe Hansmann, Martin. S. Nicklous, Thomas Schäck, Achim Schneider, Frank Seliger 3B EF 00 FF 81 31 66 45 65 63 20 20 49 42 4D 20 33 2E 31 20 20 20 20 IBM eCash 3B EF 00 FF 81 31 66 45 65 63 20 20 49 42 4D 20 33 2E 31 20 20 20 20 CF IBM eCash 3B EF 00 FF 81 31 86 45 49 42 4D 20 4D 46 43 34 30 30 30 30 38 33 31 43 ComCard MFC 4.1 3B EF 00 FF 81 31 FE 45 65 63 11 04 01 02 80 00 0F 27 40 00 03 01 00 E1 Postbank Geldkarte 3B EF 00 FF 81 31 FE 45 65 63 11 04 01 02 80 00 0F 46 20 04 23 01 00 C4 Postbank ec/Maestro (Germany) 3B EF 00 FF 81 31 FE 45 65 63 19 01 62 02 80 00 0F 00 35 00 42 06 20 BB Credit card (Germany, Postbank AG): VISA 3B EF 00 FF 81 31 FE 45 80 31 C0 6B 49 42 4D 20 4A 65 74 5A 20 4D 32 39 UBS Internet Card (IBM JetZ M2) 3B EF 00 FF 81 31 FF 65 49 42 4D 20 4D 46 43 39 32 32 39 32 38 39 30 17 IBM MFC 4.22 (University of Cambridge smartchip card) 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99 Japanese Chijou Digital B-CAS Card (pay TV) 3B F0 12 00 FF 91 81 B1 EF 45 1F 03 0A Japanese Digital CATV C-CAS card 3B F0 13 00 00 10 00 MasterCard ETEC InterOp 27. This is an dual-app Maestro/MasterCard Credit EMV test card 3B F2 18 00 00 C1 0A 31 FE 55 C8 06 75 HID iCLASS P16K C4H proximity card used for both door locks and keystore 3B F2 18 00 02 C1 0A 31 FE 55 C8 07 76 Siemens CardOS V4.3 3B F2 18 00 02 C1 0A 31 FE 58 C8 08 74 Siemens CardOS V4.3B D-Trust multicard 2.1 (may only be the testcard for it) 3B F2 18 00 02 C1 0A 31 FE 58 C8 09 75 Siemens CardOS V4.2B 3B F2 18 00 02 C1 0A 31 FE 58 C8 0B 77 CardOS V4.2C (SLE66CX360PE dual interface) 3B F2 18 00 FF C1 0A 31 FE 55 C8 06 8A Siemens CardOS M 4.2 (SLE66CX642P) 3B F2 98 00 FF C1 10 31 FE 55 C8 03 15 Siemens CardOS M 4.01 (SLE66CX320P) 3B F2 98 00 FF C1 10 31 FE 55 C8 04 12 CardOS M4.01a (SLE66CX322P) 3B F3 96 00 FF C0 0A 31 FE 4D 80 31 E0 83 MARX Cryptoken (supported by RaakSign) 3B F4 18 00 02 C1 0A 31 FE 58 56 34 63 76 C5 Eutron CryptoIdentity (reader + card token) 3B F4 18 00 FF 81 31 80 55 00 31 80 00 C7 Identity card of Italian Republic 3B F4 98 00 FF C1 10 31 FE 55 4D 34 63 76 B4 Eutron Digipass 860 (reader + card token) 3B F5 18 00 00 81 31 FE 45 4D 79 45 49 44 9A Aventra ActiveSecurity MyEID http://www.aventra.fi/pdf/ActiveSecurity%20MyEID%20Tokens%20white%20paper%20(2p)%20EN.pdf 3B F5 91 00 FF 91 81 71 FE 40 00 41 00 00 00 00 05 Contactless Mifare Ultralight 3B F5 91 00 FF 91 81 71 FE 40 00 41 08 00 00 00 0D Contactless Mifare 3B F5 91 00 FF 91 81 71 FE 40 00 41 18 00 00 00 1D Contactless Mifare 4k 3B F5 91 00 FF 91 81 71 FE 40 00 41 88 00 00 00 8D Contactless Mifare 1k or 4k 3B F5 91 00 FF 91 81 71 FE 40 00 42 00 01 00 81 86 American Express Blue RFID 3B F6 18 00 FF 81 31 FE 45 4A 32 41 30 38 30 1B NXP J2A080 - 80K (blank) http://www.classic.nxp.com/acrobat_download2/literature/9397/75016728.pdf 3B F6 18 00 FF 81 31 FE 45 4A 43 4F 50 32 30 0E IBM JCOP20 3B F6 18 00 FF 81 31 FE 45 4A 43 4F 50 33 30 0F Philips P8RF5016 running IBM JCOP 30 (contact interface) 3B F6 18 00 FF 81 31 FE 45 4A 43 4F 50 33 31 0E IBM JCOP BIO31 IBM JCOP BIO31 Java card 3B F7 11 00 00 81 71 80 42 00 00 63 95 0A 01 90 00 B9 ATM Card for Chunghwa Post Inc., Taiwan 3B F7 11 00 00 81 71 FE 42 00 00 63 95 01 01 90 00 CC ATM Card for Mega International Commercial Bank, Taiwan ATM card for HSBC Direct, Taiwan ATM card for TaChong Bank, Taiwan ATM card for Chunghwa Post, Taiwan VISA card for Taipei Fubon Bank, Taiwan 3B F7 11 00 00 81 71 FE 42 00 00 63 95 31 02 90 00 FF VISA card for Taipei Fubon Bank, Taiwan 3B F7 11 00 00 81 71 FE 42 00 00 63 95 31 05 90 00 F8 ATM card for Chunghwa Post, Taiwan ATM card for E.Sun Commercial Bank, Taiwan 3B F7 11 00 01 40 96 54 30 04 0E 6C B6 D6 90 00 PIC16F876-04/SP (PICCard2) or PIC16F84A-04/P + 24LC16B (PICCard1) or Canal + Canal Digital Spain year 2000/2001 or PIC Silver Card 2 (PIC16F876/7 + 24C64) 3B F7 11 00 01 40 96 57 60 14 0E 6C B6 D6 old SECA of D+ Italian sat pay tv 3B F7 11 00 01 40 96 58 42 14 0E 6C B6 D6 UK on digital (terrestrial digital TV card) 3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6 Cyfra+ SECA Card (http://cyfraplus.pl/) 3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6 90 00 M-II (a.k.a. M-2, a.k.a. Platinum Card), AT90SC6464C based KnotCard II TitaniumElite 3B F7 11 00 01 40 96 70 70 0A 0E 6C B6 D6 TopUp TV NagraVision viewing card 3B F7 11 00 01 40 96 70 70 17 0E 6C B6 D6 Canal Satellite card (VERSION 7.1 SYSTEM / SECA2) 3B F7 11 00 01 40 96 70 70 37 0E 6C B6 D6 Carte pour decodeur cable numérique (fourni par www.voo.be et www.ledecodeur.be) 3B F7 11 00 01 40 96 70 70 67 0E 6C B6 D6 UK TopUp TV 3B F7 11 00 01 40 96 70 71 09 0E 6C B6 D6 Carte pour décodeur télé de Neuf Telecom TV 3B F7 13 00 00 81 31 FE 45 46 4F 4D 53 4F 4D 53 A9 Health card Russian Federation 3B F7 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 .. .. NXP JCOP v2.4.x (see hist bytes for more info) 3B F7 18 00 00 80 31 FE 45 73 66 74 65 2D 6E 66 C4 SmartCafe Expert 3.2 72K 3B F7 18 00 00 81 71 80 42 00 00 63 95 0A 01 90 00 B0 7-Eleven icash card, Taiwan 3B F7 91 00 FF 91 81 71 FE 40 00 41 20 00 11 77 81 80 40 Contactless Mifare DESFire 3B F8 11 20 03 40 FF FF FF FF FF 12 10 90 00 G&D (STARCOS SV 1.1) 3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 .. .. NXP JCOP v2.4.x (see hist bytes for more info) 3B F8 18 00 00 80 31 FE 45 00 73 C8 40 13 00 90 00 92 G&D StarSign Token 3B F8 18 00 00 81 31 FE 45 00 73 C8 40 00 00 90 00 80 NXP JCOP 31 V2.2 36K - S/C I/F 3B F8 18 00 00 81 31 FE 45 00 73 C8 40 13 00 90 00 93 Giesecke & Devrient Sm@rtCafé Expert 3.0 3B F8 18 00 00 81 31 FE 45 4A 43 4F 50 56 32 34 31 9C NXP JCOP2.4.1 J3A080 80KB T=1 GP2.1.1 JC2.2.2 SCP02 3B F8 18 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 31 BC NXP J2A080 JavaCard 3B F8 18 00 FF 81 31 FE 45 00 73 C8 40 00 00 90 00 7F NXP JCOP 10 NXP JCOP 31 (contact interface) 3B F8 18 00 FF 81 31 FE 45 4A 43 4F 50 76 32 34 31 43 VIVOtech SAM NXP JCOP V241 NXP J3A081 JavaCard (contact interface) 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 .. .. .. .. NXP JCOP v2.4.x (see hist bytes for more info) 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 34 A2 JCOP41 v2.4 3B F9 13 00 FF 10 80 80 31 E0 55 42 45 52 47 53 Banrisul bank 3B F9 18 00 00 80 31 FE 45 80 57 4E 45 4F 57 41 56 45 7D Neowave Weneo 3B F9 18 00 00 81 31 FE 45 39 35 32 38 35 30 31 33 31 DA JCOP31 / 72B1 V2.2 (4096 RSA key support) Smartcard Dual Interface JCOP31 with 72KB EEPROM and V2.2 Java Card Open Platform 3B F9 18 00 00 81 31 FE 45 4A 43 4F 50 32 31 56 32 32 A9 NXP JCOP 21 V2.2 36K 3B F9 18 00 00 81 31 FE 45 4A 43 4F 50 33 31 56 32 32 A8 JCOP31 / 72B1 V2.2 Smartcard Dual Interface JCOP31 with 72KB EEPROM and V2.2 Java Card Open Platform 3B F9 94 00 00 81 31 FE 65 46 54 20 56 31 30 30 90 00 83 ePass 2000 3B F9 98 00 FF C1 10 31 FE 55 41 4D 20 43 4D 44 31 31 30 83 Service card of the Ministry of Defense of Italy - Military Aviation 3B F9 98 00 FF C1 10 31 FE 55 45 49 20 43 4D 44 31 31 30 83 Service card of the Ministry of Defense of Italy - Italian Army 3B F9 98 00 FF C1 10 31 FE 55 4D 4D 20 43 4D 44 31 31 30 8F Service card of the Ministry of Defense of Italy - Navy 3B F9 98 00 FF C1 10 31 FE 55 50 43 20 43 4D 44 31 31 30 9C Service card of the Ministry of Defense of Italy - Civil personnel 3B FA 11 00 00 81 31 FE 45 43 6F 6D 62 4F 53 20 49 56 00 E0 MyWireCard 2go Prepaid VISA Card 3B FA 11 00 02 40 60 43 C6 02 F8 03 03 00 00 90 00 DeLaRue DX(?) 3B FA 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 4E 45 4F A6 Yubikey NEO 3B FA 13 00 00 81 31 FE 45 44 65 78 61 20 43 46 20 76 31 98 Dexa Systems Crossfire Card (PKI) http://www.dexasystems.com/products-services/products/dexa-smartcards-credential-tokens-peripherals 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 3. 3. 56 32 33 32 .. JCOPxx/yy v2.3.2 (see hist bytes for more info) 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 32 31 56 32 33 31 91 NXP JCOP 21 V2.3.1 36K 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 JCOP41 V221 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 33 31 97 JCOP41 /72K (eID) 3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 .. .. .. .. NXP JCOP v2.4.x (see hist bytes for more info) 3B FA 13 00 FF 81 31 80 45 00 31 C1 73 C0 01 00 00 90 00 B1 OpenPGP 3B FA 18 00 00 81 31 FE 45 06 08 60 84 10 01 87 6F 06 02 FE Card used by the Dutch health insurers to give medical personell access to patient insurance information 3B FA 18 00 00 81 31 FE 45 4A 33 41 30 34 30 56 32 34 31 84 NXP J3A 40K Java Card v2.2.2 - Global Platform v2.2.1 Dual-interface functionality (features 1K Mifare emulation) 3B FA 18 00 00 81 31 FE 45 4A 33 41 30 38 31 56 32 34 31 89 NXP JCOP CJ3A081 http://www.usmartcards.com/media/downloads/492/NXP%20P5CX012%2002X%2040%2073%2080%20144%20%20%202011.pdf 3B FA 18 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 9D NXP JCOP 41 v2.2.1 72k SmartCard I/F 3B FA 18 00 02 C1 0A 31 FE 58 4B 53 77 69 73 73 53 69 67 6E 89 SuisseId card (used for qualified signatures) http://postsuisseid.ch/de/suisseid http://www.suisseid.ch/ 3B FA 18 00 FF 81 31 FE 45 4A 43 4F 50 32 31 56 32 33 31 65 TrubDemax healthcare card JCOP 21 / 72k 3B FA 18 00 FF 81 31 FE 45 4A 43 4F 50 34 31 43 32 30 30 74 HID Crescendo C200 https://www.hidglobal.com/sites/hidglobal.com/files/resource_files/crescendo-c200-c700-smart-card-ds-en.pdf 3B FA 18 00 FF 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 62 JCOP41 HID Crescendo C700 http://www.hidcorp.com/ Should be compatible to RAAK http://www.raaktechnologies.com/ Marx CrypToken MX2048-JCOP USB Token 3B FA 18 00 FF 81 31 FE 45 4A 43 4F 50 34 31 56 32 33 31 63 JCOP41 V2.3.1 Dual Interface, Mifare emulation, 72K (NXP SmartMX P5CT072) JCOP (Java Card OpenPlatform) is a Java smart card distributed and developed by NXP. The JCOP 41 v2.3.1. is an USB-smart card and can be used not only with standard smart card reader, but also with simple USB-connectors. The JCOP card is connected as ICCD card and can be used with such ICCD standard drivers. JCOP 41 is a Dual-Interface Smart Card, that means, the card can also be contacted with a contactless card reader. For building access systems, this card is also be able to emulate Mifare Classic 1k/4k. JCOP 41 v2.3.1 is compliant to JavaCard Standard 2.2.1. and GlobalPlattform 2.1.1. Their cryptographic features supports RSA up to 2432 bit, 'Eliptic curves' - ECC GF(2n), AES and 3DES. More information is available here: http://www.nxp.com/documents/short_data_sheet/P5Cx009_P5Cx072_FAM_SDS.pdf 3B FA 94 00 00 81 31 20 43 80 65 A2 01 01 01 3D 72 D6 43 21 GemXpresso Pro R3 32PK (MPCOS, T=1) 3B FA 98 00 FF C1 10 31 FE 55 C8 03 53 41 47 5F 50 4B 49 32 77 Siemens corporate ID card (access to the building / rooms etc, stores PKI private keys/certificates) 3B FA 98 00 FF C1 10 31 FE 55 C8 04 53 41 47 5F 50 4B 49 32 70 Siemens Corporate Card (Belgium , Germany) 3B FB 11 00 00 40 28 80 59 53 50 59 52 55 53 AE 00 02 Spyrus Rosetta Basic 3B FB 11 00 00 40 78 80 59 53 50 59 52 55 53 AE 02 02 Rosetta® Series II Smart Card manufactured by Spyrus http://spyrus.com/products/rosetta_smart_usb.asp 3B FB 11 00 00 81 31 FE 45 00 31 C0 64 77 E9 10 00 00 90 00 6A OCS ID-One Cosmo Card USB Token 3B FB 13 00 00 81 31 FE 45 4A 43 4F 50 53 3. 3. 56 32 33 32 .. JCOP-Sxx/yy v2.3.2 (see hist bytes for more info) 3B FB 13 00 FF 81 31 80 75 5A 43 35 2E 35 20 52 45 56 20 47 63 ZeitControl BasicCard 5.5 3B FB 13 00 FF 81 31 80 75 5A 43 35 2E 36 20 52 45 56 20 4D 6A ZeitControl BasicCard ZC5.6 user-programmable smart card http://www.basiccard.com/index.html?overview.htm 3B FB 13 00 FF 81 31 80 75 5A 43 36 2E 35 20 52 45 56 20 43 64 ZeitControl BasicCard 6.5, multiapplication with 30 kByte EEPROM 3B FB 13 00 FF C0 80 31 80 75 5A 43 35 2E 34 20 52 45 56 20 41 A5 ZeitControl BasicCard Professional 5.4 Revision A 3B FB 13 00 FF C0 80 31 80 75 5A 43 35 2E 34 20 52 45 56 20 48 AC ZeitControl BasicCard Professional 5.4 3B FB 18 00 00 40 78 80 59 53 50 59 52 55 53 AE 04 02 Spyrus Rosetta Series II 3B FB 18 00 00 81 31 FE 45 00 31 C0 64 77 E9 10 00 01 90 00 62 ID card for personal of "Govern Illes Balears" http://www.caib.es/sacmicrofront/contenido.do?cont=7584&mkey=M08110610180317195848&&lang=en 3B FB 91 00 FF 91 81 71 FE 40 00 41 20 00 01 00 81 20 63 CB A0 80 03 Carrefour, MasterCard credit card, Pass Banque, Oberthur - contactless/PayPass 3B FB 96 00 00 80 31 FE 45 00 31 C0 64 77 E3 02 00 82 90 00 76 Oberthur ID-One Cosmo 3B FB 96 00 00 81 31 FE 45 00 31 C0 64 77 E9 10 00 01 90 00 EC Oberthur ID-ONE v5.4 3B FB 96 00 00 81 31 FE 45 00 31 C0 64 77 E9 10 00 0F 90 00 E2 Elektroniczna Legitymacja Studencka - Polish Student's ID Issued in Poznan in 2007 3B FB 96 00 00 81 31 FE 45 56 44 53 49 35 40 01 00 04 00 01 1F Vasco DIGIPASS KEY 200 usb token http://www.vasco.com/products/digipass/digipass_pki/digipass_pki_keys/digipass_key_200.aspx Should contain a 'Oberthur cosmo v 5.4 or V7.0D' smartcard 3B FB 98 00 FF C1 10 31 FE 55 00 64 05 20 47 03 31 80 00 90 00 F3 Gemplus GemGate 32K distributed by Postecert (www.postecert.it) to legally sign documents 3B FC 13 00 00 81 31 FE 45 59 75 62 69 6B 65 79 4E 45 4F 72 33 B1 Yubikey Neo http://www.yubico.com/products/yubikey-hardware/yubikey-neo/ 3B FC 98 00 FF C1 10 31 FE 55 C8 03 49 6E 66 6F 63 61 6D 65 72 65 28 New Card Infocamere (Italy) series 1402... http://www.card.infocamere.it/ Siemens Informatica - Siemens M4.01a chip Infineon SLE66CX322P (CC EAL5) Memory EEPROM: 32KB Operating system CARDOS Max numero dei tentativi PIN: 3 Pin: da 5 a 8 digit Unblocked by tool CARDOS API 2.2 3B FD 13 00 00 81 31 FE 45 41 37 30 30 36 43 47 20 32 34 32 52 31 D6 YubiKey NEO (token) 3B FD 13 00 00 81 31 FE 45 4A 43 4F 50 32 31 76 32 33 31 47 44 54 E1 National Health Insurance Card, Taiwan 3B FD 18 00 00 80 31 FE 45 00 31 80 71 8E 64 52 D9 04 00 81 90 00 5B Oberthur Card Systems, authentIC 3B FD 18 00 00 80 31 FE 45 73 66 74 65 2D 63 64 30 38 30 2D 6E 66 DC G&D Sm@Cafe 3.1 (eID) 3B FD 18 00 00 81 31 FE 45 53 43 45 36 30 2D 43 43 30 38 31 2D 46 C2 Giesecke & Devrient StarSign USB Token 3B FD 18 00 00 81 31 FE 45 80 31 80 65 40 90 7B 01 51 83 07 90 00 55 Croatian Health Care card 3B FD 18 00 00 81 31 FE 45 80 31 81 53 47 45 31 73 84 21 C0 81 07 2E Georgian ID Card 3B FD 18 00 FF 80 B1 FE 45 1F 07 80 73 00 21 13 57 4A 54 48 61 31 47 00 5F Activkey Sim http://www.actividentity.com/products/activkey_usb_tokens__home.php 3B FD 18 00 FF 80 B1 FE 45 1F 07 80 73 00 21 13 57 4A 54 48 61 31 48 00 50 G&D Sm@rtCafe Expert 64 v2 3B FD 18 00 FF 80 B1 FE 45 1F 07 80 73 00 21 13 57 4A 54 48 61 31 4A 00 52 e-CPF issued by AASP (Lawyers Association of São Paulo, Brazil) 3B FD 91 00 FF 91 81 71 FE 40 00 41 20 00 41 00 81 80 31 C0 73 D6 21 C0 D8 Sparkasse Hanau - German contactless GeldKarte (PPSE, girogo) https://www.geldkarte.de/_www/en/pub/geldkarte/service_navigation/about_us.php 3B FD 94 00 00 81 31 20 43 80 31 80 65 B0 83 02 04 7E 83 00 90 00 B6 GXPPRo-R3.x STD PTS T=1 Latvian Digital Signature Card (cold) (http://www.eme.lv/) 3B FD 94 00 00 81 31 60 65 80 31 C0 69 4D 54 43 4F 53 73 01 01 11 E0 MTCOS Light, http://www.masktech.de/products/mtcoslight/index.html 3B FD 96 00 00 81 31 20 43 80 31 80 65 B0 83 11 00 C8 83 00 90 00 15 Gemalto TOP IM GX4 MSA081, T=1 (PKI) 3B FD 96 00 00 81 31 20 43 80 31 80 65 B0 83 11 48 C8 83 00 90 00 Pay TV 3B FE 18 00 00 80 31 FE 45 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 A8 Estonian Identity Card (EstEID 3.0 "JavaCard" cold) 3B FE 18 00 00 80 31 FE 45 80 31 80 66 40 90 A4 16 2A 00 83 01 90 00 E1 Estonian Identity Card (EstEID 3.0 "JavaCard" warm) 3B FE 18 00 00 80 31 FE 45 80 31 80 66 40 90 A4 16 2A 00 83 0F 90 00 EF iEstonian Identity Card (EstEID 3.0 (18.01.2011) warm) 3B FE 18 00 00 81 31 FE 45 80 31 81 54 48 53 4D 31 73 80 21 40 81 07 FA Smartcard-HSM http://www.cardcontact.de/products/sc-hsm.html 3B FE 91 00 FF 91 81 71 FE 40 00 41 28 00 01 80 81 00 73 C8 40 00 00 90 00 4D Philips SmartMX chip (IBMs JCOP OS) 3B FE 91 00 FF 91 81 71 FE 40 00 41 28 00 11 33 B0 4A 43 4F 50 33 31 56 32 C4 JCOP31 72K dual interface functionality, 1K Mifare emulation. 3B FE 94 00 00 80 1F 42 80 31 80 66 47 50 20 45 83 01 83 01 90 00 02 TATA Docomo UICC (Telecommunication) http://www.tatadocomo.com/ 3B FE 94 00 FF 80 B1 FA 45 1F 03 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 43 Estonian Identity Card (EstEID v1.0 cold) Estonian Identity Card (EstEID v1.1 "MULTOS" warm) 3B FE 96 00 FF C0 0A 31 FE 4D 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 9B Estonian Identity Card (EstEID v1.1 compatible) http://www.id.ee/?id=11019&&langchange=1 3B FF .. 00 FF 81 31 .. 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. .. Debit card (Germany): ec-cash, GeldKarte(EUR), Maestro, Cirrus, ... 3B FF 00 00 FF 81 31 FE 45 80 25 A0 00 00 00 56 57 53 43 36 35 30 00 00 00 SafeNet SC650 3B FF 00 FF 81 31 .. 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. .. Debit card (Germany): ec-cash, GeldKarte(EUR), Maestro, Cirrus, ... 3B FF 11 00 00 81 31 FE 4D 80 25 A0 00 00 00 56 57 44 4B 33 33 30 06 00 D0 Datakey 32K PKI Smart Card Model 330 (http://www.datakey.com/products/smart_cards/products_sc_330.shtml) 3B FF 11 00 00 81 71 40 42 00 00 21 01 31 42 52 00 0[0,5] 63 .. .. .. .. 90 00.* Smart Card "The Smart Way to Login" Used on Acer TravelMate to secure boot 3B FF 11 00 02 40 64 80 69 A2 07 01 03 57 00 00 FF 00 83 00 90 00 Gemplus GemXpresso 3B FF 13 00 00 81 31 FE 45 4F 57 4F 4B 31 30 2D 4A .. .. .. .. .. .. .. .. OWOK (One Web, One Key) login card, http://www.reiner-sct.com/owok/ Reiner SCT loginCard https://cardlogin.reiner-sct.com/ 3B FF 13 00 00 81 31 FE 4D 80 25 A0 00 00 00 56 57 44 4B 33 33 30 06 00 D2 Datakey DCOS model 330 (DKCCOS 6.0 token) 3B FF 13 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 01 01 01 65 Portugal Santander Totta Universitários "Associação Academica de Coimbra" 3B FF 13 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 18 02 08 76 SmartCafe Expert Java 3B FF 13 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 18 03 08 77 Giesecke & Devrient SmartCafe Expert 32K v2.0 #2 3B FF 13 00 FF 81 31 FE 45 65 63 11 04 50 02 80 00 08 39 00 04 02 05 02 E9 German "Geldkarte" supplied by the Deutsche Bank in Karlsruhe, Baden-Württemberg, Germany. 3B FF 13 00 FF 81 31 FE 45 65 63 11 04 50 02 80 00 08 54 00 04 23 05 02 A5 Maestrocard/Geldkarte (Stadtsparkasse Haltern, Germany) 3B FF 13 00 FF 81 31 FE 5D 80 25 A0 00 00 00 56 57 44 4B 33 32 30 05 00 3F Datakey DCOS model 320 3B FF 14 00 FF 81 31 FE 45 80 25 A0 00 00 00 56 57 53 43 36 35 30 01 00 39 SafeNet SC650 (PKI) http://www.safenet-inc.com/data-protection/authentication/smartcard-650/ 3B FF 18 00 00 81 31 FE 45 00 6B 04 05 01 00 01 11 01 43 4E 53 10 31 80 69 Sanitary Card of "Friuli Venezia Giulia" region (Italian Republic) Carta Nazionale dei Servizi (Italia) http://cartaservizi.regione.fvg.it/ 3B FF 18 00 00 81 31 FE 45 00 6B 04 05 01 00 01 12 02 48 50 43 10 31 80 6C Carta del Professionista Sanitario - CNS - Provincia autonoma di Trento Professional Health card, Autonomous Province of Trento 3B FF 18 00 00 81 31 FE 45 00 6B 04 05 01 00 01 21 01 43 49 45 10 31 80 48 hybrid card for various health services and regional services (access to various organizations and digital signatures) 3B FF 18 00 00 81 31 FE 45 00 6B 04 05 01 00 01 21 01 43 4E 53 10 31 80 59 CNS - Carta Nazionale dei Servizi (Italia) PA emittente: Regione Autonoma della Sardegna Carta del Servizio Sanitario Regionale - Emilia Romagna 3B FF 18 00 00 81 31 FE 4D 80 25 A0 00 00 00 56 57 44 4B 34 30 30 06 00 DD DataKey 400 (DK400) 3B FF 18 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 18 03 08 7C Giesecke & Devrient Sm@rtCafé Expert 2.0 3B FF 18 00 FF 80 31 FE 45 53 6D 40 72 74 43 61 66 65 45 78 70 65 72 74 65 Giesecke & Devrient SmartCafe 32K v1 3B FF 18 00 FF 81 31 .. 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. .. Geldkarte (generic ATR) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 00 26 00 04 10 09 Maestrocard/Geldkarte (Postbank, Germany) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 01 55 00 04 10 7B Volksbank VR-BankCard (GeldKarte) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 05 29 00 04 10 03 Geldkarte/HBCI(DDV-1) (Stadtsparkasse Vorpommern, Germany) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 07 88 00 04 10 A0 HBCI-Karte (Berliner Sparkasse, Germany) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 13 82 00 04 10 BE Bremer Karte ("Geldkarte und BSAG-Kundenkarte in einem.") http://www.bsag.de/4911.php 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 14 06 00 04 10 3D Geldkarte/HBCI(DDV-1) (Staedtische Sparkasse Offenbach, Germany) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 14 44 00 04 10 7F Geldkarte/HBCI (Kreissparkasse Ebersberg, Deutschland) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 55 70 00 04 10 0A EC-Card from DKB (Deutsche Kreditbank AG) 3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 80 00 12 24 30 00 20 04 10 59 Geldkarte (Germany) 3B FF 18 00 FF 81 31 50 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. .. GeldKarte v3 (Germany) 3B FF 18 00 FF 81 31 FE 45 54 48 43 43 31 30 54 45 43 4F 47 44 49 4E 31 26 National Health Insurance Card, Taiwan 3B FF 18 00 FF 81 31 FE 45 65 63 0D 04 50 02 80 00 08 90 09 70 00 05 00 2A Landesbank baden-Württemberg Geldkarte 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 05 28 00 0D 90 81 06 00 06 15 58 Geldkarte/HBCI (Frankfurter Sparkasse, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D .. .. .. .. 06 15 .. Giesecke & Devrient GmbH ROM Mask=ecD6.3 Init-Table=SDP2G3F0.E_2 (BES0), SWP2G3H0.E_1 (CS0) Signaturerstellungseinheit ZKA TUVIT.93125.TU.12.2005 Banking Signature Card, v6.32, Type 3 TUVIT.93125.TU.12.2005 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D .. .. .. .. 06 15 .. Giesecke & Devrient GmbH ROM Mask=SDP2G330.E_1 (BES0), SWP2G370.E_1 (CS0) Init-Table=ecD6.3 Signaturerstellungseinheit ZKA TUVIT.09397.TU.03.2005 Banking Signature Card, v6.31 NP, Type 3 TUVIT.09397.TU.03.2005 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 58 45 00 06 15 8C Stadtsparkasse München electronic cash card / Geldkarte 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 73 07 00 06 15 E5 Sparkasse Acchen HBCI Geld Karte 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 74 32 00 06 15 D7 German HBCI-Banking Card with 'Geldkarte' from the bank "Sparkasse Marburg-Biedenkopf" 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 92 61 00 06 15 62 Geldkarte (Frankfurter Sparkasse, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 0D 08 65 07 64 00 0D .. .. .. .. 06 16 .. Giesecke & Devrient GmbH ROM Mask=ecD6.5 Init-Table=SWP3G5J0.E_1 (CS0) Signaturerstellungseinheit ZKA Banking Signature Card, v6.51 TUVIT.93129.TU.03.2006 3B FF 18 00 FF 81 31 FE 45 65 63 0D 08 65 07 64 00 0D 91 04 90 00 06 16 0E German Railway's (Deutsche Bahn AG) "Konzernausweis" 3B FF 18 00 FF 81 31 FE 45 65 63 0D 0C 76 07 64 00 0D 95 81 20 00 07 30 0F Master Card Credit Card issued by WGZ bank (all german volksbank institutes use them) 3B FF 18 00 FF 81 31 FE 45 65 63 11 03 50 02 80 00 08 27 70 02 06 05 01 8A old banking card (electronic-card / Maestro / Geldkarte) of the "Volksbank Gelderland eG" (around 2003) 3B FF 18 00 FF 81 31 FE 45 65 63 11 05 40 02 50 00 10 55 10 03 03 05 00 43 belongs to a banking card (electronic-card / Maestro / Geldkarte). the bank calls it "VR-BankCard". the banks name is "Volksbank Gelderland eG" and is part of the "Volksbanken und Raiffeisenbanken" (http://www.vb-gelderland.de/html/5/2394/rubrik/1282.html) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 .. .. .. .. 05 00 .. Gemplus-mids GmbH, ROM Mask=ZKA 322 V5A, Init-Table=SWI1P070.E_0 (CS0),SDI1P080.E_1 (BES0), Signaturerstellungseinheit ZKASignaturkarte v5.02, TUVIT.09385.TU.09.2004 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 05 50 03 10 05 00 43 HBCI-Karte (Bordesholmer Sparkasse, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 19 10 04 20 05 00 28 Stadtsparkasse München HBCI card / Geldkarte 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 25 60 05 12 05 00 57 Geldkarte/HBCI(DDV-1) (Stadtsparkasse Vorpommern, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 27 30 02 16 05 00 06 GeldKarte from Sparkasse bank 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 27 80 03 25 05 00 84 Volksbank VR-BankCard (GeldKarte) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 28 50 01 11 05 00 6D HBCI Bancing Card of Sparkasse Pforzheim 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 .. .. .. .. 06 13 .. Giesecke & Devrient GmbH ROM Mask=ecD6.2, Init-Table=SDI1G280.E_1 (BES0), Signaturerstellungseinheit ZKA Banking Signature Card, v6.2b NP & 6.2f NP, Type 3 TUVIT.09395.TU.01.2005 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 06 60 03 04 06 13 87 Geldkarte (Volksbank Offenburg, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 16 50 05 17 06 13 B2 FinTS (BBBank Karlsruhe, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 20 90 03 09 06 13 5C Geldkarte [ec, Maestro] (1822 direkt Frankfurter Sparkasse, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 43 50 01 17 06 13 E3 EC-Card of Sparkasse Pforzheim Calw 3B FF 18 00 FF 81 31 FE 45 65 63 11 07 51 02 50 00 10 72 80 00 02 06 20 C6 Maestro Card Deutsche Kredit Bank (DKB) / Germany 3B FF 18 00 FF 81 31 FE 45 65 63 11 07 64 02 80 00 11 .. .. .. .. 06 19 .. Giesecke & Devrient GmbH ROM Mask=ecD6.4 Init-Table=SDI2G4G0.E_4 (BES0), SWI2G4H0.E_2 (CS0) Signaturerstellungseinheit ZKA 17.01.2006 Banking Signature Card, v6.4 TUVIT.93123.TU.01.2006 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 43 02 50 00 10 .. .. .. .. 05 30 .. Gemalto ROM Mask=ZKA 680 V5A Init-Table=SSI3P3M6E_1 (MS0) Massen-Signaturerstellungseinheit ZKA Banking Signature Card, Version 5.11M TUVIT.93148.TU.06.2007 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 43 02 50 00 10 46 50 01 08 05 30 27 HBCI-Karte (Sparkasse Altmark-West, Salzwedel, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 43 02 50 00 10 84 70 01 04 05 30 C9 HBCI Card (1822 direkt Frankfurter Sparkasse, Germany) Geldkarte [ec, Maestro] 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 66 02 80 00 11 .. .. .. .. 06 20 .. Giesecke & Devrient GmbH ROM Mask=ecD6.6 Init-Table=SDI3G6G0.E_3 (BES0), SSI3G6M0.E_2 (S0), SWI3G6H0.E_3 (CS0) Signaturerstellungseinheit ZKA Banking Signature Card, Version 6.6 TUVIT.93130.TU.05.2006 - 2. Nachbestätigung 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 66 02 80 00 11 40 50 03 18 06 20 D4 banking card (electronic-card / Maestro / Geldkarte). the bank+calls it "S-Card" or "Sparkassen-Card". the banks name is "Stadtsparkasse Duesseldorf" and is part of the "Sparkassen-Finanzgruppe" (a finance group, network of local banks). 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 66 02 80 00 11 56 00 03 18 06 20 92 Geldkarte [ec, Maestro] (Sparkasse Langen-Seligenstadt, Germany) 3B FF 18 00 FF 81 31 FE 45 65 63 19 01 50 02 80 00 0F .. .. .. .. 05 12 .. SAGEM ORGA GmbH ROM Mask=SecV1.5.3 Init-Table=SDR0O1G0.A_B (BES0), SWR0O1H0.A_5 (CS0) Signaturerstellungseinheit ZKA SECCOS Sig v1.5.3 BSI.02076.TE.12.2006 3B FF 18 00 FF 81 31 FE 45 65 63 1A 01 41 02 50 00 10 52 09 05 67 05 10 21 Maestro/Geldkarte (BBBank Karlsruhe, Germany) 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 01 01 43 4E 53 10 31 80 9F Carta Nazionale dei Servizi - InfoCamere 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 01 01 44 53 44 10 31 80 92 Postcom S.P.A. (digital certificate) 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 11 01 43 4E 53 10 31 80 8F Carta Regionale dei Servizi - Regione Lombardia 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 11 01 43 4E 53 11 31 80 8E Infocamere CNS 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 03 00 01 11 01 43 4E 53 11 31 80 8F Card description: Multiservice Card - CMCC - Arma Carabinieri (Carta Multiservizi) 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 03 03 01 01 01 43 4E 53 10 31 80 9D Aruba CNS for Regione Toscana (IT) http://www.regione.toscana.it 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 03 03 01 01 01 44 53 44 10 31 80 90 Postecert (www.postecert.it) to legally sign documents 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 03 03 01 11 01 43 4E 53 11 31 80 8C Infocert 1205* smart card Universita' Degli Studi di Torino (Infocert) 3B FF 18 00 FF C1 0A 31 FE 55 00 6B 05 08 C8 05 01 11 01 43 4E 53 10 31 80 0C Carta Regionale dei Servizi - Regione Lombardia 3B FF 18 00 FF C1 0A 31 FE 55 00 6B 05 08 C8 09 01 11 01 43 4E 53 10 31 80 00 Carta regionale dei servizi - Regione Sicilia http://www.regione.sicilia.it/crs/index.asp 3B FF 18 00 FF C1 0A 31 FE 55 00 6B 05 08 C8 0A 01 11 01 43 4E 53 10 31 80 03 Carta Regionale dei Servizi - Regione Lombardia 3B FF 18 00 FF C1 0A 31 FE 55 00 6B 05 08 C8 0C 01 11 01 43 4E 53 10 31 80 05 Healthcare card (TS-CNS) - Provincia Autonoma di Trento 3B FF 32 00 00 10 80 80 31 E0 5B 47 42 50 00 00 00 00 00 00 02 55 UK NatWest BT PayToView Mondex 3B FF 94 00 00 00 43 4D 42 5F 55 42 53 69 67 6E 30 30 30 32 15 UBS Access Card used for online banking with UBS in Switzerland. It resides in a calculator like token, that is used for a challenge response when logging in. 3B FF 94 00 00 40 0A 80 31 00 73 12 21 13 57 4A 33 0E 01 31 41 00 O2 Loop SIM card 3B FF 94 00 00 40 0A 80 31 00 73 12 21 13 57 4A 33 0E 02 32 41 00 Turkcell SIMPlus64 / Turkey 3B FF 94 00 00 C0 0A B1 FE 49 1F 43 80 31 E0 73 F6 21 13 57 34 36 43 41 32 30 20 68 Sonera UICC (Telecommunication) 3B FF 94 00 FF 40 0A 80 31 00 73 12 21 13 57 4A 33 20 09 31 41 00 Globul GSM operator card (Bulgaria) (Telecommunication) 3B FF 94 00 FF 80 B1 FE 45 1F 03 00 68 D2 76 00 00 28 FE 05 22 31 80 00 90 00 1E Alice Business card (to be used in the modem supplied by an Italian provider) 3B FF 94 00 FF 80 B1 FE 45 1F 03 00 68 D2 76 00 00 28 FF 05 1E 31 80 00 90 00 23 D-Trust Signature Card (www.d-trust.net): - Citizencard of the People of Ulm in Germany (Bürgerkarte) - Qualified Electronic Signature Card (Qualifizierte Signaturkarte) 3B FF 94 00 FF C0 0A 1F 43 80 31 E0 73 36 21 13 57 4A 43 49 1C 31 30 32 1C Giesecke & Devrient - UniverSIM Pegasus 3B FF 95 00 00 C0 0A 1F 43 80 31 E0 73 36 21 13 57 4A 33 0E 02 31 41 00 88 "BASE" SIM card; BASE is a german mobile phone operator, which is a brand of E-Plus, Germany. 3B FF 95 00 FF 40 0A 80 31 00 73 1A 21 13 57 4A 50 48 60 31 41 47 Vodafone 64 KB SIM with Javacard 3B FF 95 00 FF 40 0A 80 31 E8 73 F6 21 13 67 4A 47 48 60 31 42 00 Giesecke & Devrient STARSIM 3B FF 95 00 FF C0 0A 1F 43 80 31 E0 73 36 21 13 57 4A 33 20 07 33 41 41 1F Swisscom 3G SIM card 3B FF 95 00 FF C0 0A 1F 43 80 31 E0 73 F6 21 13 57 4A 33 48 57 31 41 41 E5 MTNL 3G USIM (India) 3B FF 95 00 FF C0 0A 1F 43 80 31 E0 73 F6 21 13 57 4A 33 48 61 32 41 47 D6 GSM SIM (issued by e-plus, Germany) 3B FF 95 00 FF C0 0A 1F 43 80 31 E0 73 F6 21 13 57 4A 55 48 60 32 41 00 F6 GSM SIM from O2 Germany (UMTS ready) from 2005 3B FF 95 00 FF C0 0A 1F 47 80 31 E0 73 F6 21 13 57 4A 33 20 0B 31 41 41 D5 Telenor SIM card (Norway) 3B FF 96 00 FF 81 31 FE 45 65 63 0D 09 71 07 64 00 0D 00 03 54 50 07 01 81 Commerzbank ServiceCard / Maestro / GeldKarte / Cirrus / girocard / CashGroup / electronic cash 3B FF 96 00 FF 81 31 FE 45 65 63 19 01 50 02 80 00 0F 00 2B 00 46 50 11 72 Sparkasse Bremen Germany HBCI DDV 3B FF 96 00 FF 81 31 FE 45 65 63 19 01 50 02 80 00 0F 00 2F 00 25 50 11 15 German Postbank Giro card with electronic cash, Maestro, GeldKarte features 3B FF 96 00 FF C0 0A 1F 43 80 31 E0 73 36 21 13 57 4A 43 49 1C 31 30 32 1E Giesecke & Devrient - UniverSIM Pegasus 3F 05 DC 20 FC 00 01 DigiCash Facility Card 3F 28 00 00 11 14 00 03 68 90 00 SIMEMU - a DIY GSM SIM card - http://simemu.cjb.net/ 3F 2D 00 27 A0 51 82 7D 00 00 00 52 00 0C 90 00 Porta Moedas Multibanco (Portugeese electronic purse) 3F 2F 00 80 59 AF 02 01 01 30 00 00 0A 0E 83 06 9F 12 Gemplus GemXplore 3F 2F 00 80 59 AF 02 01 02 30 00 0C 0A 0E 83 1E 9F 16 GSM-SIM (900MHz) card of the carrier "Mannesmann Mobilfunk" for their network "D2-Privat" - now known as Vodafone Mobilfunk (http://www.vodafone.de/). 3F 2F 00 80 69 AE 02 02 01 36 00 00 0A 0E 83 3E 9F 16 GSM-SIM e-plus (1800MHz) 3F 2F 00 80 69 AF 02 04 01 36 00 02 0A 0E 83 3E 9F 16 GSM-SIM D2 CallYa (900MHz) 3F 2F 00 80 69 AF 03 07 01 59 00 00 0A 0E 83 3E 9F 16 Nokia SIM Ph2 16K Ver2.0 3F 2F 00 80 69 AF 03 07 01 59 00 13 0A 0E 83 3E 9F 16 Old Spanish Telefónica Movistar GSM SIM card manufactured by Gemplus 3F 2F 00 80 69 AF 03 07 03 52 00 00 0A 0E 83 3E 9F 16 GemXplore 98 V1 16K 3F 2F 00 80 69 AF 03 07 03 52 00 0D 0A 0E 83 3E 9F 16 GSM-SIM Debitel D2 (900MHz) 3F 2F 00 80 69 AF 03 07 03 5A 00 15 0A 0E 83 3E 9F 16 Virgin Mobile SIM (Gemplus) 3F 3D 11 00 80 67 28 50 04 02 20 00 00 83 8E 90 00 GSM SIM card of the Austrian provider A1 3F 3E 11 00 46 52 45 43 43 49 41 52 4F 53 53 41 90 00 Trenitalia (Italy) fidelity card "CartaFreccia" (Smartcard) 3F 3F 94 00 80 69 AF 03 07 01 59 00 00 0A 0E 83 3E 9F 16 Finnish SIM card from "Radiolinja" now "Elisa" 3F 65 25 .. .. 04 6C 90 .0 Carte Bancaire (French banking card) 3F 65 25 00 2B 09 62 90 00 Coinamatic SmartyCity smartcard 3F 65 25 00 2B 09 69 90 00 Municipal parking meter card for the City of St. John's, NL, Canada. The city's web site is: http://www.stjohns.ca/index.jsp 3F 65 25 00 2B 09 EB 90 00 Bull Scot 5 3F 65 25 00 2[2,C] 09 [F,6]9 90 00 Sesam Vitale (French health card) 3F 65 25 00 52 09 6A 90 00 French carte Vitale 3F 65 25 00 A[3,4] 09 6A 90 00 Sesam Vitale (French health card) 3F 65 25 08 22 04 68 90 00 France Telecom card (ex Pastel card) 3F 65 25 08 23 04 68 90 00 France Telecom card 3F 65 25 08 33 04 20 90 00 D-Trust card 3F 65 25 08 43 04 6C 90 00 CB visa La Poste France (Oberthur) CB visa Societe Generale France (Oberthur) 3F 65 25 08 63 04 6C 90 00 CB visa La Poste France (Oberthur) CB Master Carte du Crédit Mutuel 3F 65 25 08 65 04 6C 90 00 CB visa Boursorama France (Axalto) 3F 65 35 10 0. 04 6C 90 00 Postcard (Switzerland) 3F 65 35 64 02 04 6C 90 40 Postcard (Switzerland) 3F 67 25 00 21 20 00 0F 68 90 00 Smart Builder "your kit for PC/SC applications" and Bull http://www.cp8.bull.net/ 3F 67 25 00 21 20 00 0F 78 90 00 Bank Nederlandse Gemeenten, BNG Data Services 3F 67 25 00 26 14 00 20 68 90 00 Pay-TV card from Casema Cable Television, Netherland 3F 67 25 00 2A 20 00 0F 68 90 00 Carte Grand Voyageur (SNCF: French train company) 3F 67 25 00 2A 20 00 40 68 9F 00 Swiss Cash card Chipknip SNS Bank (banking card) 3F 67 25 00 2A 20 00 41 68 90 00 ChipKnip 3F 67 25 00 2A 20 00 4[0,1] 68 90 00 Dutch ChipKnip, Proton (chip Bull CC 60 V1, Bull CC 60 V2 or Bull CC 1000) 3F 67 25 04 21 20 00 07 68 90 00 Philips TB100 (C-MOS chip) 3F 67 2F 04 11 20 00 00 68 90 00 BULL HN ITALIA 06/92 - 100.000 - 64MP La Sapienza - Universita' di Roma 3F 69 00 00 24 AF 01 70 01 01 FF 90 00 French GSM SIM card (900MHz) 3F 6A 00 00 00 64 01 50 01 0C 82 01 01 A9 Credit Card café Selecta 3F 6C 00 00 24 A0 30 00 FF 00 00 01 00 04 90 00 Gemplus MCOS 16K DES Sample Card 3F 6C 00 00 25 A0 30 89 76 00 00 04 01 0C 90 00 MCOS 24k EEPROM 3F 6C 00 00 3C A0 30 9E 61 00 00 01 00 04 90 00 Gemplus - British Gas - Gascard 3F 6C 00 00 3C A0 30 A7 58 00 00 01 01 8C 90 00 Rendezvous Series 7 (D2-Mac satellite TV card) 3F 6C 00 00 3D A0 30 BE 41 00 37 01 00 04 90 00 Sberbank (Bank) 3F 6D 00 00 80 31 80 65 B0 05 01 02 5E 83 00 90 00 Gemplus GemXpresso 211PK or 211PK-IS 3F 6D 00 00 80 31 80 65 B0 05 01 02 5E 92 00 90 00 Gemplus GemXpresso 32K 3F 77 18 00 00 C1 14 00 A2 68 90 00 Viacess card HRT (Hrvatska Radio Televizija) 3F 77 18 00 00 C2 14 00 C1 68 90 00 Viaccess Sexview 3F 77 18 00 00 C2 47 40 00 68 90 00 Viacces card: SRG SSR idèe suisse 3F 77 18 00 00 C2 7A 41 02 68 90 00 Viacces card: SRG SSR idée suisse 3F 77 18 00 00 C2 7A 42 02 68 90 00 SCT (Via Access) 3F 77 18 00 00 C2 7A 43 02 68 90 00 DORCEL (Via Access) 3F 77 18 00 00 C2 7A 44 02 68 90 00 XXX Redlight_HD (Viaccess) 3F 77 18 25 00 29 14 00 62 68 90 00 Viaccess card 3F 78 12 25 01 40 B0 03 4A 50 20 48 55 DSS/DTV H 3F 78 13 25 03 40 B0 20 FF FF 4A 50 00 DSS/DTV P4 3F 7E 11 25 05 40 B0 08 00 00 4D 59 00 00 00 53 4B 0B 07 BSkyB Series 11 (DSS satellite TV card) 3F 7E 11 25 05 40 B0 08 00 00 4D 59 00 00 00 53 4B 0B 08 Sky Series 11 (DSS satellite TV card) 3F 7E 11 25 09 40 B0 01 00 00 4D 59 00 00 03 53 4B 0A 01 Sky Series 10 (DSS satellite TV card) 3F 7F 11 25 03 33 B0 09 69 FF 4A 50 70 00 00 56 54 01 00 00 Viasat Baltic (satellite card, NDS) 3F 7F 11 25 05 40 B0 0F 69 FF 4D 59 00 00 00 53 4B 0C 06 00 Sky Series 12 (DSS satellite TV card) 3F 7F 13 25 02 40 B0 0C 69 FF 4A 50 C0 00 00 52 53 00 00 00 Stream Italy NDS 1 (Pay TV) 3F 7F 13 25 03 33 B0 06 69 FF 4A 50 D0 00 00 53 59 00 00 00 Sky 2005/6 (DSS satellite TV card) 3F 7F 13 25 03 33 B0 11 69 FF 4A 50 50 00 00 49 56 01 00 00 Indonesia Videoguard 2 card 3F 7F 13 25 03 38 B0 04 FF FF 4A 50 00 00 29 48 55 .. .. .. DSS/DTV HU 3F 7F 13 25 03 40 B0 0B 69 4C 4A 50 C0 00 00 53 59 00 00 00 Sky Digital (DSS satellite TV card) 3F 7F 13 25 05 40 B0 11 69 FF 4A 50 00 00 00 47 54 00 0C 00 YES DBS Israel Videoguard 090C,090D 3F 96 18 80 01 80 51 00 61 10 30 9F Atmel/Athena T0 Inverse Convention PC/SC Compliance Test Card No. 2 3F EF 00 FF 81 31 .. 45 65 63 Debit card (Germany): ec-cash, GeldKarte(DEM), Maestro, Cirrus 3F FD 13 25 02 50 00 0F 33 B0 0F 69 FF 4A 50 D0 00 00 53 59 02 Sky Digital (DSS satellite TV card) 2009 issue 3F FD 13 25 02 50 80 0F .. B0 .. 69 FF 4A 50 D0 80 00 49 54 03 Sky (Italy) VideoGuard CAM card 3F FD 13 25 02 50 80 0F 33 B0 08 FF FF 4A 50 90 00 00 47 4C 01 Sky (Brasil) VideoGuard CAM card 3F FD 14 25 01 50 00 0F 33 B0 0B FF FF 4A 50 80 00 00 47 58 01 DirecTV card 3F FD 15 25 02 50 80 0F 41 B0 05 69 FF 4A 50 F0 00 00 41 5A 03 astro Pay TV Measat 91.5 E Caid: 0910 Provider: 000000 3F FD 15 25 02 50 80 0F 41 B0 0A 69 FF 4A 50 F0 00 00 50 31 03 Sky Germany [NDS|V14] (098C:000000) (Pay TV) 3F FF 11 25 03 10 80 41 B0 06 69 FF 4A 50 70 00 00 41 5A 01 00 11 Astro (Pay TV) http://www.astro.com.my 3F FF 11 25 03 10 80 41 B0 07 69 FF 4A 50 70 00 00 50 31 01 00 11 Sky (Germany) VideoGuard CAM card (www.sky.de) 3F FF 13 25 02 50 80 0F 54 B0 03 FF FF 4A 50 80 00 00 00 00 47 4C 05 Sky (Brasil) VideoGuard CAM card 3F FF 13 25 03 10 80 33 B0 0E 69 FF 4A 50 70 00 00 49 54 02 00 00 Sky entitlement card 3F FF 13 25 03 10 80 33 B0 10 69 FF 4A 50 70 00 00 4E 5A 01 00 00 NDS SKY NZ (Pay TV) 3F FF 13 25 0B 50 00 0F 33 B0 04 69 FF 4A 50 E0 00 00 53 35 00 00 00 Stream TV (IP television) decoder card, provided by stream.ru ISP in Moscow 3F FF 13 25 0B 50 00 0F 33 B0 04 69 FF 4A 50 E0 00 00 54 38 00 00 00 Stream TV (IP television) decoder card, provided by aon (Telekom Austria) TV card, contains Incorporated NDS Videoguard (TM) security system 3F FF 14 25 03 10 80 33 B0 10 69 FF 4A 50 70 00 00 5A 45 01 00 00 Norwegian DVB-C provider Get (www.get.no). NDS Videoguard security card. 3F FF 14 25 03 10 80 41 B0 01 69 FF 4A 50 70 00 00 5A 48 01 00 00 "D-Smart" NDS from Turkie 3F FF 14 25 03 10 80 41 B0 01 69 FF 4A 50 70 00 00 5A 4B 01 00 00 Pay TV, Viasat Ukraine 3F FF 14 25 03 10 80 41 B0 02 69 FF 4A 50 70 80 00 41 4F 01 00 14 Pay TV 3F FF 14 25 03 10 80 54 B0 01 69 FF 4A 50 70 00 00 4B 57 01 00 00 PayTV Card Kabel BW (www.kabelbw.de), Encryption: NDS by Videoguard, Distribution Standard: DVB-C 3F FF 3F 3F 3F 3F 00 3F 3F FF 3F 3F 3F 3F 3F FF 3F FF 95 3F FF 95 3F FF Premium joker card to see Spanish TDT premium (goltv) 3F FF 95 00 FF 91 81 71 .. 47 00 .. 4. 4. .. .. 3. 3. 3. 20 .. 65 7. .. .. .. .. Nagravision TV CAM card — http://en.wikipedia.org/wiki/Nagravision 3F FF 95 00 FF 91 81 71 .. 47 00 4E 43 4D 45 44 3. 30 3. 20 52 65 76 .. 3. 3. .. Mediaset Premium (Italy) CAM card 3F FF 95 00 FF 91 81 71 64 47 00 44 4E 41 53 50 30 30 33 20 52 65 76 33 32 33 FF Satellite TV Card "Via Digital" (Nagra) 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 30 20 52 65 76 41 32 30 48 DSS/DISH ROM10 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 30 20 52 65 76 41 32 31 49 PayTV card for DishNetwork Sat receiver http://www.dishnetwork.com/ 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 NTL digial TV card (Nagravision) 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 30 36 4E Telewest Broadband (Nagravision) 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 30 42 3A NagraVision card for StarHub Digital Cable DVB-C Singapore 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 30 44 3C NagraVision card for Virgin Media in the UK 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 31 38 30 20 4D 65 72 30 30 30 28 NagraVision (VG04) for Virgin Media (UK) NagraVision 3 for DigiTV (Romania) http://www.rcs-rds.ro/televiziune-digi-tv/satelit 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 30 31 14 TVA Digital - Nagra Vision ID TV-01 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 30 37 12 UPC Austria/UPC-Cablecom Switzerland, digital television encryption card http://www.upc-cablecom.ch/ 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 32 32 15 UM01 card from German Unitymedia cable TV provider 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 34 35 14 Telenet N.V. HDTV Decoder Card Belgium 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 43 33 65 Brazilian NET Digital (Cable TV provider) - Nagra Vision "NASP110 RevA01" 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 34 32 20 52 65 76 47 30 32 16 Polsat Nagra3 Brazil - Claro TV Nagra3 Red 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 34 32 20 52 65 76 47 30 34 10 Nagra 3 Card - Telefonica Brazil Green 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 34 32 20 52 65 76 47 30 36 12 UM02 card from German Unitymedia cable TV provider 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 34 32 20 52 65 76 47 43 34 63 HD+ card used by the satelite company astra for decryption of the HDTV channels of RTL, VOX, Sat1 and ProSieben. Nagravision V3 is used for the encryption. 3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 38 30 20 4D 65 72 4A 30 32 0E Nagra 3 Digital Plus Spain 3F FF 95 00 FF 91 81 71 FE 47 00 54 49 47 45 52 36 30 31 20 52 65 76 4D 38 30 13 Spanish pay TV card for GOLTV 3F FF 95 00 FF 91 81 71 FE 57 00 44 4E 41 53 50 35 35 32 20 44 73 68 4E 30 39 1F Dish Network ROM552 (Pay TV) 3F FF 95 00 FF 91 81 71 FF 47 00 44 4E 41 53 50 53 30 31 20 44 73 68 36 30 39 16 PayTV card for DishNetwork Sat receiver http://www.dishnetwork.com/ Cards were obsoleted in nationwide system update in 2009. 3F FF 95 00 FF 91 81 71 FF 47 00 54 49 47 45 52 30 30 33 20 52 65 76 32 35 30 64 Tivu' Sat (Italy) CAM card www.tivu.tv # do not delete pcsc-tools-1.4.22/Changelog0000644000175000017500000023536312266234521016015 0ustar rousseaurousseau2014-01-17 rousseau * [r6825] README: Release 1.4.22 * [r6824] smartcard_list.txt: 10 new ATRs 2014-01-14 rousseau * [r6823] ATR_analysis: Automatically update the ATR list - Fetch a new ATR file if it was not upgraded in the last 10 hours. - Propose to use http://smartcard-atr.appspot.com/parse to submit a new ATR 2013-12-14 rousseau * [r6808] smartcard_list.txt: 10 new ATRs 2013-11-22 rousseau * [r6789] smartcard_list.txt: 10 new ATRs 2013-10-27 rousseau * [r6788] smartcard_list.txt: 10 new ATRs 2013-10-11 rousseau * [r6768] smartcard_list.txt: 10 new ATRs 2013-09-24 rousseau * [r6756] smartcard_list.txt: 11 new ATRs 2013-09-03 rousseau * [r6745] smartcard_list.txt: 8 new ATRs 2013-08-20 rousseau * [r6731] smartcard_list.txt: 8 new ATRs 2013-08-02 rousseau * [r6704] smartcard_list.txt: 11 new ATRs 2013-07-29 rousseau * [r6690] pcsc_scan.c: Initialize the .cbAtr field Thanks to Frank Morgner for the patch 2013-07-04 rousseau * [r6683] ATR_analysis: If the ATR is not found ask for a description of the smart card I want a description of the smart card, not the reader. 2013-06-30 rousseau * [r6679] smartcard_list.txt: 9 new ATRs 2013-06-18 rousseau * [r6665] smartcard_list.txt: 10 new ATRs 2013-05-26 rousseau * [r6636] smartcard_list.txt: 8 new ATRs 2013-05-14 rousseau * [r6628] smartcard_list.txt: 10 new ATRs 2013-04-23 rousseau * [r6613] smartcard_list.txt: 12 new ATRs 2013-04-09 rousseau * [r6589] smartcard_list.txt: 6 new ATRs 2013-03-27 rousseau * [r6578] smartcard_list.txt: 7 new ATRs 2013-03-16 rousseau * [r6571] smartcard_list.txt: 9 new ATRs 2013-02-27 rousseau * [r6537] smartcard_list.txt: 7 new ATRs 2013-02-15 rousseau * [r6529] smartcard_list.txt: 9 new ATRs 2013-02-05 rousseau * [r6522] smartcard_list.txt: 7 new ATRs 2013-01-29 rousseau * [r6520] smartcard_list.txt: 9 new ATRs 2013-01-20 rousseau * [r6510] smartcard_list.txt: 7 new ATRs 2013-01-08 rousseau * [r6499] smartcard_list.txt: 5 new ATRs 2013-01-03 rousseau * [r6498] smartcard_list.txt: 6 new ATRs 2012-12-21 rousseau * [r6497] smartcard_list.txt: 6 new ATRs 2012-12-07 rousseau * [r6494] README: Release 1.4.21 2012-12-05 rousseau * [r6493] smartcard_list.txt: 3 new ATRs * [r6492] pcsc_scan.1: pcscd is in section 8 not 1 Fixes Debian bug #695094 "wrong man page section in SEE ALSO" 2012-11-27 rousseau * [r6485] smartcard_list.txt: 5 new ATRs * [r6484] pcsc_scan.c: Do not display time if SCardGetStatusChange() returns because of a time out. Mac OS X PC/SC do not support \\?PnP?\Notification so a timeout of 1 second is used. We do not want to have a log line with the time every 1 second. Thanks to Libor Pospíchal for the bug report. 2012-11-06 rousseau * [r6480] smartcard_list.txt: 8 new ATRs 2012-10-11 rousseau * [r6472] smartcard_list.txt: 8 new ATRs 2012-09-30 rousseau * [r6466] smartcard_list.txt: 7 new ATRs 2012-09-07 rousseau * [r6456] smartcard_list.txt: 6 new ATRs 2012-09-03 rousseau * [r6453] smartcard_list.txt: 6 new ATRs 2012-08-26 rousseau * [r6448] smartcard_list.txt: 7 new ATRs 2012-08-19 rousseau * [r6435] smartcard_list.txt: 9 new ATRs 2012-08-02 rousseau * [r6398] smartcard_list.txt: 7 new ATRs 2012-07-27 rousseau * [r6395] smartcard_list.txt: 11 new ATRs 2012-07-01 rousseau * [r6381] sync.sh: Copy the ATR list in ~/.cache/ now 2012-06-17 rousseau * [r6347] smartcard_list.txt: 2 new ATRs reformat 2012-06-16 rousseau * [r6346] README: Release 1.4.20 * [r6345] README: Update copyright date * [r6344] smartcard_list.txt: 3 new ATRs * [r6343] pcsc_scan.c: Fix compiler warning pcsc_scan.c:280:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] * [r6342] pcsc_scan.c: Fix compiler warning pcsc_scan.c:131:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] * [r6341] pcsc_scan.c: Fix compiler warning Use j instead of i for the variable name pcsc_scan.c:128:8: warning: declaration of ‘i’ shadows a previous local [-Wshadow] pcsc_scan.c:78:17: warning: shadowed declaration is here [-Wshadow] * [r6340] pcsc_scan.c: Fix compiler warnings pcsc_scan.c:83:15: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] pcsc_scan.c:84:14: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] pcsc_scan.c:85:18: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] pcsc_scan.c:86:20: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default] * [r6339] pcsc_scan.c: Fix compiler warning pcsc_scan.c:59:6: warning: no previous prototype for ‘usage’ [-Wmissing-prototypes] * [r6338] Makefile: Add arguments to CFLAGS instead of overwritting them It is now possible to define extra CFLAGS before the compilation. Like what is done on Debian using dpkg-buildflags. 2012-06-13 rousseau * [r6335] README: update 1.4.19 description * [r6334] README: Release 1.4.19 * [r6333] ATR_analysis: Update version and copyright date * [r6332] ATR_analysis: Use XDG_CACHE_HOME env variable http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html defines the default cache directory and the use of XDG_CACHE_HOME to override it. The smartcard_list.txt file is now searched in ~/.cache/ by default Thanks to Diego Elio Pettenò for the idea. 2012-06-12 rousseau * [r6330] smartcard_list.txt: 8 new ATRs 2012-06-09 rousseau * [r6329] smartcard_list.txt: 10 new ATRs 2012-06-05 rousseau * [r6324] smartcard_list.txt: 10 new ATRs 2012-05-31 rousseau * [r6314] smartcard_list.txt: 6 new ATRs 2012-05-18 rousseau * [r6304] smartcard_list.txt: 7 new ATRs 2012-04-30 rousseau * [r6288] smartcard_list.txt: 6 new ATRs 2012-04-18 rousseau * [r6276] smartcard_list.txt: 9 new ATRs 2012-04-04 rousseau * [r6257] smartcard_list.txt: 8 new ATRs 2012-03-21 rousseau * [r6242] smartcard_list.txt: 5 new ATRs 2012-03-07 rousseau * [r6237] smartcard_list.txt: 6 new ATRs 2012-02-19 rousseau * [r6228] smartcard_list.txt: 7 new ATRs 2012-01-26 rousseau * [r6202] smartcard_list.txt: 7 new ATRs 2012-01-17 rousseau * [r6180] smartcard_list.txt: 5 new ATRs 2012-01-10 rousseau * [r6167] smartcard_list.txt: 14 new ATRs 2012-01-05 rousseau * [r6166] smartcard_list.txt: 3 new ATRs 2011-12-30 rousseau * [r6153] smartcard_list.txt: 4 new ATRs 2011-12-18 rousseau * [r6150] README: release 1.4.18 * [r6149] scriptor: Display lines of 16 bytes instead of 24 * [r6148] gscriptor: Display bytes of value 0x20 as ' ' instead of '.' Thanks to Alain SAURAT for the patch * [r6147] gscriptor: Display hex dumps in lines of 16 bytes instead of 17 Thanks to Alain SAURAT for the patch * [r6146] smartcard_list.txt: 3 new ATRs 2011-12-15 rousseau * [r6140] smartcard_list.txt: 1 new ATR + generalisation of the Reinet SCT WOK card 2011-12-14 rousseau * [r6138] smartcard_list.txt: 1 new ATR 2011-12-10 rousseau * [r6137] smartcard_list.txt: 1 new ATR 2011-12-07 rousseau * [r6136] smartcard_list.txt: 4 new ATRs 2011-12-01 rousseau * [r6127] smartcard_list.txt: 1 new ATR 2011-11-29 rousseau * [r6121] smartcard_list.txt: 2 new ATRs 2011-11-25 rousseau * [r6116] sort_smartcard_list.py: Do not mix spaces and tabs * [r6115] smartcard_list.txt: 3 new ATRs and reorder 2011-11-23 rousseau * [r6114] smartcard_list.txt: 1 new ATR 2011-11-15 rousseau * [r6106] smartcard_list.txt: 8 new ATRs 2011-11-06 rousseau * [r6101] smartcard_list.txt: 3 new ATRs 2011-10-26 rousseau * [r6084] smartcard_list.txt: 2 new ATRs 2011-10-23 rousseau * [r6068] smartcard_list.txt: 2 new ATRs 2011-10-18 rousseau * [r6048] smartcard_list.txt: Fix description * [r6047] smartcard_list.txt: 3 new ATRs 2011-10-16 rousseau * [r6046] smartcard_list.txt: 1 new ATR 2011-10-14 rousseau * [r6039] smartcard_list.txt: 1 new ATR 2011-10-11 rousseau * [r6031] smartcard_list.txt: Add card description * [r6030] smartcard_list.txt: 2 new ATRs 2011-10-06 rousseau * [r6004] smartcard_list.txt: 2 new ATRs 2011-10-04 rousseau * [r5998] smartcard_list.txt: update URL in card description 2011-09-24 rousseau * [r5966] smartcard_list.txt: 1 new ATR 2011-09-20 rousseau * [r5958] smartcard_list.txt: 1 new ATR 2011-09-17 rousseau * [r5957] smartcard_list.txt: 2 new ATRs 2011-09-16 rousseau * [r5956] smartcard_list.txt: 1 new ATR 2011-09-09 rousseau * [r5950] smartcard_list.txt: 11 ATRs 2011-08-29 rousseau * [r5920] smartcard_list.txt: 1 new ATR 2011-08-28 rousseau * [r5918] smartcard_list.txt: 1 new ATR 2011-08-27 rousseau * [r5917] smartcard_list.txt: 1 new ATR * [r5913] smartcard_list.txt: 3 new ATRs 2011-08-19 rousseau * [r5892] pcsc_scan.c: Remove extra tab 2011-08-17 rousseau * [r5889] smartcard_list.txt: 2 new ATRs 2011-08-09 rousseau * [r5888] smartcard_list.txt: 1 new ATR 2011-08-08 rousseau * [r5884] smartcard_list.txt: 1 new ATR * [r5883] smartcard_list.txt: 1 new ATR 2011-08-03 rousseau * [r5876] smartcard_list.txt: 3 new ATRs 2011-07-17 rousseau * [r5872] smartcard_list.txt: 2 new ATRs 2011-07-05 rousseau * [r5823] smartcard_list.txt: 3 new ATRs 2011-07-02 rousseau * [r5820] smartcard_list.txt: 1 new ATR 2011-06-30 rousseau * [r5817] smartcard_list.txt: 1 new ATR 2011-06-16 rousseau * [r5798] smartcard_list.txt: 1 new ATR 2011-06-15 rousseau * [r5792] smartcard_list.txt: Update copyright date * [r5791] smartcard_list.txt: 1 new ATR 2011-06-03 rousseau * [r5777] smartcard_list.txt: 1 new ATR 2011-05-28 rousseau * [r5768] smartcard_list.txt: 3 new ATRs 2011-05-27 rousseau * [r5767] smartcard_list.txt: 2 new ATRs 2011-05-17 rousseau * [r5760] smartcard_list.txt: 2 new ATRs 2011-05-14 rousseau * [r5748] smartcard_list.txt: 3 new ATRs 2011-05-07 rousseau * [r5717] smartcard_list.txt: 5 new ATRs 2011-04-21 rousseau * [r5702] smartcard_list.txt: 1 new ATR 2011-04-19 rousseau * [r5701] smartcard_list.txt: 2 new ATRs 2011-04-17 rousseau * [r5700] smartcard_list.txt: 1 new ATR 2011-04-12 rousseau * [r5696] smartcard_list.txt: 1 new ATR 2011-03-30 rousseau * [r5680] smartcard_list.txt: 3 new ATRs 2011-03-25 rousseau * [r5670] smartcard_list.txt: fix an ATR * [r5669] smartcard_list.txt: 4 new ATRs 2011-03-22 rousseau * [r5665] smartcard_list.txt: 1 new ATR 2011-03-21 rousseau * [r5664] smartcard_list.txt: 2 new ATRs 2011-03-18 rousseau * [r5661] smartcard_list.txt: 10 new ATRs 2011-03-09 rousseau * [r5648] smartcard_list.txt: 1 new ATR 2011-03-05 rousseau * [r5642] smartcard_list.txt: 4 new ATRs 2011-02-25 rousseau * [r5641] smartcard_list.txt: 1 new ATR 2011-02-24 rousseau * [r5635] smartcard_list.txt: 1 new ATR 2011-02-23 rousseau * [r5631] smartcard_list.txt: 1 new ATR * [r5630] smartcard_list.txt: 1 new ATR 2011-02-18 rousseau * [r5619] smartcard_list.txt: 2 new ATRs 2011-02-17 rousseau * [r5618] smartcard_list.txt: 2 new ATRs 2011-02-16 rousseau * [r5613] smartcard_list.txt: 1 new ATR 2011-02-15 rousseau * [r5598] smartcard_list.txt: 1 new ATR 2011-02-11 rousseau * [r5591] smartcard_list.txt: 1 new ATR 2011-02-10 rousseau * [r5590] smartcard_list.txt: 5 new ATRs 2011-02-09 rousseau * [r5588] smartcard_list.txt: 1 new ATR 2011-02-08 rousseau * [r5585] smartcard_list.txt: 4 new ATRs 2011-02-04 rousseau * [r5577] smartcard_list.txt: 2 new ATRs 2011-02-02 rousseau * [r5576] smartcard_list.txt: 1 new ATR 2011-01-29 rousseau * [r5571] smartcard_list.txt: 1 new ATR * [r5564] smartcard_list.txt: 5 new ATRs 2011-01-28 rousseau * [r5561] smartcard_list.txt: 2 new ATRs 2011-01-26 rousseau * [r5553] smartcard_list.txt: 1 new ATR 2011-01-25 rousseau * [r5552] smartcard_list.txt: 1 new ATR * [r5551] smartcard_list.txt: 1 new ATR 2011-01-19 rousseau * [r5529] smartcard_list.txt: 1 new ATR * [r5526] smartcard_list.txt: 2 new ATRs 2011-01-17 rousseau * [r5512] smartcard_list.txt: 1 new ATR 2011-01-14 rousseau * [r5511] smartcard_list.txt: 1 new ATR * [r5510] smartcard_list.txt: update 1 ATR description 2011-01-13 rousseau * [r5503] smartcard_list.txt: 1 new ATR * [r5502] smartcard_list.txt: 1 new ATR 2011-01-08 rousseau * [r5497] smartcard_list.txt: 1 new ATR 2011-01-06 rousseau * [r5493] smartcard_list.txt: 1 new ATR * [r5492] smartcard_list.txt: 1 new ATR 2011-01-05 rousseau * [r5487] pcsc_scan.c: Display a timestamp only for each event, not for each reader on the same event. * [r5486] pcsc_scan.c: Reformat * [r5485] pcsc_scan.c: Display if reader PnP mechanism is used * [r5484] pcsc_scan.c: Do not print an extra \n if the ATR is not parsed/analysed * [r5483] pcsc_scan.c: Update copyright date * [r5482] smartcard_list.txt: 2 new ATRs 2011-01-04 rousseau * [r5479] smartcard_list.txt: 5 new ATRs 2010-12-20 rousseau * [r5460] smartcard_list.txt: 1 new ATR 2010-12-19 rousseau * [r5459] smartcard_list.txt: 2 new ATRs 2010-12-15 rousseau * [r5454] smartcard_list.txt: 1 new ATR * [r5453] smartcard_list.txt: 1 new ATR 2010-12-11 rousseau * [r5439] pcsc_scan.c: update copyright dates 2010-12-10 rousseau * [r5438] smartcard_list.txt: 1 new ATR 2010-12-09 rousseau * [r5435] smartcard_list.txt: 1 new ATR 2010-12-08 rousseau * [r5433] smartcard_list.txt: Add an ATR documentation 2010-12-07 rousseau * [r5432] smartcard_list.txt: 5 new ATRs 2010-12-01 rousseau * [r5424] smartcard_list.txt: 1 new ATR 2010-11-27 rousseau * [r5421] smartcard_list.txt: 1 new ATR 2010-11-26 rousseau * [r5419] smartcard_list.txt: 1 new ATR 2010-11-24 rousseau * [r5418] smartcard_list.txt: 3 new ATRs * [r5417] smartcard_list.txt: 2 new ATRs 2010-11-23 rousseau * [r5416] smartcard_list.txt: Fix 1 ATR 2010-11-21 rousseau * [r5411] sort_smartcard_list.py: Check for trailing spaces and tabs * [r5410] smartcard_list.txt: 2 new ATRs 2010-11-20 rousseau * [r5408] smartcard_list.txt: fix trailing space 2010-11-19 rousseau * [r5407] smartcard_list.txt: 1 new ATR * [r5406] smartcard_list.txt: 1 new ATR 2010-11-17 rousseau * [r5405] smartcard_list.txt: 2 new ATRs 2010-11-10 rousseau * [r5395] smartcard_list.txt: 1 new ATR 2010-11-09 rousseau * [r5394] smartcard_list.txt: 4 new ATRs 2010-11-05 rousseau * [r5380] smartcard_list.txt: 1 new ATR 2010-11-04 rousseau * [r5374] smartcard_list.txt: update 3 descriptions 2010-11-01 rousseau * [r5369] smartcard_list.txt: 1 new ATR 2010-10-25 rousseau * [r5353] smartcard_list.txt: 1 new ATR 2010-10-21 rousseau * [r5327] smartcard_list.txt: add a card description 2010-10-20 rousseau * [r5326] smartcard_list.txt: 1 new ATR 2010-10-10 rousseau * [r5286] smartcard_list.txt: 1 new ATR 2010-10-08 rousseau * [r5285] smartcard_list.txt: 2 new ATRs 2010-09-30 rousseau * [r5272] smartcard_list.txt: 1 new ATR 2010-09-28 rousseau * [r5271] smartcard_list.txt: 1 new ATR 2010-09-23 rousseau * [r5270] smartcard_list.txt: 1 new ATR 2010-09-19 rousseau * [r5261] smartcard_list.txt: 1 new ATR 2010-09-11 rousseau * [r5250] smartcard_list.txt: 1 new ATR * [r5249] smartcard_list.txt: Add card documentation 2010-09-09 rousseau * [r5248] smartcard_list.txt: Add a card description 2010-09-08 rousseau * [r5247] smartcard_list.txt: 1 new ATR 2010-09-04 rousseau * [r5243] smartcard_list.txt: update copyright date * [r5242] smartcard_list.txt: 1 new ATR 2010-09-02 rousseau * [r5228] smartcard_list.txt: 1 new ATR * [r5220] pcsc_scan.c: Correctly detect reader Plug and Play support 2010-08-31 rousseau * [r5209] smartcard_list.txt: 1 new ATR 2010-08-30 rousseau * [r5203] smartcard_list.txt: 1 new ATR 2010-08-29 rousseau * [r5201] smartcard_list.txt: 1 new ATR 2010-08-28 rousseau * [r5200] smartcard_list.txt: 1 new ATR 2010-08-25 rousseau * [r5184] smartcard_list.txt: 1 new ATR 2010-08-23 rousseau * [r5180] smartcard_list.txt: fix typo in card description 2010-08-18 rousseau * [r5162] README: release 1.4.17 * [r5161] pcsc_scan.c: Use SCARD_READERSTATE instead of SCARD_READERSTATE_A since it is no more defined in pcsc-lite >= 1.6.2 2010-08-17 rousseau * [r5158] smartcard_list.txt: 1 new ATR 2010-08-14 rousseau * [r5131] smartcard_list.txt: add a card description 2010-08-11 rousseau * [r5122] smartcard_list.txt: 2 new ATRs 2010-07-24 rousseau * [r5068] smartcard_list.txt: 5 new ATRs 2010-07-08 rousseau * [r5064] smartcard_list.txt: 1 new ATR 2010-07-02 rousseau * [r5063] smartcard_list.txt: 1 new ATR 2010-07-01 rousseau * [r5053] smartcard_list.txt: update card description 2010-06-30 rousseau * [r5049] smartcard_list.txt: update card description 2010-06-29 rousseau * [r5048] smartcard_list.txt: 1 new ATR 2010-06-27 rousseau * [r5042] smartcard_list.txt: remove space at end of line * [r5041] smartcard_list.txt: 2 new ATRs 2010-06-22 rousseau * [r5035] smartcard_list.txt: 1 new ATR 2010-06-20 rousseau * [r5018] smartcard_list.txt: 1 new ATR 2010-06-12 rousseau * [r4990] smartcard_list.txt: Add an ATR description 2010-06-10 rousseau * [r4989] smartcard_list.txt: 1 new ATR 2010-06-08 rousseau * [r4984] smartcard_list.txt: 3 new ATRs 2010-06-04 rousseau * [r4976] smartcard_list.txt: 1 new ATR 2010-05-28 rousseau * [r4966] smartcard_list.txt: 2 new ATRs 2010-05-25 rousseau * [r4962] smartcard_list.txt: 1 new ATR 2010-05-24 rousseau * [r4959] smartcard_list.txt: 1 new ATR 2010-05-20 rousseau * [r4958] smartcard_list.txt: 1 new ATR 2010-05-18 rousseau * [r4955] smartcard_list.txt: add a card description 2010-05-15 rousseau * [r4942] smartcard_list.txt: 2 new ATRs 2010-05-08 rousseau * [r4935] smartcard_list.txt: 1 new ATR 2010-05-07 rousseau * [r4929] smartcard_list.txt: 1 new ATR 2010-05-05 rousseau * [r4922] smartcard_list.txt: 1 new ATR 2010-05-04 rousseau * [r4919] smartcard_list.txt: 2 new ATRs 2010-04-28 rousseau * [r4898] smartcard_list.txt: update 1 ATR 2010-04-25 rousseau * [r4895] smartcard_list.txt: 1 new ATR 2010-04-24 rousseau * [r4892] smartcard_list.txt: 3 new ATRs 2010-04-22 rousseau * [r4891] smartcard_list.txt: 1 new ATR * [r4890] smartcard_list.txt: 1 new ATR 2010-04-20 rousseau * [r4887] smartcard_list.txt: 1 new ATR 2010-04-17 rousseau * [r4880] smartcard_list.txt: 2 new ATRs 2010-04-09 rousseau * [r4868] smartcard_list.txt: 4 new ATRs 2010-04-06 rousseau * [r4853] smartcard_list.txt: 1 new ATR 2010-04-02 rousseau * [r4852] smartcard_list.txt: 68 new ATRs families from the PCSC standard, Part 3, Chapter 3.1.3.2.3.2, and Part 3 Supplemental Document 2010-03-25 rousseau * [r4842] smartcard_list.txt: 1 new ATR 2010-03-24 rousseau * [r4841] smartcard_list.txt: 1 new ATR 2010-03-23 rousseau * [r4840] smartcard_list.txt: 1 new ATR 2010-03-21 rousseau * [r4837] smartcard_list.txt: 1 new ATR 2010-03-19 rousseau * [r4835] smartcard_list.txt: 1 new ATR 2010-03-17 rousseau * [r4828] smartcard_list.txt: use . instead of ? in a pattern matching * [r4827] smartcard_list.txt: generalize an ATR * [r4826] smartcard_list.txt: 3 new ATRs 2010-03-09 rousseau * [r4811] smartcard_list.txt: 1 new ATR 2010-03-06 rousseau * [r4798] smartcard_list.txt: 1 new ATR * [r4797] smartcard_list.txt: 2 new ATRs 2010-03-04 rousseau * [r4794] smartcard_list.txt: 3 new ATRs 2010-03-03 rousseau * [r4787] smartcard_list.txt: 1 new ATR 2010-03-02 rousseau * [r4786] smartcard_list.txt: 1 new ATR * [r4785] smartcard_list.txt: correct an ATR 2010-02-26 rousseau * [r4782] smartcard_list.txt: 1 new ATR 2010-02-23 rousseau * [r4774] smartcard_list.txt: 1 new ATR * [r4770] smartcard_list.txt: 4 new ATRs 2010-02-22 rousseau * [r4767] smartcard_list.txt: avoid french in card descriptions Thanks to Martin Paljak for the bug report 2010-02-20 rousseau * [r4764] smartcard_list.txt: 3 new ATRs 2010-02-12 rousseau * [r4763] smartcard_list.txt: 2 new ATRs 2010-02-11 rousseau * [r4752] smartcard_list.txt: 2 new ATRs 2010-02-03 rousseau * [r4706] smartcard_list.txt: 1 new ATR 2010-01-28 rousseau * [r4693] smartcard_list.txt: 1 new ATR 2010-01-26 rousseau * [r4688] smartcard_list.txt: relax an ATR matching pattern 2010-01-24 rousseau * [r4687] smartcard_list.txt: 2 new ATRs 2010-01-22 rousseau * [r4686] smartcard_list.txt: 1 new ATR 2010-01-20 rousseau * [r4679] smartcard_list.txt: 1 new ATR 2010-01-19 rousseau * [r4678] smartcard_list.txt: 1 new ATR * [r4677] smartcard_list.txt: 1 new ATR 2010-01-13 rousseau * [r4664] smartcard_list.txt: 1 new ATR * [r4663] smartcard_list.txt: generalize the Feitian PKI ATR 2010-01-12 rousseau * [r4661] README: release 1.4.16 * [r4660] create_distrib.sh: ignore ".svn" instead of "CVS" files * [r4659] create_distrib.sh: use Changelog instead of (default) ChangeLog * [r4658] create_distrib.sh: use svn2cl instead of rcs2log now we are on subversion * [r4657] gscriptor: update copyright date * [r4656] gscriptor: ReaderConfig(): escape metacharacters []() in the reader name when using reader name as a pattern matching 2010-01-09 rousseau * [r4648] smartcard_list.txt: 1 new ATR * [r4647] smartcard_list.txt: 1 new ATR 2010-01-08 rousseau * [r4643] smartcard_list.txt: 9 new ATRs 2010-01-06 rousseau * [r4642] smartcard_list.txt: simplify the Austrian Quick E-purse cards. Every quick card's identification number is BCD encoded in the four contiguous free bytes in the ATR regular expression 2010-01-05 rousseau * [r4641] smartcard_list.txt: 5 new ATRs 2010-01-01 rousseau * [r4626] smartcard_list.txt: 1 new ATR 2009-12-31 rousseau * [r4624] smartcard_list.txt: 11 new ATRs 2009-12-20 rousseau * [r4623] smartcard_list.txt: 1 new ATR 2009-12-18 rousseau * [r4622] smartcard_list.txt: reformat 2009-12-12 rousseau * [r4609] smartcard_list.txt: 1 new ATR 2009-12-09 rousseau * [r4595] smartcard_list.txt: 2 new ATRs 2009-11-28 rousseau * [r4581] smartcard_list.txt: 1 new ATR 2009-11-27 rousseau * [r4578] smartcard_list.txt: 2 new ATRs 2009-11-25 rousseau * [r4572] smartcard_list.txt: remove trailing spaces * [r4571] smartcard_list.txt: 1 new ATR 2009-11-22 rousseau * [r4565] smartcard_list.txt: 1 new ATR 2009-11-21 rousseau * [r4564] smartcard_list.txt: add 2 ATR descriptions 2009-11-19 rousseau * [r4563] smartcard_list.txt: 1 new ATR 2009-11-18 rousseau * [r4555] smartcard_list.txt: 1 new ATR 2009-11-13 rousseau * [r4546] smartcard_list.txt: 1 new ATR 2009-11-11 rousseau * [r4543] smartcard_list.txt: 1 new ATR 2009-11-08 rousseau * [r4542] smartcard_list.txt: 1 new ATR * [r4541] smartcard_list.txt: add an ATR description 2009-11-06 rousseau * [r4539] smartcard_list.txt: 2 new ATRs 2009-10-28 rousseau * [r4526] smartcard_list.txt: 1 new ATR 2009-10-25 rousseau * [r4506] smartcard_list.txt: 6 new ATRs 2009-10-24 rousseau * [r4504] smartcard_list.txt: 1 new ATR 2009-10-23 rousseau * [r4503] smartcard_list.txt: 1 new ATR 2009-10-21 rousseau * [r4500] smartcard_list.txt: 1 new ATR 2009-10-17 rousseau * [r4495] smartcard_list.txt: 1 new ATR 2009-10-13 rousseau * [r4492] smartcard_list.txt: 1 new ATR 2009-10-11 rousseau * [r4478] smartcard_list.txt: 2 new ATRs 2009-10-09 rousseau * [r4475] smartcard_list.txt: 1 new ATR 2009-10-06 rousseau * [r4439] smartcard_list.txt: 1 new ATR 2009-10-04 rousseau * [r4424] smartcard_list.txt: 1 new ATR 2009-10-01 rousseau * [r4412] smartcard_list.txt: 1 new ATR 2009-09-29 rousseau * [r4409] smartcard_list.txt: 2 new ATRs 2009-09-26 rousseau * [r4398] smartcard_list.txt: 1 new ATR 2009-09-23 rousseau * [r4396] smartcard_list.txt: 1 new ATR 2009-09-22 rousseau * [r4394] smartcard_list.txt: 3 new ATRs 2009-09-09 rousseau * [r4379] smartcard_list.txt: 1 new ATR 2009-09-08 rousseau * [r4377] smartcard_list.txt: 3 new ATRs 2009-09-05 rousseau * [r4376] smartcard_list.txt: 1 new ATR 2009-08-23 rousseau * [r4365] smartcard_list.txt: add URL for Carta regionale dei servizi - Regione Sicilia * [r4364] smartcard_list.txt: 1 new ATR * [r4363] smartcard_list.txt: 1 new ATR 2009-07-31 rousseau * [r4362] smartcard_list.txt: 1 new ATR * [r4361] smartcard_list.txt: 1 new ATR 2009-07-29 rousseau * [r4351] smartcard_list.txt: replace ' ' by ' ' 2009-07-16 rousseau * [r4317] smartcard_list.txt: 1 new ATR 2009-07-15 rousseau * [r4314] smartcard_list.txt: 3 new ATRs 2009-07-05 rousseau * [r4301] smartcard_list.txt: 1 new ATR 2009-07-04 rousseau * [r4300] smartcard_list.txt: 1 new ATR 2009-06-25 rousseau * [r4275] smartcard_list.txt: 2 new ATRs 2009-06-21 rousseau * [r4268] smartcard_list.txt: correct typos 2009-06-20 rousseau * [r4265] smartcard_list.txt: 10 ATRs 2009-06-16 rousseau * [r4261] smartcard_list.txt: 1 new ATR 2009-06-11 rousseau * [r4253] smartcard_list.txt: 1 new ATR 2009-06-10 rousseau * [r4251] smartcard_list.txt: 2 new ATRs 2009-06-09 rousseau * [r4250] smartcard_list.txt: remove extra space character 2009-05-26 rousseau * [r4225] smartcard_list.txt: 5 new ATRs 2009-05-21 rousseau * [r4221] smartcard_list.txt: 1 ATR description 2009-05-20 rousseau * [r4214] smartcard_list.txt: 1 new ATR 2009-05-13 rousseau * [r4202] smartcard_list.txt: 2 new ATRs 2009-05-10 rousseau * [r4194] smartcard_list.txt: 1 new ATR * [r4193] sort_smartcard_list.py, sync.sh: new files * [r4192] ATR_analysis, ATR_analysis.1p, LICENCE, MANIFEST, Makefile, README, TODO, create_distrib.sh, gscriptor, gscriptor.1p, gscriptor.desktop, gscriptor.gtk1.2, pcsc_scan.1, pcsc_scan.c, scriptor, scriptor.1p, smartcard_list.txt, test.script, trunk: cleanup * [r4191] branches, tags: cleanup * [r4190] pcsc-tools: move pcsc-tools tags in tags/ * [r4189] pcsc-tools, pcsc-tools/README: cleanup * [r4188] trunk/ATR_analysis, trunk/Makefile, trunk/README, trunk/create_distrib.sh, trunk/gscriptor, trunk/gscriptor.gtk1.2, trunk/pcsc_scan.c, trunk/scriptor, trunk/smartcard_list.txt: svn propset svn:keywords Id 2009-05-06 rousseau * [r4187] trunk/smartcard_list.txt: 4 new ATRs 2009-04-29 rousseau * [r4186] trunk/smartcard_list.txt: 1 new ATR 2009-04-23 rousseau * [r4185] trunk/smartcard_list.txt: 1 new ATR 2009-04-19 rousseau * [r4184] trunk/smartcard_list.txt: 1 new ATR 2009-04-17 rousseau * [r4183] trunk/smartcard_list.txt: update card description * [r4182] trunk/smartcard_list.txt: reorder * [r4181] trunk/smartcard_list.txt: reorder * [r4180] trunk/smartcard_list.txt: 1 new ATR 2009-04-11 rousseau * [r4179] trunk/smartcard_list.txt: 1 new ATR 2009-04-08 rousseau * [r4178] trunk/smartcard_list.txt: 3 new ATRs 2009-04-04 rousseau * [r4177] trunk/smartcard_list.txt: 1 new ATR * [r4176] trunk/smartcard_list.txt: 1 new ATR 2009-04-02 rousseau * [r4175] trunk/smartcard_list.txt: 1 new ATR 2009-03-31 rousseau * [r4174] trunk/smartcard_list.txt: 3 new ATRs 2009-03-25 rousseau * [r4173] trunk/smartcard_list.txt: 1 new ATR 2009-03-20 rousseau * [r4172] trunk/Makefile: use immediate evaluation ":=" instead of deferred evaluation "=" 2009-03-14 rousseau * [r4171] trunk/smartcard_list.txt: 1 new ATR 2009-03-11 rousseau * [r4170] trunk/smartcard_list.txt: 1 new ATR 2009-03-10 rousseau * [r4169] trunk/smartcard_list.txt: 1 new ATR 2009-03-07 rousseau * [r4168] trunk/smartcard_list.txt: 1 new ATR 2009-02-28 rousseau * [r4167] trunk/smartcard_list.txt: 1 new ATR 2009-02-18 rousseau * [r4166] trunk/smartcard_list.txt: merge 2 ATRs 2009-02-17 rousseau * [r4165] trunk/smartcard_list.txt: 1 new ATR 2009-02-11 rousseau * [r4164] trunk/smartcard_list.txt: 1 new ATR * [r4163] trunk/smartcard_list.txt: update copyright to 2009 * [r4162] trunk/smartcard_list.txt: 4 new ATRs 2009-02-06 rousseau * [r4161] trunk/README, trunk/smartcard_list.txt: 4 new ATRs 2009-02-03 rousseau * [r4160] trunk/smartcard_list.txt: 1 new ATR 2009-01-30 rousseau * [r4159] trunk/smartcard_list.txt: 1 new ATR 2009-01-29 rousseau * [r4158] trunk/smartcard_list.txt: 1 new ATR 2009-01-27 rousseau * [r4157] trunk/smartcard_list.txt: 3 new ATRs 2009-01-25 rousseau * [r4156] trunk/smartcard_list.txt: 1 new ATR 2009-01-24 rousseau * [r4155] trunk/smartcard_list.txt: 1 new ATR 2009-01-22 rousseau * [r4154] trunk/smartcard_list.txt: 1 new ATR name 2009-01-17 rousseau * [r4153] trunk/ATR_analysis: use curl instead of wget on Darwin * [r4152] trunk/smartcard_list.txt: 1 new ATR 2009-01-16 rousseau * [r4151] trunk/smartcard_list.txt: 1 new ATR 2009-01-15 rousseau * [r4150] trunk/pcsc_scan.c: check for PnP support at run time instead of using a #define 2009-01-14 rousseau * [r4149] trunk/smartcard_list.txt: 1 new ATR 2009-01-09 * [r4148] tags/rel-1_4_15: This commit was manufactured by cvs2svn to create tag 'rel-1_4_15'. 2009-01-09 rousseau * [r4147] trunk/README: release 1.4.15 2009-01-06 rousseau * [r4146] trunk/pcsc_scan.c: the last reader in the array is at [nbReaders-1] not [nbReaders] * [r4145] trunk/pcsc_scan.c: allocate nbReaders+1 instead of nbReaders reader since we now also have the "\\?PnP?\Notification" reader * [r4144] trunk/pcsc_scan.c: use SCARD_STATE_UNAWARE instead of SCARD_STATE_EMPTY for an uninitialised state * [r4143] trunk/pcsc_scan.c: initialise dwReaders 2009-01-03 rousseau * [r4142] trunk/smartcard_list.txt: 2 new ATRs * [r4141] trunk/pcsc_scan.c: check the number of readers instead of just SCARD_E_NO_READERS_AVAILABLE (needed for old versions of pcsc-lite) * [r4140] trunk/pcsc_scan.c: do not check for the \\?PnP?\Notification reader if PNP is not used. SCardGetStatusChange() returns immediately for an unknown reader * [r4139] trunk/pcsc_scan.c: use \\?PnP?\Notification to detect reader add/remove * [r4138] trunk/pcsc_scan.c: change copyright date * [r4137] trunk/pcsc_scan.c: use a macro for test_rv() to use the colors * [r4136] trunk/pcsc_scan.c: use test_rv() instead of LOG() * [r4135] trunk/pcsc_scan.c: use "\\?PnP?\Notification" mechanism when possible * [r4134] trunk/pcsc_scan.c: check for SCARD_E_NO_READERS_AVAILABLE to detect if no readers are present 2009-01-02 rousseau * [r4133] trunk/smartcard_list.txt: 1 new ATR 2008-12-31 rousseau * [r4132] trunk/ATR_analysis: typo in Mhz * [r4131] trunk/ATR_analysis: update copyright date * [r4130] trunk/ATR_analysis: typo in previous patch * [r4129] trunk/ATR_analysis: also display the max frequency associated with Fi * [r4128] trunk/ATR_analysis: check if Fi is RFU when calculating baud rate * [r4127] trunk/ATR_analysis: default clock of CCID readers is, in general, 4 MHz instead of 3.57 MHz * [r4126] trunk/ATR_analysis: add value for Di=7 (7816-3:2006 page 19) 2008-12-30 rousseau * [r4125] trunk/smartcard_list.txt: replace spaces with tab * [r4124] trunk/smartcard_list.txt: 3 new ATRs 2008-12-29 rousseau * [r4123] trunk/smartcard_list.txt: 1 new card description 2008-12-28 rousseau * [r4122] trunk/smartcard_list.txt: 1 new ATR * [r4121] trunk/smartcard_list.txt: 1 new ATR 2008-12-16 rousseau * [r4120] trunk/smartcard_list.txt: 1 new ATR 2008-12-12 rousseau * [r4119] trunk/smartcard_list.txt: 1 new ATR * [r4118] trunk/smartcard_list.txt: 1 new ATR 2008-12-09 rousseau * [r4117] trunk/smartcard_list.txt: 3 new ATRs 2008-12-04 rousseau * [r4116] trunk/smartcard_list.txt: 4 new ATRs 2008-11-29 rousseau * [r4115] trunk/smartcard_list.txt: 1 new ATR 2008-11-28 rousseau * [r4114] trunk/smartcard_list.txt: 1 new ATR 2008-11-23 rousseau * [r4113] trunk/gscriptor: WriteConfigFile: do not save undefined values * [r4112] trunk/gscriptor: use defined instead of exists to check if $hConfig{'reader'} is defined * [r4111] trunk/smartcard_list.txt: 1 new ATR 2008-11-18 rousseau * [r4110] trunk/smartcard_list.txt: 1 new ATR * [r4109] trunk/smartcard_list.txt: 1 new ATR 2008-11-15 rousseau * [r4108] trunk/smartcard_list.txt: 1 new ATR 2008-11-09 rousseau * [r4107] trunk/smartcard_list.txt: add URL for Infineon Mifare SLE 66R35 2008-11-05 rousseau * [r4106] trunk/smartcard_list.txt: 1 new ATR * [r4105] trunk/smartcard_list.txt: 3 new ATRs 2008-11-01 rousseau * [r4104] trunk/pcsc_scan.c, trunk/smartcard_list.txt: 1 new ATR 2008-10-22 rousseau * [r4103] trunk/smartcard_list.txt: 1 new ATR 2008-10-08 rousseau * [r4102] trunk/ATR_analysis: request a card description in english * [r4101] trunk/smartcard_list.txt: 1 new ATR * [r4100] trunk/smartcard_list.txt: 1 new ATR 2008-10-01 rousseau * [r4099] trunk/smartcard_list.txt: 1 new ATR 2008-09-30 rousseau * [r4098] trunk/smartcard_list.txt: 1 new ATR 2008-09-27 rousseau * [r4097] trunk/smartcard_list.txt: 1 new ATR 2008-09-24 rousseau * [r4096] trunk/smartcard_list.txt: 1 new ATR 2008-09-21 rousseau * [r4095] trunk/smartcard_list.txt: 1 new ATR 2008-09-13 rousseau * [r4094] trunk/smartcard_list.txt: 1 new ATR 2008-09-09 rousseau * [r4093] trunk/smartcard_list.txt: 1 new ATR 2008-09-07 rousseau * [r4092] trunk/pcsc_scan.c: use a LOG() macro to hide DWORD format issues on Mac OS X * [r4091] trunk/pcsc_scan.c: define SCARD_E_NO_READERS_AVAILABLE if not already available * [r4090] trunk/Makefile: do not use -framework PCSC for CFLAGS on Mac OS X -framework: linker input file unused because linking not done 2008-09-03 rousseau * [r4089] trunk/smartcard_list.txt: 1 new ATR 2008-08-29 rousseau * [r4088] trunk/ATR_analysis: truncate the ATR if extra bytes are present (like on Leopard with an ATR padded with 0 up to 33 bytes) 2008-08-26 rousseau * [r4087] trunk/smartcard_list.txt: 3 new ATRs 2008-08-17 rousseau * [r4086] trunk/smartcard_list.txt: 1 new ATR 2008-08-09 rousseau * [r4085] trunk/smartcard_list.txt: 1 new ATR 2008-08-06 rousseau * [r4084] trunk/smartcard_list.txt: 1 new ATR 2008-08-01 rousseau * [r4083] trunk/smartcard_list.txt: 1 new ATR 2008-07-30 rousseau * [r4082] trunk/smartcard_list.txt: 1 new ATR 2008-07-29 rousseau * [r4081] trunk/smartcard_list.txt: 5 new ATRs 2008-07-28 rousseau * [r4080] trunk/smartcard_list.txt: 4 new ATRs * [r4079] trunk/smartcard_list.txt: 1 new ATR * [r4078] trunk/smartcard_list.txt: 1 new ATR 2008-07-04 rousseau * [r4077] trunk/smartcard_list.txt: 1 new ATR 2008-06-27 rousseau * [r4076] trunk/smartcard_list.txt: 1 new ATR 2008-06-20 rousseau * [r4075] trunk/smartcard_list.txt: 1 new ATRs 2008-06-17 rousseau * [r4074] trunk/smartcard_list.txt: 1 new ATR 2008-05-27 rousseau * [r4073] trunk/smartcard_list.txt: 1 new ATR * [r4072] trunk/smartcard_list.txt: typo 2008-05-25 rousseau * [r4071] trunk/smartcard_list.txt: 2 new ATRs 2008-05-22 rousseau * [r4070] trunk/smartcard_list.txt: 3 new ATRs 2008-05-21 rousseau * [r4069] trunk/smartcard_list.txt: 1 new ATR * [r4068] trunk/smartcard_list.txt: 2 new ATRs * [r4067] trunk/ATR_analysis: convert the ATR in uppercase 2008-05-11 * [r4066] tags/rel-1_4_14: This commit was manufactured by cvs2svn to create tag 'rel-1_4_14'. 2008-05-11 rousseau * [r4065] trunk/README: release 1.4.14 * [r4064] trunk/README: update copyright date * [r4063] trunk/gscriptor, trunk/scriptor: use SCARD_SHARE_SHARED instead of SCARD_SHARE_EXCLUSIVE to not lock the card 2008-05-07 rousseau * [r4062] trunk/smartcard_list.txt: 1 new ATR * [r4061] trunk/smartcard_list.txt: 1 new ATR * [r4060] trunk/smartcard_list.txt: 4 new ATRs 2008-04-26 rousseau * [r4059] trunk/ATR_analysis: add support for ATR with : as byte separator (ATR reported by "opensc-tool --atr" for example) 2008-04-20 rousseau * [r4058] trunk/smartcard_list.txt: 1 new ATR 2008-04-04 rousseau * [r4057] trunk/smartcard_list.txt: 1 new description for a known ATR 2008-04-01 rousseau * [r4056] trunk/smartcard_list.txt: 2 new ATRs 2008-03-29 rousseau * [r4055] trunk/smartcard_list.txt: correct an ATR * [r4054] trunk/smartcard_list.txt: 1 new ATR * [r4053] trunk/smartcard_list.txt: 10 new ATRs 2008-03-24 rousseau * [r4052] trunk/smartcard_list.txt: 1 new ATR * [r4051] trunk/smartcard_list.txt: 3 new ATRs 2008-03-23 * [r4050] tags/rel-1_4_13: This commit was manufactured by cvs2svn to create tag 'rel-1_4_13'. 2008-03-23 rousseau * [r4049] trunk/README: release 1.4.13 * [r4048] trunk/pcsc_scan.c: update copyright date * [r4047] trunk/pcsc_scan.c: Initialise the first byte of mszReaders to '\0' to avoid looping when SCardListReaders returns SCARD_E_NO_READERS_AVAILABLE (without setting mszReaders parameter) 2008-03-20 rousseau * [r4046] trunk/smartcard_list.txt: 1 new ATR 2008-03-12 rousseau * [r4045] trunk/smartcard_list.txt: 1 new ATR * [r4044] trunk/smartcard_list.txt: 7 new ATRs * [r4043] trunk/smartcard_list.txt: 1 new ATR 2008-03-09 rousseau * [r4042] trunk/smartcard_list.txt: 1 new ATR 2008-03-05 rousseau * [r4041] trunk/smartcard_list.txt: 1 new ATR * [r4040] trunk/smartcard_list.txt: 1 new ATR 2008-02-27 rousseau * [r4039] trunk/smartcard_list.txt: 6 new ATRs 2008-02-24 rousseau * [r4038] trunk/smartcard_list.txt: 2 new ATRs 2008-02-22 rousseau * [r4037] trunk/smartcard_list.txt: 3 new ATRs 2008-02-19 rousseau * [r4036] trunk/smartcard_list.txt: 1 new ATR 2008-02-10 rousseau * [r4035] trunk/smartcard_list.txt: 2 new ATRs 2008-02-09 rousseau * [r4034] trunk/smartcard_list.txt: new card for 1 ATR * [r4033] trunk/smartcard_list.txt: 1 new ATRs 2008-02-06 rousseau * [r4032] trunk/smartcard_list.txt: 2 new ATR 2008-02-02 * [r4031] tags/rel-1_4_12: This commit was manufactured by cvs2svn to create tag 'rel-1_4_12'. 2008-02-02 rousseau * [r4030] trunk/README: release 1.4.12 * [r4029] trunk/pcsc_scan.c: handle SCARD_E_NO_READERS_AVAILABLE when no reader is found * [r4028] trunk/smartcard_list.txt: 2 new ATRs 2008-01-26 rousseau * [r4027] trunk/smartcard_list.txt: 1 new ATR 2008-01-20 rousseau * [r4026] trunk/smartcard_list.txt: 1 new ATR 2008-01-13 rousseau * [r4025] trunk/smartcard_list.txt: 3 new ATRs 2008-01-11 rousseau * [r4024] trunk/smartcard_list.txt: 1 new ATR 2008-01-05 rousseau * [r4023] trunk/smartcard_list.txt: update a card description 2007-12-30 rousseau * [r4022] trunk/smartcard_list.txt: 1 new ATR 2007-12-15 rousseau * [r4021] trunk/smartcard_list.txt: 1 new ATR 2007-12-14 rousseau * [r4020] trunk/smartcard_list.txt: 2 new ATR 2007-12-08 rousseau * [r4019] trunk/smartcard_list.txt: 1 new ATR 2007-12-04 rousseau * [r4018] trunk/smartcard_list.txt: 2 new ATR 2007-11-29 rousseau * [r4017] trunk/smartcard_list.txt: 1 new ATR 2007-11-28 rousseau * [r4016] trunk/smartcard_list.txt: Correct 1 ATR description 2007-11-09 rousseau * [r4015] trunk/smartcard_list.txt: 1 new ATR 2007-11-01 rousseau * [r4014] trunk/smartcard_list.txt: 1 new ATR 2007-10-30 * [r4013] tags/rel-1_4_11: This commit was manufactured by cvs2svn to create tag 'rel-1_4_11'. 2007-10-30 rousseau * [r4012] trunk/Makefile: compile for Linux by default * [r4011] trunk/README: release 1.4.11 * [r4010] trunk/smartcard_list.txt: 1 new ATR 2007-10-24 rousseau * [r4009] trunk/smartcard_list.txt: 1 new ATR * [r4008] trunk/smartcard_list.txt: 1 new ATR 2007-10-23 rousseau * [r4007] trunk/smartcard_list.txt: 1 new ATR 2007-10-21 rousseau * [r4006] trunk/smartcard_list.txt: 2 new ATR 2007-10-07 rousseau * [r4005] trunk/smartcard_list.txt: typos * [r4004] trunk/smartcard_list.txt: typo * [r4003] trunk/Makefile, trunk/smartcard_list.txt: 1 new ATR 2007-10-06 rousseau * [r4002] trunk/gscriptor, trunk/scriptor: use env perl instead of using a hardcoded path 2007-10-05 rousseau * [r4001] trunk/ATR_analysis: print card description in blue * [r4000] trunk/smartcard_list.txt: remove unneeded " " characters * [r3999] trunk/ATR_analysis: use /usr/bin/env perl to get the correct Perl * [r3998] trunk/smartcard_list.txt: 1 new ATR 2007-09-30 rousseau * [r3997] trunk/smartcard_list.txt: 1 new ATR 2007-09-21 rousseau * [r3996] trunk/smartcard_list.txt: 1 new ATR 2007-09-16 rousseau * [r3995] trunk/smartcard_list.txt: 1 new ATR * [r3994] trunk/smartcard_list.txt: 2 new ATR * [r3993] trunk/smartcard_list.txt: 4 new ATR 2007-09-13 rousseau * [r3992] trunk/smartcard_list.txt: 1 new ATR 2007-09-11 rousseau * [r3991] trunk/smartcard_list.txt: 25 new ATR * [r3990] trunk/smartcard_list.txt: 1 new ATR 2007-08-31 rousseau * [r3989] trunk/smartcard_list.txt: 11 new ATR 2007-08-30 rousseau * [r3988] trunk/smartcard_list.txt: 2 new ATR 2007-08-28 rousseau * [r3987] trunk/smartcard_list.txt: 8 new ATR 2007-08-22 rousseau * [r3986] trunk/smartcard_list.txt: 1 new ATR * [r3985] trunk/smartcard_list.txt: 1 new ATR 2007-08-21 rousseau * [r3984] trunk/smartcard_list.txt: 2 new ATR * [r3983] trunk/smartcard_list.txt: 2 new ATR 2007-08-14 rousseau * [r3982] trunk/smartcard_list.txt: 2 new ATR 2007-08-10 rousseau * [r3981] trunk/README: release 1.4.10 * [r3980] trunk/create_distrib.sh: release numbers on more than on digit are also valid * [r3979] trunk/gscriptor: change the order of the button for the "The Chipcard::PCSC::Card object is not connected!\nDo you want to connect?" dialog so that the default button is OK * [r3978] trunk/scriptor: correctly display the ISO7816 error code even when the line is splitted * [r3977] trunk/gscriptor: reset the command after execution. The line continuation feature was broken 2007-08-07 rousseau * [r3976] trunk/smartcard_list.txt: 2 new ATRs 2007-07-31 rousseau * [r3975] trunk/smartcard_list.txt: 5 new ATRs 2007-06-30 rousseau * [r3974] trunk/gscriptor.desktop: drops the deprecated Encoding field Thanks to Ville Skyttä for the patch 2007-06-26 rousseau * [r3973] trunk/smartcard_list.txt: 4 new ATRs 2007-06-20 rousseau * [r3972] trunk/smartcard_list.txt: 1 new ATR * [r3971] trunk/smartcard_list.txt: 1 new ATR 2007-06-19 rousseau * [r3970] trunk/smartcard_list.txt: 2 new ATRs 2007-06-16 rousseau * [r3969] trunk/smartcard_list.txt: 1 new ATR 2007-06-12 rousseau * [r3968] trunk/smartcard_list.txt: 1 new ATR 2007-06-08 rousseau * [r3967] trunk/smartcard_list.txt: 7 new ATRs 2007-06-05 rousseau * [r3966] trunk/smartcard_list.txt: 2 new ATRs 2007-06-01 rousseau * [r3965] trunk/README: typo * [r3964] trunk/pcsc_scan.c: update copyright date 2007-06-01 * [r3963] tags/rel-1_4_9: This commit was manufactured by cvs2svn to create tag 'rel-1_4_9'. 2007-06-01 rousseau * [r3962] trunk/README: release 1.4.9 * [r3961] trunk/ATR_analysis: do not display the value of an unknown tag if length is 0 * [r3960] trunk/ATR_analysis: if tag is unknown we display the data corresponding to the given length instead of parsing the data as a TLV * [r3959] trunk/smartcard_list.txt: 2 new ATRs 2007-05-31 rousseau * [r3958] trunk/smartcard_list.txt: 3 new ATRs * [r3957] trunk/smartcard_list.txt: 5 new ATRs 2007-05-27 rousseau * [r3956] trunk/smartcard_list.txt: 1 new ATR 2007-05-22 rousseau * [r3955] trunk/smartcard_list.txt: 1 new ATR 2007-05-19 rousseau * [r3954] trunk/scriptor: echo the lines read from a file (commands, comments and emtpy lines) 2007-05-18 rousseau * [r3953] trunk/smartcard_list.txt: 2 new ATR 2007-05-04 rousseau * [r3952] trunk/smartcard_list.txt: 1 new ATR 2007-05-02 rousseau * [r3951] trunk/smartcard_list.txt: 15 new ATRs 2007-05-01 rousseau * [r3950] trunk/smartcard_list.txt: 2 new ATR 2007-04-13 rousseau * [r3949] trunk/smartcard_list.txt: add a new description for an existing ATR * [r3948] trunk/smartcard_list.txt: reorder 2007-04-09 rousseau * [r3947] trunk/smartcard_list.txt: 7 new ATRs 2007-04-06 rousseau * [r3946] trunk/smartcard_list.txt: 3 new ATRs * [r3945] trunk/smartcard_list.txt: 2 new ATRs 2007-04-03 rousseau * [r3944] trunk/pcsc_scan.c: Card state in red * [r3943] trunk/ATR_analysis: bytes/s -> bits/s * [r3942] trunk/ATR_analysis: add colors 2007-03-29 rousseau * [r3941] trunk/pcsc_scan.c: use pcsc_stringify_error() to display a human readable error message * [r3940] trunk/ATR_analysis: add /usr/local/share/pcsc/smartcard_list.txt to SMARTCARD_LIST since this is the location of the default install 2007-03-21 rousseau * [r3939] trunk/smartcard_list.txt: 1 new ATR 2007-03-06 rousseau * [r3938] trunk/smartcard_list.txt: correct a typo * [r3937] trunk/smartcard_list.txt: 1 new ATR 2007-02-26 rousseau * [r3936] trunk/smartcard_list.txt: 1 new ATR 2007-02-16 rousseau * [r3935] trunk/smartcard_list.txt: 1 new ATR 2007-01-28 rousseau * [r3934] trunk/smartcard_list.txt: 1 new ATR 2007-01-23 rousseau * [r3933] trunk/smartcard_list.txt: 1 new ATR 2007-01-20 rousseau * [r3932] trunk/pcsc_scan.c: use LPSTR instead of the deprecated LPTSTR 2007-01-19 rousseau * [r3931] trunk/smartcard_list.txt: 1 new ATR 2007-01-18 rousseau * [r3930] trunk/smartcard_list.txt: 1 new ATR 2007-01-17 rousseau * [r3929] trunk/smartcard_list.txt: 1 new ATR 2007-01-16 rousseau * [r3928] trunk/smartcard_list.txt: 1 new ATR 2007-01-13 rousseau * [r3927] trunk/smartcard_list.txt: 1 new ATR 2007-01-11 rousseau * [r3926] trunk/smartcard_list.txt: 1 new ATR 2007-01-03 rousseau * [r3925] trunk/smartcard_list.txt: 1 new ATR 2006-12-30 rousseau * [r3924] trunk/smartcard_list.txt: 1 new ATR 2006-12-28 rousseau * [r3923] trunk/smartcard_list.txt: 1 new ATR 2006-12-26 rousseau * [r3922] trunk/smartcard_list.txt: 1 new ATR 2006-12-24 rousseau * [r3921] trunk/smartcard_list.txt: 2 new ATRs 2006-12-17 rousseau * [r3920] trunk/ATR_analysis: warn is some historical bytes are missing 2006-12-13 rousseau * [r3919] trunk/smartcard_list.txt: 1 new ATR 2006-12-12 rousseau * [r3918] trunk/smartcard_list.txt: 3 new ATRs * [r3917] trunk/smartcard_list.txt: 1 new ATR 2006-12-05 rousseau * [r3916] trunk/smartcard_list.txt: 1 new ATR 2006-11-28 rousseau * [r3915] trunk/smartcard_list.txt: 1 new ATR 2006-11-26 rousseau * [r3914] trunk/README: release 1.4.8 2006-11-23 rousseau * [r3913] trunk/smartcard_list.txt: 1 new ATR 2006-11-15 rousseau * [r3912] trunk/smartcard_list.txt: 1 new ATR 2006-11-11 rousseau * [r3911] trunk/ATR_analysis: add test for TC1=255 * [r3910] trunk/ATR_analysis: add case TB1=0: VPP is not electrically connected * [r3909] trunk/ATR_analysis: add the communication speed according to TA1 and a clock at 3.5712 MHz * [r3908] trunk/ATR_analysis: use %g instead of %.3f to display the cycles/ETU value to have 31 instead of 31.000 * [r3907] trunk/smartcard_list.txt: 1 new ATR 2006-11-08 rousseau * [r3906] trunk/smartcard_list.txt: 1 new ATR 2006-11-04 rousseau * [r3905] trunk/smartcard_list.txt: 2 new ATRs 2006-10-28 rousseau * [r3904] trunk/smartcard_list.txt: 1 new ATR 2006-10-25 rousseau * [r3903] trunk/pcsc_scan.c: cleanly fail (instead of looping forever) if the pcscd daemon just dies 2006-10-17 rousseau * [r3902] trunk/smartcard_list.txt: 1 new ATR 2006-10-15 rousseau * [r3901] trunk/smartcard_list.txt: 1 new ATR 2006-10-11 rousseau * [r3900] trunk/smartcard_list.txt: 1 new ATR 2006-10-10 rousseau * [r3899] trunk/smartcard_list.txt: 1 new ATR 2006-10-08 rousseau * [r3898] trunk/smartcard_list.txt: 1 new ATR 2006-10-07 rousseau * [r3897] trunk/smartcard_list.txt: 2 new ATRs 2006-10-04 * [r3896] tags/rel-1_4_7: This commit was manufactured by cvs2svn to create tag 'rel-1_4_7'. 2006-10-04 rousseau * [r3895] trunk/README: release 1.4.7 2006-10-01 rousseau * [r3894] trunk/smartcard_list.txt: 1 new ATR 2006-09-23 rousseau * [r3893] trunk/smartcard_list.txt: 1 new ATR 2006-09-21 rousseau * [r3892] trunk/smartcard_list.txt: 1 new ATR 2006-09-17 rousseau * [r3891] trunk/smartcard_list.txt: 1 new ATR 2006-09-08 rousseau * [r3890] trunk/smartcard_list.txt: 1 new ATR 2006-08-30 rousseau * [r3889] trunk/smartcard_list.txt: 3 new ATRs 2006-08-22 rousseau * [r3888] trunk/smartcard_list.txt: 1 new ATR 2006-08-20 rousseau * [r3887] trunk/smartcard_list.txt: 1 new ATR * [r3886] trunk/smartcard_list.txt: 1 new ATR 2006-08-15 rousseau * [r3885] trunk/pcsc_scan.c: add a couple of fflush(stdout); to force the display so that redirection works. Thanks to Johannes Becker for the bug report 2006-08-12 * [r3884] tags/rel-1_4_6: This commit was manufactured by cvs2svn to create tag 'rel-1_4_6'. 2006-08-12 rousseau * [r3883] trunk/README: release 1.4.6 2006-08-11 rousseau * [r3882] trunk/smartcard_list.txt: 1 new ATR 2006-08-10 rousseau * [r3881] trunk/smartcard_list.txt: 2 new ATRs 2006-08-08 rousseau * [r3880] trunk/smartcard_list.txt: 1 new ATR 2006-06-28 rousseau * [r3879] trunk/smartcard_list.txt: 1 new ATR 2006-06-11 rousseau * [r3878] trunk/smartcard_list.txt: convert from ISO latin-1 to UTF-8 * [r3877] trunk/smartcard_list.txt: 2 new ATRs 2006-06-06 rousseau * [r3876] trunk/smartcard_list.txt: 1 new ATR 2006-06-01 rousseau * [r3875] trunk/smartcard_list.txt: update URL and copyright date 2006-05-30 rousseau * [r3874] trunk/smartcard_list.txt: 1 new ATR 2006-05-28 rousseau * [r3873] trunk/smartcard_list.txt: 8 new ATRs * [r3872] trunk/smartcard_list.txt: 3 new ATRs 2006-05-26 rousseau * [r3871] trunk/gscriptor: allow multi-lines input and wrap long output * [r3870] trunk/smartcard_list.txt: 2 new ATRs * [r3869] trunk/scriptor: remove a debug message * [r3868] trunk/scriptor: wrap the received data 2006-05-25 rousseau * [r3867] trunk/scriptor: lines ending with \ are to continue on the next line 2006-05-17 rousseau * [r3866] trunk/smartcard_list.txt: 5 new ATRs 2006-05-12 rousseau * [r3865] trunk/smartcard_list.txt: 1 new ATR 2006-05-08 * [r3864] tags/rel-1_4_5: This commit was manufactured by cvs2svn to create tag 'rel-1_4_5'. 2006-05-08 rousseau * [r3863] trunk/README: update pcsc_scan example with Historical bytes parsing * [r3862] trunk/README: release 1.4.5 2006-05-03 rousseau * [r3861] trunk/smartcard_list.txt: 1 new ATR * [r3860] trunk/smartcard_list.txt: 1 new ATR 2006-04-21 rousseau * [r3859] trunk/smartcard_list.txt: 1 new ATR 2006-04-19 rousseau * [r3858] trunk/smartcard_list.txt: 1 new ATR * [r3857] trunk/smartcard_list.txt: 1 new ATR 2006-04-12 rousseau * [r3856] trunk/ATR_analysis: add code to parse the historical bytes 2006-04-07 rousseau * [r3855] trunk/smartcard_list.txt: 1 new ATR * [r3854] trunk/smartcard_list.txt: 2 new ATR * [r3853] trunk/smartcard_list.txt: 1 new ATR 2006-04-02 rousseau * [r3852] trunk/smartcard_list.txt: 1 new ATR 2006-03-31 rousseau * [r3851] trunk/smartcard_list.txt: 1 new ATR 2006-03-25 rousseau * [r3850] trunk/README: release 1.4.4 2006-03-24 rousseau * [r3849] trunk/smartcard_list.txt: 1 new ATR 2006-03-23 rousseau * [r3848] trunk/smartcard_list.txt: 1 new ATR 2006-03-21 rousseau * [r3847] trunk/ATR_analysis: add TCK check 2006-03-19 rousseau * [r3846] trunk/smartcard_list.txt: 1 new ATR 2006-03-17 rousseau * [r3845] trunk/ATR_analysis: version 1.4 and update copyright * [r3844] trunk/ATR_analysis: small reformat * [r3843] trunk/ATR_analysis: remove unused $nb_bytes variable 2006-03-15 rousseau * [r3842] trunk/smartcard_list.txt: 1 new ATR 2006-03-11 rousseau * [r3841] trunk/gscriptor: ReaderConfig(): use stock icons * [r3840] trunk/gscriptor: MessageBox(): add a $icon_text parameter change the calls to MessageBox() to use the new parameter * [r3839] trunk/gscriptor: MessageBox(): use stock buttons when possible * [r3838] trunk/gscriptor: update copyright date * [r3837] trunk/gscriptor: ReaderConfig(): use a HButtonBox for the buttons * [r3836] trunk/gscriptor: MessageBox(): use a HButtonBox for the buttons 2006-03-09 * [r3835] tags/rel-1_4_3: This commit was manufactured by cvs2svn to create tag 'rel-1_4_3'. 2006-03-09 rousseau * [r3834] trunk/README: release 1.4.3 * [r3833] trunk/pcsc_scan.c: set the pointer to NULL after a free(). The glibc do not accept a double free anymore and stops the process * [r3832] trunk/pcsc_scan.c: free memory only if it was allocated. The test was reversed. * [r3831] trunk/Makefile: install smartcard_list.txt in $(DESTDIR)/share/pcsc instead of $(DESTDIR)/pcsc as it is where ATR_analysis is looking for it 2006-03-07 * [r3830] tags/rel-1_4_2: This commit was manufactured by cvs2svn to create tag 'rel-1_4_2'. 2006-03-07 rousseau * [r3829] trunk/pcsc_scan.c: update copyright date * [r3828] trunk/README: release 1.4.2 * [r3827] trunk/MANIFEST: add gscriptor.desktop * [r3826] trunk/pcsc_scan.c: add color output support * [r3825] trunk/ATR_analysis: correct two typos. Thanks to Ville Skytt? for the patch * [r3824] trunk/smartcard_list.txt: 1 new ATR 2006-03-05 rousseau * [r3823] trunk/smartcard_list.txt: 1 new ATR 2006-03-04 rousseau * [r3822] trunk/smartcard_list.txt: 1 new ATR 2006-02-24 rousseau * [r3821] trunk/smartcard_list.txt: 1 new ATR 2006-02-20 rousseau * [r3820] trunk/smartcard_list.txt: 1 new ATR 2006-02-05 rousseau * [r3819] trunk/smartcard_list.txt: 1 new ATR 2006-01-31 rousseau * [r3818] trunk/smartcard_list.txt: 1 new ATR 2006-01-24 rousseau * [r3817] trunk/smartcard_list.txt: 1 new ATR 2006-01-17 rousseau * [r3816] trunk/smartcard_list.txt: french -> French 2006-01-15 rousseau * [r3815] trunk/smartcard_list.txt: 1 new ATR * [r3814] trunk/smartcard_list.txt: 1 new ATR 2006-01-01 rousseau * [r3813] trunk/smartcard_list.txt: 1 new ATR 2005-12-18 rousseau * [r3812] trunk/smartcard_list.txt: 1 new ATR 2005-11-27 rousseau * [r3811] trunk/smartcard_list.txt: correct an ATR description 2005-11-23 rousseau * [r3810] trunk/smartcard_list.txt: 2 new ATRs 2005-11-17 rousseau * [r3809] trunk/smartcard_list.txt: 4 new ATRs 2005-11-13 rousseau * [r3808] trunk/smartcard_list.txt: 2 new ATRs 2005-11-10 rousseau * [r3807] trunk/smartcard_list.txt: 1 new ATR 2005-11-09 rousseau * [r3806] trunk/smartcard_list.txt: 1 new ATR 2005-11-01 rousseau * [r3805] trunk/smartcard_list.txt: 1 new ATR 2005-10-28 rousseau * [r3804] trunk/smartcard_list.txt: 1 new ATR * [r3803] trunk/smartcard_list.txt: 1 new ATR 2005-10-21 rousseau * [r3802] trunk/ATR_analysis.1p: use /usr/share/pcsc/ instead of /usr/lib/pcsc/ do be more FHS compliant Thanks to Ville Skyttä for the patch * [r3801] trunk/ATR_analysis: use /usr/share/pcsc/ instead of /usr/lib/pcsc/ do be more FHS compliant Thanks to Ville Skytt? for the patch * [r3800] trunk/gscriptor.desktop: freedesktop.org compatible menu entry for gscriptor Thanks to Ville Skyttä 2005-10-20 rousseau * [r3799] trunk/smartcard_list.txt: 2 new ATRs 2005-10-18 rousseau * [r3798] trunk/smartcard_list.txt: 1 new ATR * [r3797] trunk/ATR_analysis: typo: seams -> seems. Thanks to Christian Weiske 2005-10-11 rousseau * [r3796] trunk/smartcard_list.txt: 2 new ATRs 2005-10-07 rousseau * [r3795] trunk/smartcard_list.txt: 1 new ATR 2005-09-06 rousseau * [r3794] trunk/smartcard_list.txt: 5 new ATRs 2005-09-02 rousseau * [r3793] trunk/smartcard_list.txt: 1 new ATR 2005-08-30 rousseau * [r3792] trunk/smartcard_list.txt: 1 new ATR 2005-08-25 rousseau * [r3791] trunk/smartcard_list.txt: 1 new ATR 2005-08-18 rousseau * [r3790] trunk/smartcard_list.txt: 9 new ATRs 2005-08-16 rousseau * [r3789] trunk/smartcard_list.txt: 1 new ATR 2005-08-04 rousseau * [r3788] trunk/smartcard_list.txt: 1 new ATR 2005-08-03 rousseau * [r3787] trunk/smartcard_list.txt: 1 new ATR * [r3786] trunk/smartcard_list.txt: 5 new ATR 2005-08-02 rousseau * [r3785] trunk/pcsc_scan.c: free memory only if it allocated. The test was reversed. Thanks to Vincent Fiack for the patch. 2005-06-29 rousseau * [r3784] trunk/smartcard_list.txt: 2 new ATR 2005-06-11 rousseau * [r3783] trunk/smartcard_list.txt: 1 new ATR 2005-06-01 rousseau * [r3782] trunk/smartcard_list.txt: 1 new ATR 2005-05-29 * [r3781] tags/rel-1_4_1: This commit was manufactured by cvs2svn to create tag 'rel-1_4_1'. 2005-05-29 rousseau * [r3780] trunk/README: release 1.4.1 * [r3779] trunk/gscriptor: update dates * [r3778] trunk/gscriptor: ReaderConfig: use an empty reader name if none is selected * [r3777] trunk/gscriptor: ConnectDefaultReader: if only one reader is found use it unconditionally * [r3776] trunk/ATR_analysis: add instructions to download a new version of the list * [r3775] trunk/ATR_analysis: update copyright date * [r3774] trunk/ATR_analysis: check ~/.smartcard_list.txt for known ATR 2005-05-27 rousseau * [r3773] trunk/ATR_analysis: the no argument test was wrong * [r3772] trunk/ATR_analysis: display help if no argument is given * [r3771] trunk/ATR_analysis: change version number and copyright date display the licence * [r3770] trunk/ATR_analysis: typo in a comment * [r3769] trunk/ATR_analysis: accept 3B A7 00 40 18 80 65 A2 08 01 01 52 and not just '3B A7 00 40 18 80 65 A2 08 01 01 52' as command line argument * [r3768] trunk/smartcard_list.txt: 1 new ATR 2005-05-24 rousseau * [r3767] trunk/smartcard_list.txt: 1 new ATR 2005-05-19 rousseau * [r3766] trunk/smartcard_list.txt: 1 new ATR 2005-05-16 rousseau * [r3765] trunk/smartcard_list.txt: 1 new ATR 2005-05-10 rousseau * [r3764] trunk/smartcard_list.txt: 1 new ATR * [r3763] trunk/smartcard_list.txt: 1 new ATR * [r3762] trunk/smartcard_list.txt: correct a card name 2005-05-06 rousseau * [r3761] trunk/smartcard_list.txt: 1 new ATR 2005-04-22 rousseau * [r3760] trunk/smartcard_list.txt: correct Card Infocamere description * [r3759] trunk/smartcard_list.txt: 1 new ATR 2005-04-20 rousseau * [r3758] trunk/smartcard_list.txt: 1 new ATR 2005-04-19 rousseau * [r3757] trunk/pcsc_scan.c: use "Compiled with PC/SC lite version" to make it clear it is NOT the installed version of pcsc-lite 2005-04-13 rousseau * [r3756] trunk/smartcard_list.txt: update copyright date 2005-04-05 rousseau * [r3755] trunk/smartcard_list.txt: 1 new ATR 2005-02-17 rousseau * [r3754] trunk/smartcard_list.txt: 1 new ATR 2005-02-01 rousseau * [r3753] trunk/smartcard_list.txt: 1 new ATR 2005-01-26 rousseau * [r3752] trunk/smartcard_list.txt: 1 new ATR * [r3751] trunk/smartcard_list.txt: 1 new ATR 2005-01-19 rousseau * [r3750] trunk/smartcard_list.txt: 1 new ATR 2005-01-13 rousseau * [r3749] trunk/smartcard_list.txt: 1 new ATR 2005-01-12 rousseau * [r3748] trunk/smartcard_list.txt: 1 new ATR 2005-01-11 rousseau * [r3747] trunk/smartcard_list.txt: 1 new ATR 2005-01-09 rousseau * [r3746] trunk/smartcard_list.txt: 1 new ATR * [r3745] trunk/smartcard_list.txt: 1 new ATR and 2 description updates 2004-12-15 rousseau * [r3744] trunk/smartcard_list.txt: 1 new ATR 2004-12-11 rousseau * [r3743] trunk/smartcard_list.txt: 1 new ATR 2004-12-10 rousseau * [r3742] trunk/smartcard_list.txt: 1 new ATR 2004-12-03 rousseau * [r3741] trunk/smartcard_list.txt: 1 new ATR 2004-11-30 rousseau * [r3740] trunk/smartcard_list.txt: 1 new ATR 2004-11-20 rousseau * [r3739] trunk/smartcard_list.txt: generalise an ATR 2004-11-19 rousseau * [r3738] trunk/smartcard_list.txt: 2 new ATR 2004-11-18 rousseau * [r3737] trunk/smartcard_list.txt: 1 new ATR 2004-11-09 rousseau * [r3736] trunk/smartcard_list.txt: 3 new ATR 2004-11-04 rousseau * [r3735] trunk/smartcard_list.txt: 1 new ATR 2004-10-26 rousseau * [r3734] trunk/smartcard_list.txt: 1 new ATR 2004-10-21 rousseau * [r3733] trunk/smartcard_list.txt: 1 new ATR * [r3732] trunk/smartcard_list.txt: 1 new ATR 2004-10-15 rousseau * [r3731] trunk/smartcard_list.txt: 1 new ATR 2004-09-30 rousseau * [r3730] trunk/smartcard_list.txt: add some documentation to the previous ATR * [r3729] trunk/smartcard_list.txt: 1 new ATR 2004-09-17 rousseau * [r3728] trunk/smartcard_list.txt: add URL for documentating an ATR 2004-09-15 rousseau * [r3727] trunk/smartcard_list.txt: file sort * [r3726] trunk/smartcard_list.txt: 1 new ATR 2004-09-01 rousseau * [r3725] trunk/smartcard_list.txt: 1 new ATR 2004-08-25 rousseau * [r3724] trunk/smartcard_list.txt: 1 new ATR 2004-08-24 rousseau * [r3723] trunk/smartcard_list.txt: remove 1 ATR duplicate * [r3722] trunk/smartcard_list.txt: 2 new ATR 2004-08-13 rousseau * [r3721] trunk/smartcard_list.txt: 1 new ATR 2004-08-11 rousseau * [r3720] trunk/smartcard_list.txt: 1 new ATR 2004-08-06 * [r3719] tags/rel-1_4_0: This commit was manufactured by cvs2svn to create tag 'rel-1_4_0'. 2004-08-06 rousseau * [r3718] trunk/README: release 1.4.0 * [r3717] trunk/MANIFEST: add gscriptor.gtk1.2 * [r3716] trunk/gscriptor.gtk1.2: old version using gtk 1.2 * [r3715] trunk/gscriptor: use nice icons in the menu * [r3714] trunk/gscriptor: use english typography (no space before ! and ?) * [r3713] trunk/gscriptor: select the latest reader used * [r3712] trunk/smartcard_list.txt: update * [r3711] trunk/pcsc_scan.c: use C comment /* */ instead of C++ comments // 2004-08-01 rousseau * [r3710] trunk/smartcard_list.txt: 2 new ATR 2004-07-31 rousseau * [r3709] trunk/smartcard_list.txt: 2 new ATR 2004-07-29 rousseau * [r3708] trunk/smartcard_list.txt: 2 new ATR 2004-07-23 rousseau * [r3707] trunk/smartcard_list.txt: 3 new ATR 2004-07-22 rousseau * [r3706] trunk/gscriptor: move from libgtk-perl to libgtk2-perl and add many improvements: - color support - T=0 or T=1 support 2004-07-19 rousseau * [r3705] trunk/gscriptor, trunk/scriptor: if the command does not contains spaces (00A4030000) we expand it * [r3704] trunk/smartcard_list.txt: 2 new ATR 2004-07-10 rousseau * [r3703] trunk/smartcard_list.txt: 1 new ATR 2004-07-07 rousseau * [r3702] trunk/ATR_analysis.1p: section is 1p * [r3701] trunk/smartcard_list.txt: 1 new ATR 2004-07-04 * [r3700] tags/rel-1_3_4: This commit was manufactured by cvs2svn to create tag 'rel-1_3_4'. 2004-07-04 rousseau * [r3699] trunk/README: release 1.3.4 * [r3698] trunk/README: use http://pcsclite.alioth.debian.org/ as pcsc-lite homepage 2004-07-01 rousseau * [r3697] trunk/smartcard_list.txt: 1 new ATR 2004-06-29 rousseau * [r3696] trunk/pcsc_scan.c: LPSTR -> LPTSTR * [r3695] trunk/gscriptor, trunk/scriptor: only send the 5 last characters of the response to Chipcard::PCSC::Card::ISO7816Error() 2004-06-15 rousseau * [r3694] trunk/smartcard_list.txt: 1 new ATR 2004-06-13 rousseau * [r3693] trunk/Makefile: use 'pkg-config libpcsclite [--cflags|--libs]' * [r3692] trunk/smartcard_list.txt: 1 new ATR 2004-05-25 rousseau * [r3691] trunk/Makefile: some systems do not support the long options of install 2004-05-17 rousseau * [r3690] trunk/smartcard_list.txt: 1 new ATR 2004-04-04 rousseau * [r3689] trunk/smartcard_list.txt: 1 new ATR 2004-04-02 rousseau * [r3688] trunk/README: release 1.3.3 * [r3687] trunk/pcsc_scan.c: use a dynamic table for readers to avoid any use of the deprecated PCSCLITE_MAX_CHANNELS constant * [r3686] trunk/Makefile: add -g debug flag to CFLAGS 2004-03-30 rousseau * [r3685] trunk/smartcard_list.txt: 1 new ATR 2004-03-24 rousseau * [r3684] trunk/smartcard_list.txt: 1 new ATR * [r3683] trunk/smartcard_list.txt: 1 new ATR 2004-03-02 rousseau * [r3682] trunk/smartcard_list.txt: 1 new ATR 2004-02-20 rousseau * [r3681] trunk/smartcard_list.txt: 2 new ATRs 2004-01-17 rousseau * [r3680] trunk/smartcard_list.txt: 1 new ATR 2004-01-14 rousseau * [r3679] trunk/smartcard_list.txt: update 1 ATR 2004-01-09 rousseau * [r3678] trunk/smartcard_list.txt: 1 new ATR * [r3677] trunk/smartcard_list.txt: one new ATR 2004-01-08 rousseau * [r3676] trunk/Makefile, trunk/pcsc_scan.c: add support of PCSC MacOS X framework 2004-01-05 rousseau * [r3675] trunk/smartcard_list.txt: 1 new ATR 2003-12-20 rousseau * [r3674] trunk/smartcard_list.txt: 1 new ATR 2003-12-19 rousseau * [r3673] trunk/smartcard_list.txt: 1 new ATR 2003-12-17 * [r3672] tags/rel-1_3_2: This commit was manufactured by cvs2svn to create tag 'rel-1_3_2'. 2003-12-17 rousseau * [r3671] trunk/README: release 1.3.2 2003-12-16 rousseau * [r3670] trunk/smartcard_list.txt: 3 new ATRs 2003-12-10 rousseau * [r3669] trunk/scriptor: change "Using" in "Trying" before the real communication protocol is known. * [r3668] trunk/scriptor: print the communication protocol used. * [r3667] trunk/scriptor: by default let pcscd select the correct protocol among T=0 and T=1 2003-12-05 rousseau * [r3666] trunk/smartcard_list.txt: one ATR removed 2003-12-03 rousseau * [r3665] trunk/smartcard_list.txt: 9 new ATRs 2003-11-23 rousseau * [r3664] trunk/smartcard_list.txt: one new ATR 2003-11-20 rousseau * [r3663] trunk/smartcard_list.txt: 2 new ATR 2003-11-19 rousseau * [r3662] trunk/smartcard_list.txt: one new ATR 2003-11-18 rousseau * [r3661] trunk/smartcard_list.txt: one new ATR 2003-11-08 rousseau * [r3660] trunk/gscriptor: change menu accelerator for Run so it can be used even if a text Text widget is selected * [r3659] trunk/gscriptor: simplify status word printing * [r3658] trunk/gscriptor: use paned windows to resize Script and Result frames * [r3657] trunk/gscriptor: print textual status word according to ISO 7816 2003-11-07 rousseau * [r3656] trunk/scriptor: - print the ATR with 'reset' command - print textual status word according to ISO 7816 2003-10-29 * [r3655] tags/rel-1_3_1: This commit was manufactured by cvs2svn to create tag 'rel-1_3_1'. 2003-10-29 rousseau * [r3654] trunk/README: release 1.3.1 2003-10-22 rousseau * [r3653] trunk/ATR_analysis: typo * [r3652] trunk/smartcard_list.txt: one new ATR * [r3651] trunk/smartcard_list.txt: one more ATR * [r3650] trunk/ATR_analysis: only ask to send me the ATR and card description if it is a microprocessor card. I am not (yet) interested in a list of memory cards. 2003-10-17 rousseau * [r3649] trunk/scriptor, trunk/scriptor.1p: add -p argument to specify the ISO 7816 protocol to use (T=0 or T=1) 2003-10-15 rousseau * [r3648] trunk/smartcard_list.txt: one new ATR 2003-10-14 rousseau * [r3647] trunk/smartcard_list.txt: one more ATR 2003-10-11 rousseau * [r3646] trunk/smartcard_list.txt: new ATR description 2003-10-03 rousseau * [r3645] trunk/smartcard_list.txt: two new ATRs 2003-09-03 rousseau * [r3644] trunk/smartcard_list.txt: 1 new ATR 2003-09-02 rousseau * [r3643] trunk/ATR_analysis: do not try to find the card model if it is not a microprocessor card 2003-08-26 rousseau * [r3642] trunk/smartcard_list.txt: 1 new ATR 2003-08-12 rousseau * [r3641] trunk/smartcard_list.txt: one new ATR 2003-08-08 rousseau * [r3640] trunk/smartcard_list.txt: update Acer TravelMate card 2003-08-05 rousseau * [r3639] trunk/smartcard_list.txt: 1 new ATR 2003-07-09 rousseau * [r3638] trunk/smartcard_list.txt: 3 new ATRs * [r3637] trunk/smartcard_list.txt: 1 new ATR 2003-06-24 rousseau * [r3636] trunk/ATR_analysis: add units (Volts, Amp?res) * [r3635] trunk/smartcard_list.txt: 3 new ATR 2003-06-04 rousseau * [r3634] trunk/smartcard_list.txt: 8 new ATRs 2003-05-31 * [r3633] tags/rel-1_3_0: This commit was manufactured by cvs2svn to create tag 'rel-1_3_0'. 2003-05-31 rousseau * [r3632] trunk/README: release 1.3.0 * [r3631] trunk/pcsc_scan.c: detect reader insertion/removal (USB) and adjust the reader list accordingly 2003-05-25 rousseau * [r3630] trunk/smartcard_list.txt: 4 new ATR 2003-05-24 * [r3629] tags/rel-1_2_5: This commit was manufactured by cvs2svn to create tag 'rel-1_2_5'. 2003-05-24 rousseau * [r3628] trunk/gscriptor: adjust copyright date * [r3627] trunk/README: release 1.2.5 * [r3626] trunk/gscriptor, trunk/scriptor: new naming scheme Chipcard::PCSC instead of PCSC 2003-05-12 rousseau * [r3625] trunk/smartcard_list.txt: one new ATR 2003-05-11 rousseau * [r3624] trunk/smartcard_list.txt: three new ATRs 2003-05-08 rousseau * [r3623] trunk/pcsc_scan.c: cleanly exit if all readers are removed 2003-05-03 rousseau * [r3622] trunk/smartcard_list.txt: 2 new ATR 2003-04-30 rousseau * [r3621] trunk/smartcard_list.txt: generalisation for "Austrian Quick E-purse". Maybe wrong. 2003-04-26 rousseau * [r3620] trunk/smartcard_list.txt: two new ATR 2003-04-24 rousseau * [r3619] trunk/smartcard_list.txt: 5 new ATRs 2003-04-08 rousseau * [r3618] trunk/smartcard_list.txt: 3 new ATR 2003-03-29 rousseau * [r3617] trunk/smartcard_list.txt: new card 2003-03-23 rousseau * [r3616] trunk/smartcard_list.txt: some new cards 2003-02-27 rousseau * [r3615] trunk/smartcard_list.txt: some more ATRs 2003-02-18 rousseau * [r3614] trunk/smartcard_list.txt: some new ATRs 2003-02-07 rousseau * [r3613] trunk/smartcard_list.txt: 2 new G&D cards 2003-02-02 rousseau * [r3612] trunk/smartcard_list.txt: one more card 2003-01-28 * [r3611] tags/rel-1_2_4: This commit was manufactured by cvs2svn to create tag 'rel-1_2_4'. 2003-01-28 rousseau * [r3610] trunk/README: release 1.2.4 2003-01-23 rousseau * [r3609] trunk/smartcard_list.txt: some new cards 2003-01-04 rousseau * [r3608] trunk/smartcard_list.txt: add GSM-SIM Orange-UK 2002-12-08 rousseau * [r3607] trunk/Makefile: use PCSCBASE to set tell where the pcsc-lite includes and lib are stored 2002-12-04 rousseau * [r3606] trunk/smartcard_list.txt: add some Schlumberger cards 2002-11-22 rousseau * [r3605] trunk/smartcard_list.txt: some new cards 2002-11-16 * [r3604] tags/rel-1_2_3: This commit was manufactured by cvs2svn to create tag 'rel-1_2_3'. 2002-11-16 rousseau * [r3603] trunk/README: release 1.2.3 * [r3602] trunk/ATR_analysis: Add the URL of the latest smartcard_list.txt file * [r3601] trunk/smartcard_list.txt: some new ATRs 2002-11-15 rousseau * [r3600] trunk/smartcard_list.txt: add Siemens CardOS/M 3.0 2002-11-05 rousseau * [r3599] trunk/smartcard_list.txt: some new cards 2002-10-31 rousseau * [r3598] trunk/smartcard_list.txt: some new cards 2002-10-25 rousseau * [r3597] trunk/smartcard_list.txt: add some more ATRs 2002-10-22 rousseau * [r3596] trunk/smartcard_list.txt: add eToken R2 2242 2002-10-16 rousseau * [r3595] trunk/smartcard_list.txt: add two Oberthur cards 2002-10-15 rousseau * [r3594] trunk/smartcard_list.txt: small typo 2002-10-15 * [r3593] tags/rel-1_2_2: This commit was manufactured by cvs2svn to create tag 'rel-1_2_2'. 2002-10-15 rousseau * [r3592] trunk/README: release 1.2.2 * [r3591] trunk/Makefile: remove CC=gcc declaration add /usr/local/include and /usr/local/lib paths add LDLIBS version for xBSD systems (use -lc_r instead of -lpthread) * [r3590] trunk/create_distrib.sh: add 'make clean' before creating the archive * [r3589] trunk/pcsc_scan.c: add #include 2002-10-09 rousseau * [r3588] trunk/smartcard_list.txt: add IBM MFC 4.1 card 2002-10-07 rousseau * [r3587] trunk/smartcard_list.txt: typo 2002-09-27 rousseau * [r3586] trunk/smartcard_list.txt: add Aladdin eToken PRO 2002-09-12 rousseau * [r3585] trunk/smartcard_list.txt: add GemXpresso V3 B1P 2002-09-11 rousseau * [r3584] trunk/smartcard_list.txt: add Siemens/Infineon SLE 44c80 2002-09-06 rousseau * [r3583] trunk/ATR_analysis: remove the trailing ' ' when the ATR is in compact form 3F6D00.. The ATR with a ' ' was not found in the database. 2002-08-27 * [r3582] tags/rel-1_2_1: This commit was manufactured by cvs2svn to create tag 'rel-1_2_1'. * [r3581] tags/README: This commit was manufactured by cvs2svn to create tag 'README'. 2002-08-27 rousseau * [r3580] trunk/ATR_analysis.1p: document the use of smartcard_list.txt * [r3579] trunk/smartcard_list.txt: add the URL to get the latest version * [r3578] trunk/README: release 1.2.1 * [r3577] trunk/smartcard_list.txt: more new ATR 2002-08-26 rousseau * [r3576] trunk/smartcard_list.txt: add cards ATR received by mail and from http://cuba.xs4all.nl/~hip/cards.html * [r3575] trunk/ATR_analysis: use case insensitive matchs 2002-08-21 * [r3574] tags/rel_1_2_0: This commit was manufactured by cvs2svn to create tag 'rel_1_2_0'. 2002-08-21 rousseau * [r3573] trunk/MANIFEST: add smartcard_list.txt * [r3572] trunk/README: release 1.2.0 * [r3571] trunk/ATR_analysis, trunk/Makefile, trunk/smartcard_list.txt: add support for smartcard_list.txt database 2002-06-17 * [r3570] tags/rel_1_1_0: This commit was manufactured by cvs2svn to create tag 'rel_1_1_0'. 2002-06-17 rousseau * [r3569] trunk/README: add Christophe LEVANTIS in AUTHORS list * [r3568] trunk/Makefile: also install scripts 2002-06-14 rousseau * [r3567] trunk/README: release 1.1.0 * [r3566] trunk/pcsc_scan.1, trunk/pcsc_scan.c: add support for ATR_analysis * [r3565] trunk/ATR_analysis, trunk/ATR_analysis.1p, trunk/MANIFEST, trunk/Makefile: add ATR_analysis ATR_analysis.1p files 2002-05-15 lvictor * [r3564] trunk/pcsc_scan.c: Readers states are initialized with SCARD_STATE_UNAWARE to make sure the first query will update the state to something we know. Modified the event loop to monitor all readers at once. SCARD_STATE_CHANGED is used to detect which reader triggered the event. 2002-05-14 lvictor * [r3563] trunk/pcsc_scan.c: Added comments and modified the event listener to listen to all readers at once... This demonstrates the possibility to use a list of readers to listen events to... 2002-03-06 * [r3562] tags/rel_1-0-4: This commit was manufactured by cvs2svn to create tag 'rel_1-0-4'. 2002-03-06 rousseau * [r3561] trunk/README: release 1.0.4 2002-03-05 rousseau * [r3560] trunk/README: release 1.0.4 * [r3559] trunk/gscriptor: case insensitive on "reset" command * [r3558] trunk/scriptor: case insensitive on "exit" and "reset" commands 2001-11-27 rousseau * [r3557] trunk/README: updade the release date in README * [r3556] trunk/TODO: debug pcsc_scan to get ALL the events: done 2001-11-08 * [r3555] tags/rel_1-0-3: This commit was manufactured by cvs2svn to create tag 'rel_1-0-3'. 2001-11-08 rousseau * [r3554] trunk/MANIFEST: changed .1 in .1p for Perl script manpages * [r3553] trunk/README: release 1.0.3 * [r3552] trunk/pcsc_scan.c: change PCSC to PC/SC * [r3551] trunk/Makefile: remove compressed manpages in clean rule * [r3550] trunk/README: changed tabs into spaces removed the .pl extension of the Perl scripts include a new screen copy of pcsc_scan output * [r3549] trunk/pcsc_scan.c: set the wait time to 0 to get all the events * [r3548] trunk/Makefile: add automatic rules to compress man pages changed install rule to use install(1) instead of cp(1) 2001-10-22 rousseau * [r3547] trunk/Makefile: install: also copy scriptor and gscriptor 2001-10-22 * [r3546] tags/rel_1-0-2: This commit was manufactured by cvs2svn to create tag 'rel_1-0-2'. 2001-10-22 rousseau * [r3545] trunk/README: Release 1.0.2 * [r3544] trunk/Makefile: get the version number from the directory name * [r3543] trunk/MANIFEST, trunk/gscriptor.1p, trunk/pcsc_scan.1, trunk/scriptor.1p: Added manpages * [r3542] trunk/TODO: manpages OK * [r3541] trunk/LICENCE: Added GPL licence * [r3540] trunk/test.script: commands to read a GSM SIM card instead of a silly ID badge * [r3539] trunk/pcsc_scan.c: go to the next reader _after_ printing information for the current oone 2001-10-18 rousseau * [r3538] trunk/README: Release 1.0.1 2001-10-18 * [r3537] tags/rel_1-0-1: This commit was manufactured by cvs2svn to create tag 'rel_1-0-1'. 2001-10-18 rousseau * [r3536] trunk/create_distrib.sh: updated with the version of pcsc-perl * [r3535] trunk/MANIFEST: list of files in the archive 2001-10-17 rousseau * [r3534] trunk/create_distrib.sh: Added checks: directory name format, directory existance 2001-10-16 * [r3533] tags/rel_1-0-0: This commit was manufactured by cvs2svn to create tag 'rel_1-0-0'. 2001-10-16 rousseau * [r3532] trunk/README: Added authors names and emails * [r3531] trunk/TODO: todo list * [r3530] trunk/README: short readme file * [r3529] trunk/scriptor: changed PCSCCard to PCSC::Card * [r3528] trunk/create_distrib.sh: script to export a clean archive * [r3527] trunk/pcsc_scan.c: commented number of allocated readers (wrong info?) * [r3526] trunk/Makefile: added version number 2001-10-16 * [r3525] tags/start, tags/start/gscriptor, tags/start/scriptor, tags/start/test.script: This commit was manufactured by cvs2svn to create tag 'start'. 2001-10-16 rousseau * [r3524] trunk/Makefile, trunk/pcsc_scan.c: Created directory structure 2001-10-01 lvictor * [r3523] trunk/gscriptor: modified default buttons behaviour (mostly cosmetic) 2001-09-25 * [r3522] tags/rel_1-0-7: This commit was manufactured by cvs2svn to create tag 'rel_1-0-7'. 2001-09-25 rousseau * [r3521] trunk/gscriptor: Disconnect the actual card when the reader is changed * [r3520] trunk/gscriptor: improved the Help dialog box * [r3519] trunk/gscriptor: correctly assign the tip to the wrap line button 2001-09-21 rousseau * [r3518] trunk/gscriptor: removed () from $txtScript->get_length * [r3517] trunk/gscriptor: added accelerator for Quit added $pos argument to insert_text() * [r3516] trunk/gscriptor: added 'homogeneous' argument to Gtk::Table::new() * [r3515] trunk/gscriptor: syntax "defined @ButtonDescr" is not correct with Perl 5.6 2001-09-11 rousseau * [r3514] trunk/gscriptor: configure default buttons in examples/gscriptor.pl 2001-09-05 lvictor * [r3513] trunk/gscriptor: Removed the ATR entry from the Reader Configuration dialog * [r3512] trunk/gscriptor: Cleared warning messages while running with perl -w... 2001-09-05 rousseau * [r3511] trunk/scriptor: Added CVS Log field Added documentation for -h argument * [r3510] trunk/gscriptor, trunk/scriptor: Added GPL licence in the source code Added CVS Id field 2001-09-04 lvictor * [r3509] trunk/gscriptor, trunk/test.script: Updated gscriptor to use asci_to_array(). a reset keyword has also been added to the scripting 'language' so that it calls Reconnect() * [r3508] trunk/scriptor: added a new keyword : 'reset' to reset the card... (how surprising!) * [r3507] trunk/gscriptor: More cosmetic changes * [r3506] trunk/gscriptor, trunk/scriptor, trunk/test.script: Applied a patch from somebody who apparently wants to stay anonymous. This patch includes mostly cosmetic changes and extra documentation about array_to_ascii() and ascii_to_array(). Thanks to this contributor for his help and time 2001-09-03 lvictor * [r3505] trunk/gscriptor: Added mostly cosmetic improvements to offer the user to connect when he/she tries to run a script without any active conX to the smartcard. I also identified a bug which should be verified/corrected. Its cause may lie into PCSC-lite so investigating the wrapper alone is not enough 2001-07-02 lvictor * [r3504] trunk/gscriptor, trunk/scriptor, trunk/test.script: Initial checkin 2001-07-02 * [r3503] branches, tags, trunk: Standard project directories initialized by cvs2svn. 2009-05-10 rousseau * [r3502] .: new directory pcsc-tools-1.4.22/scriptor0000755000175000017500000001142111673362363015770 0ustar rousseaurousseau#!/usr/bin/env perl # scriptor.pl: text interface to send APDU commands to a smart card # Copyright (C) 2001 Lionel Victor # 2002-2008 Ludovic Rousseau # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # $Id: scriptor 6149 2011-12-18 13:04:50Z rousseau $ use Getopt::Std; use Chipcard::PCSC; use Chipcard::PCSC::Card; use strict; use warnings; my %options; my $hContext = new Chipcard::PCSC(); my $hCard; my @out_buffer; my $in_buffer; my $echo; die ("Could not create Chipcard::PCSC object: $Chipcard::PCSC::errno\n") unless defined $hContext; getopt ("r:p:" , \%options); if ($options{h}) { print "Usage: $0 [-h] [-r reader] [-p protocol] [file]\n"; print " -h: this help\n"; print " -r reader: specify to use the PCSC smart card reader named reader\n"; print " By defaults the first one found is used so you\n"; print " don't have to specify anything if you just have\n"; print " one reader\n"; print " -p protocol: protocol to use among T=0 and T=1.\n"; print " Default is to let pcsc-lite choose the protocol\n"; print " file: file containing APDUs\n"; exit (0); } # protocol option if ($options{p}) { if ($options{p} =~ m/T=0/) { print STDERR "Trying T=0 protocol\n"; $options{p} = $Chipcard::PCSC::SCARD_PROTOCOL_T0; } else { if ($options{p} =~ m/T=1/) { print STDERR "Trying T=1 protocol\n"; $options{p} = $Chipcard::PCSC::SCARD_PROTOCOL_T1; } else { die "unknown protocol: $options{p}\n"; } } } else { $options{p} = $Chipcard::PCSC::SCARD_PROTOCOL_T0 | $Chipcard::PCSC::SCARD_PROTOCOL_T1; } # reader option if ($options{r}) { print STDERR "Using given card reader: $options{r}\n"; } else { my @readers_list = $hContext->ListReaders (); die ("Can't get readers list\n") unless defined $readers_list[0]; print STDERR "No reader given: using $readers_list[0]\n"; $options{r} = $readers_list[0]; } $hCard = new Chipcard::PCSC::Card ($hContext, $options{r}, $Chipcard::PCSC::SCARD_SHARE_SHARED, $options{p}); die ("Can't allocate Chipcard::PCSC::Card object: $Chipcard::PCSC::errno\n") unless defined $hCard; if ($hCard->{dwProtocol} == $Chipcard::PCSC::SCARD_PROTOCOL_T0) { print "Using T=0 protocol\n"; } else { if ($hCard->{dwProtocol} == $Chipcard::PCSC::SCARD_PROTOCOL_T1) { print "Using T=1 protocol\n"; } else { print "Using an unknown protocol (not T=0 or T=1)\n"; } } # file option if ($ARGV[0]) { open (IN_FILEHANDLE, "<$ARGV[0]") or die ("Can't open $ARGV[0]: $!\n"); print STDERR "Using given file: $ARGV[0]\n"; $echo=1; } else { *IN_FILEHANDLE = *STDIN; print STDERR "Reading commands from STDIN\n"; $echo=0; } *OUT_FILEHANDLE = *STDOUT; my $cmd; my $match = ".. " x 16; while () { my $tmp_value; my ($SendData, $RecvData, $sw); print if ($echo); last if /exit/i; next if /^\s*$/; next if /^#/; if (/reset/i) { print OUT_FILEHANDLE "> RESET\n"; if (defined $hCard->Reconnect ($Chipcard::PCSC::SCARD_SHARE_SHARED, $options{p}, $Chipcard::PCSC::SCARD_RESET_CARD)) { my @s = $hCard->Status(); print OUT_FILEHANDLE "< OK: "; print map { sprintf ("%02X ", $_) } @{$s[3]}; print OUT_FILEHANDLE "\n"; } else { print OUT_FILEHANDLE "< KO: $Chipcard::PCSC::errno\n"; } next; } chomp; # if the command does not contains spaces (00A4030000) we expand it s/(..)/$1 /g if (! m/ /); # continue if line ends in \ if (m/\\$/) { chop; # remove the \ s/ *$/ /; # replace any spaces by ONE space $cmd .= $_; next; # read next line } $cmd .= $_; # convert in an array (internal format) $SendData = Chipcard::PCSC::ascii_to_array($cmd); print OUT_FILEHANDLE "> $cmd\n"; $RecvData = $hCard->Transmit($SendData); die ("Can't get info: $Chipcard::PCSC::errno\n") unless defined $RecvData; my $res = Chipcard::PCSC::array_to_ascii($RecvData); $sw = Chipcard::PCSC::Card::ISO7816Error(substr($res, -5)); $res =~ s/($match)/$1\n/g; print OUT_FILEHANDLE "< $res : $sw\n"; # empty the command $cmd = ""; } close (IN_FILEHANDLE); $hCard->Disconnect($Chipcard::PCSC::SCARD_LEAVE_CARD); $hCard = undef; $hContext = undef; # End of File pcsc-tools-1.4.22/ATR_analysis0000755000175000017500000004642112266234327016461 0ustar rousseaurousseau#!/usr/bin/env perl # ATR_analysis # Copyright (C) 2000-2012 Ludovic Rousseau, Christophe Levantis # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # $Id: ATR_analysis 6823 2014-01-14 16:24:49Z rousseau $ # For more information about the ATR see ISO 7816-3 1997, pages 12 and up # # TS initial character # T0 format character, Y1 | K # interfaces characters # TA(1) global, codes FI and DI # TB(1) global, codes II and PI # TC(1) global, codes N # TD(1) codes Y(2) and T # TA(2) global, codes specific mode # TB(2) global, codes PI2 # TC(2) specific # TD(2) codes Y(3) and T # TA(3) TA(i), TB(i), TC(i) (i>2) # - specific after T!=15 # - global after T=15 # TD(i) codes Y(i+1) and T # T1 historical bytes # max 15 characters # TK # TCK check character use strict; use warnings; use Getopt::Std; use Chipcard::PCSC::Card; # default value for XDG_CACHE_HOME # http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html my $Cache = "$ENV{HOME}/.cache"; # check if XDG_CACHE_HOME env variable is set if (exists($ENV{XDG_CACHE_HOME})) { $Cache = "$ENV{XDG_CACHE_HOME}"; } # file containing the smart card models my @SMARTCARD_LIST = ( "$Cache/smartcard_list.txt", "$ENV{HOME}/.smartcard_list.txt", "/usr/local/pcsc/smartcard_list.txt", "/usr/share/pcsc/smartcard_list.txt", "/usr/local/share/pcsc/smartcard_list.txt"); our ($opt_v, $opt_h); my ($atr, %TS, @Fi, @FMax, @Di, @XI, @UI, $T, $value, $counter, $line, $TCK); my ($Y1, $K, @object, $mpcard, $hb_category); # tables %TS = (0x3B, "Direct Convention", 0x3F, "Inverse Convention"); @Fi = (372, 372, 558, 744, 1116, 1488, 1860, "RFU", "RFU", 512, 768, 1024, 1536, 2048, "RFU", "RFU"); @FMax = (4, 5, 6, 8, 12, 16, 20, "RFU", "RFU", 5, 7.5, 10, 15, 20, "RFU", "RFU"); @Di = ("RFU", 1, 2, 4, 8, 16, 32, 64, 12, 20, "RFU", "RFU", "RFU", "RFU", "RFU", "RFU"); @XI = ("not supported", "state L", "state H", "no preference"); @UI = ("A only (5V)", "B only (3V)", "A and B", "RFU"); my $COLOR_START="\033[35m"; # magenta my $COLOR_BLUE="\033[34m"; # blue my $COLOR_END="\033[0m\n"; # default (black) # prorotypes sub analyse_TA(); sub analyse_TB(); sub analyse_TC(); sub analyse_TD(); sub find_card($@); sub analyse_histrorical_bytes(); sub compact_tlv(); sub lcs($); sub sm($); sub dc($); sub cc($); sub cs($); # globals init $T = 0; $counter = 1; getopts("vh"); if ($opt_v) { print "Version: 1.7, (c) 2002-2012, Ludovic Rousseau \n"; print "This software is free software (GNU General Public License)\n"; exit; } # 1_ 1 argument then input = ATR else smart card if ($opt_h or ($#ARGV == -1)) { print "Usage: $0 [-v] [-h] ATR_string\n"; print " Ex: $0 3B A7 00 40 18 80 65 A2 08 01 01 52\n"; exit; } # 1_ get the ATR $atr = join " ", @ARGV; $atr =~ s/://g; $atr = uc($atr); if (substr ($atr, 2, 1) ne " ") { # "3BA7004018" -> "3B A7 00 40 18" $atr =~ s/(..)/$1 /g; $atr =~ s/ *$//; } print "ATR: $atr\n"; # 2_ Split in bytes of the lines @object = split(/\s/, $atr); # 3_ Analysis # Analysis of TS: $value = hex(shift(@object)); if (defined $TS{$value}) { printf "+ TS = %02X --> %s\n", $value, $TS{$value}; $mpcard = 1; } else { printf "+ TS = %02X --> UNDEFINED\n", $value; # this is NOT a microprocessor card $mpcard = 0; } exit if ($#object < 0); # Analysis of T0: $value = hex(shift(@object)); $Y1 = $value >> 4; $K = $value % 16; printf "+ T0 = %02X, Y(1): %04b, K: %d (historical bytes)\n", $value, $Y1, $K; exit if ($#object < 0); analyse_TA() if ($Y1 & 0x1); exit if ($#object < 0); analyse_TB() if ($Y1 & 0x2); exit if ($#object < 0); analyse_TC() if ($Y1 & 0x4); exit if ($#object < 0); analyse_TD() if ($Y1 & 0x8); # TCK is present? if ($#object == $K) { # expected TCK my $tck_e = hex($object[-1]); $#object--; # calculated TCK my $tck_c = 0; my @object = split(/\s/, $atr); shift @object; # do not use TS map { $tck_c ^= hex $_ } @object; $TCK = sprintf "%02X ", $tck_e; if ($tck_c == 0) { $TCK .= "(correct checksum)"; } else { $TCK .= sprintf "WRONG CHECKSUM, expected %02X", $tck_e ^ $tck_c; } } # the rest are historical bytes print "+ Historical bytes: @object\n"; if ($#object+1 < $K) { print " ERROR! ATR is truncated: " . ($K - $#object -1) . " byte(s) is/are missing\n"; } if ($#object+1 > $K) { my $extra = -($K - $#object -1); print " ERROR! ATR is too long: " . $extra . " extra byte(s). Truncating.\n"; splice @object, $K; } analyse_histrorical_bytes(); print "+ TCK = $TCK\n" if (defined $TCK); if (! $mpcard) { print "Your card is not a microprocessor card. It seems to be memory card.\n"; exit; } # update the ATR list sub update_smartcard_list($$) { # file to update my $file = shift; # URL of the latest list my $url = shift; # Has the $file file been modified in the last 10 hours? my $old = `find $file -cmin +600`; # old file if ($old) { print "Updating $file using $url\n"; if ($^O =~ "darwin") { system("curl $url --output $file"); } else { system("wget $url --output-document=$file"); } # did an update return 1; } # no change return 0; } # find the corresponding card type if (find_card($atr, @SMARTCARD_LIST)) { my $file = $SMARTCARD_LIST[0]; my $url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt"; my $found = 0; # update the ATR list if (update_smartcard_list($file, $url)) { # try again with an updated list $found = find_card($atr, $file); } # still not found? if (! $found) { print "Your card is not present in the database.\n"; print "Please submit your unknown card at:\n"; $atr =~ s/ //g; print "http://smartcard-atr.appspot.com/parse?ATR=$atr\n"; } } ######## Sub functions # _____ _ # |_ _|/ \ # | | / _ \ # | |/ ___ \ # |_/_/ \_\ # sub analyse_TA() { $value = hex(shift(@object)); printf (" TA($counter) = %02X --> ", $value); print $COLOR_START; # TA1 Analysis if ($counter == 1) { my $F = $value >> 4; my $D = $value % 16; printf "Fi=%s, Di=%s", $Fi[$F], $Di[$D]; if ($Di[$D] ne "RFU" and $Fi[$F] ne "RFU") { $value = $Fi[$F]/$Di[$D]; printf ", %g cycles/ETU\n", $value; printf " %d bits/s at 4 MHz", 4000000/$value; printf ", fMax for Fi = %d MHz => %d bits/s", $FMax[$F], $FMax[$F]*1000000/$value; } } # TA2 Analysis - TA2 is the specific mode byte if ($counter == 2) { my $F = $value >> 4; my $D = $value % 16; printf ("Protocol to be used in spec mode: T=%s", $D); if ($F & 0x8) { print " - Unable to change"; } else { print " - Capable to change"; } if ($F & 0x1) { print " - implicity defined"; } else { print " - defined by interface bytes"; } } # TA3 Analysis if ($counter >= 3) { if ($T == 1) { printf ("IFSC: %s", $value); } else { #### T <> 1 my $F = $value >> 6; my $D = $value % 64; my $Class = "(3G) "; $Class = $Class."A 5V " if ($D & 0x1); $Class = $Class."B 3V " if ($D & 0x2); $Class = $Class."C 1.8V " if ($D & 0x4); $Class = $Class."D RFU " if ($D & 0x8); $Class = $Class."E RFU" if ($D & 0x10); printf ("Clock stop: %s - Class accepted by the card: %s", $XI[$F],$Class); } } print $COLOR_END; } # analyse_TA() # _____ ____ # |_ _| __ ) # | | | _ \ # | | | |_) | # |_| |____/ # sub analyse_TB() { $value = hex(shift(@object)); printf (" TB($counter) = %02X --> ", $value); my $I = $value >> 5; my $PI = $value % 32; print $COLOR_START; if ($counter == 1) { if ($PI == 0) { print "VPP is not electrically connected"; } else { print "Programming Param P: $PI Volts, I: $I milliamperes"; } } if ($counter == 2) { print "Programming param PI2 (PI1 should be ignored): "; if (($value>49)||($value<251)) { print "$value (dV)"; } else { print "$value is RFU"; } } if ($counter >= 3) { if ($T == 1) { my $BWI = $value >> 4; my $CWI = $value % 16; printf ("Block Waiting Integer: %s - Character Waiting Integer: %s", $BWI, $CWI); } } print $COLOR_END; } # analyse_TB() # _____ ____ # |_ _/ ___| # | || | # | || |___ # |_| \____| # sub analyse_TC() { $value = hex(shift(@object)); printf (" TC($counter) = %02X --> ", $value); print $COLOR_START; if ($counter == 1) { print "Extra guard time: $value"; print " (special value)" if ($value == 255); } if ($counter == 2) { printf ("Work waiting time: 960 x %d x (Fi/F)", $value); } if ($counter >= 3) { if ($T == 1) { printf ("Error detection code: "); if ($value == 1) { print "CRC"; } elsif ($value == 0) { print "LRC"; } else { print "RFU"; } } } print $COLOR_END; } # analyse_TC() # _____ ____ # |_ _| _ \ # | | | | | | # | | | |_| | # |_| |____/ # sub analyse_TD() { my $str = ''; $value = hex(shift(@object)); my $Y = $value >> 4; $T = $value % 16; if ($T == 15) { $str = " - Global interface bytes following"; } printf (" TD($counter) = %02X --> Y(i+1) = %04b,$COLOR_START Protocol T = $T$str $COLOR_END", $value, $Y); $counter++; print "-----\n"; exit if ($#object < 0); analyse_TA() if ($Y & 0x1); exit if ($#object < 0); analyse_TB() if ($Y & 0x2); exit if ($#object < 0); analyse_TC() if ($Y & 0x4); exit if ($#object < 0); analyse_TD() if ($Y & 0x8); } # analyse_TD() # _____ _ _ _ #| ___(_)_ __ __| | ___ __ _ _ __ __| | #| |_ | | '_ \ / _` | / __/ _` | '__/ _` | #| _| | | | | | (_| | | (_| (_| | | | (_| | #|_| |_|_| |_|\__,_| \___\__,_|_| \__,_| # sub find_card($@) { my $atr = shift; my @files = @_; my ($line, $found, $f, $file); foreach (@files) { if (-e "$_") { $file = $_; last; } } # no valid file found return if (!defined $file); $found = 0; print "\nPossibly identified card (using $file):\n"; open FILE, "< $file" or die "Can't open $file: $!\n"; while ($line = ) { next if ($line =~ m/^#/); # comment next if ($line =~ m/^$/); # empty line next if ($line =~ m/^\t/); # description chomp $line; if ($atr =~ m/^$line$/i) { # print the card ATR if a regular expression was used print "$atr\n" if (uc $line ne uc $atr); print "$line\n"; # print the matching ATR $found = 1; # print until a line do not start by a tabulation while (($line = ) =~ m/^\t/) { chomp $line; # print the card description print $COLOR_BLUE . $line . $COLOR_END; } } } close FILE; if ((! $found) && ($atr =~ m/^[3B|3F]/)) { print "\tNONE\n\n"; return 1; } return 0; } # find_card($) sub analyse_histrorical_bytes() { $hb_category = shift @object; # return if we have NO historical bytes return unless $hb_category; print " Category indicator byte: $hb_category"; for ($hb_category) { /00/ && do { print " (compact TLV data object)\n"; if (scalar @object < 3) { print " Error in the ATR: expecting 3 bytes and got " . scalar @object ."\n"; last; } # get the 3 last bytes my @status = splice @object, -3, 3; compact_tlv() while (@object); my $lcs = shift @status; my $sw1 = shift @status; my $sw2 = shift @status; print " Mandatory status indicator (3 last bytes)\n"; print " LCS (life card cycle): $lcs (" . lcs($lcs) . ")\n"; print " SW: $sw1$sw2 (" . Chipcard::PCSC::Card::ISO7816Error("$sw1 $sw2") . ")\n"; last; }; /80/ && do { print " (compact TLV data object)\n"; compact_tlv() while (@object); last; }; /10/ && do { print " (next byte is the DIR data reference)\n"; my $data_ref = shift @object; print " DIR data reference: $data_ref\n"; last; }; /81|82|83|84|85|86|87|88|89|8A|8B|8C|8D|8E|8F/ && do { print " (Reserved for futur use)\n"; last; }; print " (proprietary format)\n"; } } # analyse_histrorical_bytes() sub compact_tlv() { my $tlv = shift @object; # the TLV _may_ be present return unless $tlv; my ($tag, $len); $tlv =~ /(.)(.)/; $tag = $1; $len = $2; print " Tag: $tag, len: $len"; for ($tag) { /1/ && do { print " (country code, ISO 3166-1)\n"; print " Country code: " . (join ' ', splice @object, 0, hex $len) . "\n"; last; }; /2/ && do { print " (issuer identification number, ISO 7812-1)\n"; print " Issuer identification number: " . (join ' ', splice @object, 0, hex $len) . "\n"; last; }; /3/ && do { my $cs = shift @object; print " (card service data byte)\n"; if (! defined $cs) { print " Error in the ATR: expecting 1 byte and got 0\n"; last; } print " Card service data byte: $cs\n"; cs($cs); last; }; /4/ && do { print " (initial access data)\n"; print " Initial access data: " . (join ' ', splice @object, 0, hex $len) . "\n"; last; }; /5/ && do { print " (card issuer's data)\n"; print " Card issuer data: " . (join ' ', splice @object, 0, hex $len) . "\n"; last; }; /6/ && do { print " (pre-issuing data)\n"; print " Data: " . join(' ', splice @object, 0, hex $len) . "\n"; last; }; /7/ && do { print " (card capabilities)\n"; for ($len) { /1/ && do { my $sm = shift @object; print " Selection methods: $sm\n"; sm($sm); last; }; /2/ && do { my $sm = shift @object; my $dc = shift @object; print " Selection methods: $sm\n"; sm($sm); print " Data coding byte: $dc\n"; dc($dc); last; }; /3/ && do { my $sm = shift @object; my $dc = shift @object; my $cc = shift @object; print " Selection methods: $sm\n"; sm($sm); print " Data coding byte: $dc\n"; dc($dc); print " Command chaining, length fields and logical channels: $cc\n"; cc($cc); last; }; print " wrong ATR\n"; } last; }; /8/ && do { print " (status indicator)\n"; for ($len) { /1/ && do { my $lcs = shift @object; print " LCS (life card cycle): $lcs\n"; last; }; /2/ && do { my $sw1 = shift @object; my $sw2 = shift @object; print " SW: $sw1$sw2\n"; last; }; /3/ && do { my $lcs = shift @object; my $sw1 = shift @object; my $sw2 = shift @object; print " LCS (life card cycle): $lcs (" . lcs($lcs) . ")\n"; print " SW: $sw1$sw2 (" . Chipcard::PCSC::Card::ISO7816Error("$sw1 $sw2") . ")\n"; last; }; } last; }; /F/ && do { print " (application identifier)\n"; print " Application identifier: " . (join ' ', splice @object, 0, hex $len) . "\n"; last; }; print " (unknown)\n"; print " Value: " . (join ' ', splice @object, 0, hex $len) . "\n" if ($len > 0); } } # compact_tlv() # see table 13 -- Life cycle status byte, page 21 of ISO 7816-4 sub lcs($) { my $lcs = shift; return "Proprietary" if (hex $lcs > 15); # get the LSB nibble $lcs = substr $lcs, -1, 1; for ($lcs) { /0/ && do { return "No information given"; last; }; /1/ && do { return "Creation state"; last; }; /3/ && do { return "Initialisation state"; last; }; /[4|6]/ && do { return "Operational state (deactivated)"; last; }; /[5|7]/ && do { return "Operational state (activated)"; last; }; /C|D|E|F]/ && do { return "Termination state"; last; }; return "unknown"; } } # lcs() # see table 86 -- First software function table (selection methods), # page 60 of ISO 7816-4 sub sm($) { # convert in a list of 0 or 1 my @sm = split //, unpack ("B32", pack ("N", hex shift)); # remove the 24 first bits splice @sm, 0, 24; print " - DF selection by full DF name\n" if shift @sm; print " - DF selection by partial DF name\n" if shift @sm; print " - DF selection by path\n" if shift @sm; print " - DF selection by file identifier\n" if shift @sm; print " - Implicit DF selection\n" if shift @sm; print " - Short EF identifier supported\n" if shift @sm; print " - Record number supported\n" if shift @sm; print " - Record identifier supported\n" if shift @sm; } # sm # see table 87 -- Second software function table (data coding byte), # page 60 of ISO 7816-4 sub dc($) { # convert in a list of 0 or 1 my @dc = split //, unpack ("B32", pack ("N", hex shift)); # remove the 24 first bits splice @dc, 0, 24; print " - EF of TLV structure supported\n" if shift @dc; print " - Behaviour of write functions: "; my $v = shift(@dc)*2 + shift(@dc); for ($v) { /0/ && do { print "one-time write\n"; last; }; /1/ && do { print "proprietary\n"; last; }; /2/ && do { print "write OR\n"; last; }; /3/ && do { print "write AND\n"; last; }; } print " - Value 'FF' for the first byte of BER-TLV tag fields: "; print "in" unless shift @dc; print "valid\n"; print " - Data unit in quartets: "; $v = shift(@dc)*8 + shift(@dc)*4 + shift(@dc)*2 + shift(@dc); print 2**$v . "\n"; } # dc # see table 88 -- Third software function table (command chaining, # length fields and logical channels), page 61 of ISO 7816-4 sub cc($) { # convert in a list of 0 or 1 my @cc = split //, unpack ("B32", pack ("N", hex shift)); # remove the 24 first bits splice @cc, 0, 24; print " - Command chaining\n" if shift @cc; print " - Extended Lc and Le fields\n" if shift @cc; print " - RFU (should not happen)\n" if shift @cc; print " - Logical channel number assignment: "; my $v = shift(@cc)*2 + shift(@cc); for ($v) { /0/ && do { print "No logical channel\n"; last; }; /1/ && do { print "by the interface device\n"; last; }; /2/ && do { print "by the card\n"; last; }; /3/ && do { print "by the interface device and card\n"; last; }; } $v = shift(@cc)*4 + shift(@cc)*2 + shift(@cc) +1; print " - Maximum number of logical channels: $v\n"; } # cc # see table 85 -- Card service data byte, page 59 of ISO 7816-4 sub cs($) { # convert in a list of 0 or 1 my @cs = split //, unpack ("B32", pack ("N", hex shift)); # remove the 24 first bits splice @cs, 0, 24; print " - Application selection: by full DF name\n" if shift @cs; print " - Application selection: by partial DF name\n" if shift @cs; print " - BER-TLV data objects available in EF.DIR\n" if shift @cs; print " - BER-TLV data objects available in EF.ATR\n" if shift @cs; my $v = shift(@cs)*4 + shift(@cs)*2 + shift(@cs); print " - EF.DIR and EF.ATR access services: "; for ($v) { /4/ && do { print "by READ BINARY command\n"; last; }; /0/ && do { print "by GET RECORD(s) command\n"; last; }; /2/ && do { print "by GET DATA command\n"; last; }; print "reverved for future use\n"; } if (shift @cs) { printf " - Card without MF\n"; } else { printf " - Card with MF\n"; } } # cs pcsc-tools-1.4.22/scriptor.1p0000644000175000017500000000416711203062533016276 0ustar rousseaurousseau.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH SCRIPTOR 1p "octobre 17, 2003" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME scriptor \- Perl script to send commands to a smart card .SH SYNOPSIS .B scriptor .RI [ -h ] .RI [ -r\ reader ] .RI [ -p\ protocol ] .RI [ file ] .SH DESCRIPTION This manual page documents briefly the .B scriptor command. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBscriptor\fP is a program that sends commands to a smart card using a batch file or stdin. .SH OPTIONS A description of options is included below. .TP .B \-h Show summary of options. .TP .B \-r reader Use the indicated reader. By default the first PC/SC reader is used. .TP .B \-p protocol Use the indicated protocol. Accepted values are T=0 and T=1. By default T=0 is used. .TP .B file Use the file instead of stdin to read commands (APDUs) The commands are of the form: CLA INS P1 P2 Lc [data] [le] reset # comment Example: # reset the card reset # Select MF 3F00 A0 A4 00 00 02 3F 00 # Get Reponse # 17 is the value of second SW from the previous command A0 C0 00 00 17 # Select DF Telecom (7F10) A0 A4 00 00 02 7F 10 # Get Response A0 C0 00 00 17 # Select EF_ADN (6F3A) (Abbreviated Dialing Numbers) A0 A4 00 00 02 6F 3A # Get Reponse A0 C0 00 00 0F .SH SEE ALSO .BR pcscd (8), gscriptor (1) .br .SH AUTHOR This manual page was written by Ludovic Rousseau , for the Debian GNU/Linux system (but may be used by others). pcsc-tools-1.4.22/Makefile0000644000175000017500000000220711767060374015640 0ustar rousseaurousseau# $Id: Makefile 6338 2012-06-16 10:31:54Z rousseau $ # PC/SC Lite libraries and headers. PCSC_CFLAGS ?= $(shell pkg-config libpcsclite --cflags) PCSC_LDLIBS ?= $(shell pkg-config libpcsclite --libs) # by default install in /usr/local DESTDIR ?= /usr/local VERSION := $(shell pwd | sed s/.*tools-//) CFLAGS := $(CFLAGS) -DVERSION=\"$(VERSION)\" $(PCSC_CFLAGS) LDLIBS := $(PCSC_LDLIBS) # On xBSD systems use #LDLIBS = -lc_r $(PCSC_LDLIBS) # on MacOSX #CFLAGS = -Wall -O2 -DVERSION=\"$(VERSION)\" #LDLIBS = -framework PCSC BIN = pcsc_scan BIN_SCRIPT = ATR_analysis gscriptor scriptor MAN = pcsc_scan.1.gz gscriptor.1p.gz scriptor.1p.gz ATR_analysis.1p.gz all: $(BIN) $(MAN) pcsc_scan: pcsc_scan.o install: all install -d $(DESTDIR)/bin/ install $(BIN) $(DESTDIR)/bin/ install $(BIN_SCRIPT) $(DESTDIR)/bin/ install -d $(DESTDIR)/share/pcsc install -m 644 smartcard_list.txt $(DESTDIR)/share/pcsc install -d $(DESTDIR)/share/man/man1/ install -m 644 $(MAN) $(DESTDIR)/share/man/man1/ clean: rm -f pcsc_scan.o $(BIN) $(MAN) %.1.gz: %.1 gzip --best $^ --to-stdout > $@ %.1p.gz: %.1p gzip --best $^ --to-stdout > $@ .PHONY: clean all install pcsc-tools-1.4.22/gscriptor0000755000175000017500000006557611673360232016154 0ustar rousseaurousseau#!/usr/bin/env perl # gscriptor: GTK interface to send APDU commands to a smart card # Copyright (C) 2001 Lionel Victor, Ludovic Rousseau # 2002-2010 Ludovic Rousseau # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # gscriptor uses libgtk-perl, please make sure it is correctly installed # on your system # $Id: gscriptor 6148 2011-12-18 12:44:40Z rousseau $ use strict; use warnings; use Glib qw(TRUE FALSE); use Gtk2 '-init'; use Gtk2::SimpleMenu; use File::Basename; use Carp; use Chipcard::PCSC; use Chipcard::PCSC::Card; #set_locale Gtk; my $strAppName = "gscriptor"; my $strConfigFileName = "$ENV{HOME}/.$strAppName"; my @ResultStruct; my %hConfig; my ($vscScript, $vscResult); # PCSC related variables my $hContext = Chipcard::PCSC->new; die ("Can't create the Chipcard::PCSC object: $Chipcard::PCSC::errno\n") unless (defined $hContext); my $hCard = Chipcard::PCSC::Card->new ($hContext); die ("Can't create the Chipcard::PCSC::Card object: $Chipcard::PCSC::errno\n") unless (defined $hContext); ############################### create widgets ############################### my $wndMain = Gtk2::Window->new("toplevel"); my $txtScript = Gtk2::TextView->new; my $txtResult = Gtk2::TextView->new; my $rdbASCII = Gtk2::RadioButton->new_with_label(undef, "ASCII"); my $rdbHex = Gtk2::RadioButton->new_with_label($rdbASCII->get_group(), "Hex"); my $chkWrap = Gtk2::CheckButton->new("Wrap lines"); my $btnRun = Gtk2::Button->new("Run"); my $txtStatus = Gtk2::Entry->new; ############################## arrange widgets ############################### # arrange_widgets () is used to arrange widgets in the windows. # It allows to conveniently allocate temporary variables for the various # containers and the scrollbars, as well as the menu. # This function also sets some basic properties of the different # widgets used... configuration is therefore grouped in a single place. sub arrange_widgets () { $wndMain->set_title ("$strAppName"); $txtScript->set_editable(TRUE); $txtResult->set_editable(FALSE); $txtStatus->set_sensitive(FALSE); $chkWrap->set_active(TRUE); $rdbHex->set_active(TRUE); # create and bind toolbars $vscScript = Gtk2::ScrolledWindow->new; $vscScript->set_size_request(200, 200); $vscScript->set_policy ('automatic', 'automatic'); $vscScript->add($txtScript); $vscResult = Gtk2::ScrolledWindow->new; $vscResult->set_size_request(200, 200); $vscResult->set_policy ('automatic', 'automatic'); $vscResult->add($txtResult); # create text tags my $buffer = $txtResult->get_buffer; $buffer->create_tag("red", foreground => "red"); $buffer->create_tag("blue", foreground => "blue"); $buffer->create_tag("monospace", family => "monospace"); # create and set tooltips my $tipScript = Gtk2::Tooltips->new; my $tipResult = Gtk2::Tooltips->new; my $tipASCII = Gtk2::Tooltips->new; my $tipHex = Gtk2::Tooltips->new; my $tipRun = Gtk2::Tooltips->new; my $tipWrap = Gtk2::Tooltips->new; $tipScript->set_tip ($txtScript, "list of APDUs to exchange"); $tipResult->set_tip ($txtResult, "result window"); $tipASCII->set_tip ($rdbASCII, "show ASCII data"); $tipHex->set_tip ($rdbHex, "show hexadecimal data"); $tipRun->set_tip ($btnRun, "run the current script"); $tipWrap->set_tip ($chkWrap, "wrap long lines"); # create and set the menu with the accel_table my $menu_model = [ _File => { item_type => '', children => [ New => { callback => \&NewScriptFile, accelerator => 'N', item_type => '', extra_data => 'gtk-new' }, Open => { callback => \&LoadScriptFile, accelerator => 'O', item_type => '', extra_data => 'gtk-open' }, Save => { callback => \&SaveScriptFile, accelerator => 'S', item_type => '', extra_data => 'gtk-save' }, 'Save As' => { callback => \&SaveAsScriptFile, accelerator => 'S', item_type => '', extra_data => 'gtk-save-as' }, Separator => { item_type => '' }, Quit => { callback => \&CloseAppWindow, accelerator => 'Q', item_type => '', extra_data => 'gtk-quit' } ] }, R_eader => { item_type => '', children => [ _Connect => { callback => \&ConnectDefaultReader, accelerator => 'C' }, Reco_nnect => { callback => \&ReconnectDefaultReader, item_type => '', extra_data => 'gtk-redo' }, _Disconnect => { callback => \&DisconnectDefaultReader, accelerator => 'D' }, Separator => { item_type => '' }, '_Status...' => { callback => \&DefaultReaderStatus, item_type => '', extra_data => 'gtk-properties' } ] }, Ru_n => { item_type => '', children => [ '_Run Script' => { callback => \&RunScript, accelerator => 'R', item_type => '', extra_data => 'gtk-execute' }, 'C_lear Result Area' => { callback => \&ClearResult, accelerator => 'L', item_type => '', extra_data => 'gtk-clear' } ] }, _Settings => { item_type => '', children => [ Reader => { callback => \&ReaderConfig, item_type => '', extra_data => 'gtk-preferences' } ] }, _Help => { item_type => '', children => [ About => { callback => \&Help, item_type => '', extra_data => 'gtk-dialog-info' } ] } ]; my $menu = Gtk2::SimpleMenu->new(menu_tree => $menu_model); $wndMain->add_accel_group( $menu->{accel_group} ); # create and arrange box containers my $vbxMainBox = Gtk2::VBox->new (FALSE, 3); my $hbxScriptBox = Gtk2::HBox->new (FALSE, 3); my $vbxScriptBox = Gtk2::VBox->new (FALSE, 10); my $hbxResultBox = Gtk2::HBox->new (FALSE, 3); my $vbxResultBox = Gtk2::VBox->new (FALSE, 3); $hbxScriptBox->pack_end($vscScript, TRUE, TRUE, 0); $vbxScriptBox->add($hbxScriptBox); $vbxScriptBox->pack_end($btnRun, FALSE, FALSE, 0); $vbxScriptBox->pack_end($chkWrap, FALSE, FALSE, 0); $vbxScriptBox->set_border_width(5); $hbxResultBox->pack_end($vscResult, TRUE, TRUE, 0); $vbxResultBox->add($hbxResultBox); $vbxResultBox->pack_start($rdbASCII, FALSE, FALSE, 0); $vbxResultBox->pack_start($rdbHex, FALSE, FALSE, 0); $vbxResultBox->set_border_width(5); # create and fill frame containers my $frmScript = Gtk2::Frame->new ("Script"); my $frmResult = Gtk2::Frame->new ("Result"); $frmScript->set_border_width(5); $frmScript->add ($vbxScriptBox); $frmResult->set_border_width(5); $frmResult->add ($vbxResultBox); my $hpaned = Gtk2::HPaned->new; $hpaned->set_border_width(5); my $hbxBox = Gtk2::HBox->new (FALSE, 10); $hpaned->add1($frmScript); $hpaned->add2($frmResult); $hbxBox->add($hpaned); $vbxMainBox->pack_start ($menu->{widget}, FALSE, FALSE, 1); $vbxMainBox->add ($hbxBox); $vbxMainBox->pack_end ($txtStatus, FALSE, FALSE, 0); $vbxMainBox->show_all(); $wndMain->add($vbxMainBox); } # Connect widgets together $chkWrap->signal_connect('toggled', sub { $txtScript->set_wrap_mode($chkWrap->get_active ? 'GTK_WRAP_CHAR' : 'GTK_WRAP_NONE'); } ); $wndMain->signal_connect ("delete_event", \&CloseAppWindow); $btnRun->signal_connect ("clicked", \&RunScript); $rdbASCII->signal_connect('toggled', \&RefreshResult); $rdbHex->signal_connect('toggled', \&RefreshResult); arrange_widgets(); ReadConfigFile(); ############################### create widgets ############################### $txtStatus->set_text ("welcome to the $strAppName application! - not connected"); # Show up everything as we should be ready by now $wndMain->show_all(); if (exists $hConfig{'script'}) { unless (ReadScriptFile ($hConfig{'script'})) { MessageBox ("Can not open $hConfig{'script'}: $!", "error", ['OK']); delete $hConfig{'script'}; } } Gtk2->main; exit; ######################### application engine follows ######################### sub MessageBox { my $strMessage = shift; my $icon_text = shift; my @ButtonDescr = @_; my $refCurButtonDescr; my $last_button; # Choose a nice title to our message box @ButtonDescr = ["OK"] unless @ButtonDescr; my $dlgDialog = Gtk2::Dialog->new; my $hbxButtonBox = Gtk2::HButtonBox->new; my $hbxTextBox = Gtk2::HBox->new (FALSE, 0); my $hbox = Gtk2::HBox->new (FALSE, 12); $dlgDialog->vbox->add ($hbox); $hbox->set_border_width(12); my $icon = Gtk2::Image->new_from_stock("gtk-dialog-" . $icon_text, "GTK_ICON_SIZE_DIALOG"); $hbox->add ($icon); # build up all the buttons and associate callbacks foreach $refCurButtonDescr (reverse @ButtonDescr) { croak ("invalid button name") unless scalar ($$refCurButtonDescr[0]); $$refCurButtonDescr[1] = sub { $dlgDialog->destroy(); } if $#$refCurButtonDescr == 0; warn ("button named '$$refCurButtonDescr[0]' has an invalid callback: '$$refCurButtonDescr[1]'") unless ref ($$refCurButtonDescr[1]); # Each button is constructed from its label my $btnTmpButton; $btnTmpButton = Gtk2::Button->new_from_stock("gtk-ok") if ($$refCurButtonDescr[0] =~ m/OK/); $btnTmpButton = Gtk2::Button->new_from_stock("gtk-cancel") if ($$refCurButtonDescr[0] =~ m/CANCEL/); $btnTmpButton = Gtk2::Button->new($$refCurButtonDescr[0]) unless defined $btnTmpButton; $btnTmpButton->can_default(1); # A mouse click on the button triggers a call to its embedded # callback then destroys the dialog box $btnTmpButton->signal_connect ("clicked", sub { &{$$refCurButtonDescr[1]}; $dlgDialog->destroy(); }); $hbxButtonBox->pack_end($btnTmpButton, FALSE, FALSE, 12); $last_button = $btnTmpButton; } $dlgDialog->action_area->pack_start($hbxButtonBox, 1, 1, 0); my $label = Gtk2::Label->new($strMessage); $hbxTextBox->pack_start($label, FALSE, FALSE, 0); $hbox->add ($hbxTextBox); # the last button is the default one $last_button->grab_default(); # Finally show up everything $dlgDialog->set_default_size (0, 0); $dlgDialog->set_modal(1); $dlgDialog->show_all(); } sub ReaderConfig { my $dlgReaderConfig = Gtk2::Dialog->new; my $txtReader = Gtk2::Label->new ("Reader"); my $cboReaders = Gtk2::ComboBox->new_text; my $rdbT0 = Gtk2::RadioButton->new(undef, "T=0"); my $rdbT1 = Gtk2::RadioButton->new($rdbT0->get_group(), "T=1"); my $rdbT01 = Gtk2::RadioButton->new($rdbT0->get_group(), "T=0 or T=1"); my $rdbRAW = Gtk2::RadioButton->new($rdbT0->get_group(), "T=RAW"); my $txtProtocol = Gtk2::Label->new ("Protocol"); my @readers_list = $hContext->ListReaders; # This sub adjusts the content of $hConfig with the selected protocol my $subProtocol = sub { $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_RAW if ($rdbRAW->get_active()); $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_T0 if ($rdbT0->get_active()); $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_T1 if ($rdbT1->get_active()); $hConfig{'protocol'} = $Chipcard::PCSC::SCARD_PROTOCOL_T0|$Chipcard::PCSC::SCARD_PROTOCOL_T1 if ($rdbT01->get_active()); }; $rdbT0->signal_connect ('toggled', $subProtocol); $rdbT1->signal_connect ('toggled', $subProtocol); $rdbT01->signal_connect ('toggled', $subProtocol); $rdbRAW->signal_connect('toggled', $subProtocol); my $btnOK = Gtk2::Button->new_from_stock("gtk-ok"); $btnOK->signal_connect( "clicked", sub { $hConfig{'reader'} = @readers_list[$cboReaders->get_active()]; $hConfig{'reader'} = "" if (! defined $hConfig{'reader'}); $hCard->Disconnect($Chipcard::PCSC::SCARD_UNPOWER_CARD); $dlgReaderConfig->destroy(); }); $btnOK->can_default(1); my $btnCancel = Gtk2::Button->new_from_stock("gtk-cancel"); $btnCancel->signal_connect( "clicked", sub { $dlgReaderConfig->destroy(); }); $btnCancel->can_default(1); my $hbxReaderBox = Gtk2::HBox->new (FALSE, 10); my $hbxButtonBox = Gtk2::HButtonBox->new; my $hbxStatusBox = Gtk2::Table->new (4, 2, 1); $hbxReaderBox->pack_start ($txtReader, FALSE, FALSE, 10); $hbxReaderBox->pack_start ($cboReaders, 1, 1, 10); $hbxButtonBox->pack_end($btnCancel, FALSE, FALSE, 10); $hbxButtonBox->pack_end($btnOK, FALSE, FALSE, 10); # Select the last prefered protocol if any if (defined $hConfig {'protocol'}) { $rdbT0->set_active(1) if ($hConfig {'protocol'} == $Chipcard::PCSC::SCARD_PROTOCOL_T0); $rdbT1->set_active(1) if ($hConfig {'protocol'} == $Chipcard::PCSC::SCARD_PROTOCOL_T1); $rdbT01->set_active(1) if ($hConfig {'protocol'} == ($Chipcard::PCSC::SCARD_PROTOCOL_T0 | $Chipcard::PCSC::SCARD_PROTOCOL_T1)); $rdbRAW->set_active(1) if ($hConfig {'protocol'} == $Chipcard::PCSC::SCARD_PROTOCOL_RAW); } $hbxStatusBox->attach_defaults ($txtProtocol, 0, 1, 0, 1); $hbxStatusBox->attach_defaults ($rdbT0, 1, 2, 0, 1); $hbxStatusBox->attach_defaults ($rdbT1, 1, 2, 1, 2); $hbxStatusBox->attach_defaults ($rdbT01, 1, 2, 2, 3); $hbxStatusBox->attach_defaults ($rdbRAW, 1, 2, 3, 4); $cboReaders->append_text($_) for (@readers_list); # We select the first reader (default choice) $cboReaders->set_active(0); # Select the last prefered reader if any if (defined $hConfig {'reader'}) { my $i = 0; my $reader = $hConfig {'reader'}; # escape metacharacters $reader =~ s/\[/\\\[/g; $reader =~ s/\]/\\\]/g; $reader =~ s/\(/\\\[/g; $reader =~ s/\)/\\\)/g; for (@readers_list) { $cboReaders->set_active($i) if (m/$reader/); $i++; } } $dlgReaderConfig->action_area->pack_start($hbxButtonBox, TRUE, TRUE, 0); $dlgReaderConfig->vbox->set_spacing(6); $dlgReaderConfig->vbox->add ($hbxReaderBox); $dlgReaderConfig->vbox->add (new Gtk2::HSeparator()); $dlgReaderConfig->vbox->add ($hbxStatusBox); # the OK button is the default one $btnOK->grab_default(); $dlgReaderConfig->set_default_size (0, 0); $dlgReaderConfig->set_modal(1); $dlgReaderConfig->show_all(); } sub ReadConfigFile { if (-f $strConfigFileName) { die ("Can't open $strConfigFileName for reading: $!\n") unless (open (FILE, "<$strConfigFileName")); while () { chomp; next if /^#/; next if /^\s*$/; if (/^\s*(\S+)\s*=\s*\'(.*)\'$/) { $hConfig{$1} = $2; } else { print STDERR "Error while parsing $strConfigFileName\n\t'$_'\n"; } } close (FILE); } else { print STDERR "Couldn't read from $strConfigFileName. Using default configuration\n"; } $vscScript->set_size_request(split / /, $hConfig{'ScriptSize'}) if (defined $hConfig{'ScriptSize'}); $vscResult->set_size_request(split / /, $hConfig{'ResultSize'}) if (defined $hConfig{'ResultSize'}); } sub WriteConfigFile { my $strTmpKey; $hConfig{'ScriptSize'} = join (" ", $vscScript->get_size_request()); $hConfig{'ResultSize'} = join (" ", $vscResult->get_size_request()); die ("Can't open $strConfigFileName for writing: $!\n") unless (open (FILE, ">$strConfigFileName")); print FILE "# This file is automatically generated\n# Do not edit unless you know what you are doing\n\n"; foreach $strTmpKey (sort keys %hConfig) { print FILE "$strTmpKey = \'$hConfig{$strTmpKey}\'\n" if (defined $hConfig{$strTmpKey}); } close (FILE); } sub ReadScriptFile { my $strScriptFileName = shift; my $strBaseFileName = basename ($strScriptFileName); return 0 unless open (FILE, "<$strScriptFileName"); $txtScript->get_buffer->set_text(""); ($txtScript->get_buffer)->insert_at_cursor($_) while (); close (FILE); # Upon succesfull completion, we also set the window title as well # as the current ScriptfileName in the configuration hash $hConfig{'script'} = $strScriptFileName; $wndMain->set_title ("$strAppName - <$strBaseFileName>"); return 1; } sub WriteScriptFile { my $strScriptFileName = shift; my $strBaseFileName = basename ($strScriptFileName); return 0 unless open (FILE, ">$strScriptFileName"); my $textbuffer = $txtScript->get_buffer; print FILE $textbuffer->get_text($textbuffer->get_start_iter, $textbuffer->get_end_iter, 1); close (FILE); # Upon successfull completion, we also set the window title as well # as the current ScriptfileName in the configuration hash $hConfig{'script'} = $strScriptFileName; $wndMain->set_title ("$strAppName - <$strBaseFileName>"); return 1; } sub NewScriptFile { if ($txtScript->get_buffer->get_char_count()) { # That call to MessageBox will connect the OK button with a callback # that actually erase the script MessageBox( "The current work will be lost!\nAre you sure you want to continue?", "question", ["OK", sub { EraseCurrentScript(); } ], ["CANCEL"] ); } } sub EraseCurrentScript { $txtScript->get_buffer->set_text(""); $wndMain->set_title ("$strAppName"); delete $hConfig{'script'}; } sub SaveScriptFile { my ($widget) = @_; if (exists $hConfig{'script'}) { WriteScriptFile ($hConfig{'script'}); } else { SaveAsScriptFile ($widget); } } sub SaveAsScriptFile { my ($widget) = @_; my $file_dialog = Gtk2::FileSelection->new( "Save File" ); $file_dialog->ok_button->signal_connect( "clicked", sub { my $file = $file_dialog->get_filename(); if (-d $file) { MessageBox ("Can't open $file: file is a directory", "error", ['OK']); } else { MessageBox ("Can't open $file: $!", "error", ['OK']) unless WriteScriptFile ($file); } $file_dialog->destroy(); }); $file_dialog->cancel_button->signal_connect( "clicked", sub { $file_dialog->destroy(); }); if (exists $hConfig{'script'}) { $file_dialog->set_filename(dirname($hConfig{'script'})) } $file_dialog->show(); } sub LoadScriptFile { if ($txtScript->get_buffer->get_char_count()) { MessageBox( "The current work will be lost!\nAre you sure you want to continue?", "question", ["OK", \&LoadScript], ["CANCEL"] ); } else { LoadScript(); } } sub LoadScript { my $file_dialog = Gtk2::FileSelection->new( "Load File" ); $file_dialog->ok_button->signal_connect( "clicked", sub { my $file = $file_dialog->get_filename(); if (-d $file) { MessageBox ("Can't open $file: file is a directory", "error", ['OK']); } else { MessageBox ("Can't open $file: $!", "error", ['OK']) unless ReadScriptFile ($file); } $file_dialog->destroy(); }); $file_dialog->cancel_button->signal_connect( "clicked", sub { $file_dialog->destroy(); }); if (exists $hConfig{'script'}) { $file_dialog->set_filename(dirname($hConfig{'script'})."/"); } $file_dialog->show(); } sub ClearResult { $txtResult->get_buffer->set_text(""); @ResultStruct = (); } sub RefreshResult { my $tmpLine; my $tmp_value; my $textbuffer = $txtResult->get_buffer; my $tmp_text; my $state = 0; # text $textbuffer->set_text (""); my $iter = $textbuffer->get_end_iter; foreach $tmpLine (@ResultStruct) { if (ref $tmpLine) { $tmp_text = ""; if ($rdbHex->get_active) { my $c = 0; for (@$tmpLine) { $tmp_text .= sprintf ("%02X ", $_); if (++$c == 16) { $tmp_text .= "\n"; $c = 0; } } } else { my $c = 0; foreach $tmp_value (@$tmpLine) { # TODO: enhance filtering of non-printable chars # TODO: how can we use array_to_ascii here??? maybe # enhence the function so it can directly receive # ranges of chars to ignore optionally? if (($tmp_value >= 0x20) && ($tmp_value < 0x80)) { $tmp_text .= chr ($tmp_value); } else { $tmp_text .= "."; } if ($c++ == 32) { $tmp_text .= "\n"; $c = 0; } } } $textbuffer->insert_with_tags_by_name ($iter, "$tmp_text\n", "monospace", $state ? "red" : "blue"); } else { $textbuffer->insert ($iter, $tmpLine); $state = 0; $state = 1 if ($tmpLine =~ m/Received/); } } } sub ConnectDefaultReader { my @readers_list = $hContext->ListReaders; # if only one reader is found use it unconditionally $hConfig{'reader'} = $readers_list[0] if ($#readers_list == 0); if (defined $hConfig{'reader'} && !($hConfig{'reader'} eq '')) { if (defined $hCard->{hCard}) { MessageBox ( "The card is already connected...\nDo you want to reconnect?", "question", ['OK', \&ReconnectDefaultReader], ['CANCEL'] ); } else { $hCard->Connect ($hConfig{'reader'}, $Chipcard::PCSC::SCARD_SHARE_SHARED, $hConfig{'protocol'}); if (defined $hCard->{hCard}) { $txtStatus->set_text ("Connected to '$hConfig{'reader'}'"); } else { MessageBox ("Can not connect to the reader named '$hConfig{'reader'}':\n$Chipcard::PCSC::errno", "error", ['OK']) }; } } else { MessageBox ("No default reader has been configured.\nPlease make sure you have configured a reader first.", "error", ['OK']); } } sub ReconnectDefaultReader { if (defined $hCard->{hCard}) { $hCard->Reconnect ($Chipcard::PCSC::SCARD_SHARE_SHARED, $hConfig{'protocol'}, $Chipcard::PCSC::SCARD_RESET_CARD); if (defined $hCard->{hCard}) { $txtStatus->set_text ("Connected to '$hConfig{'reader'}'"); } else { MessageBox ("Can not reconnect to the reader named '$hConfig{'reader'}':\n$Chipcard::PCSC::errno", "error", ['OK']) }; } else { # we just propose to connect but do not call Reconnect() # afterwards that would be quite useless MessageBox ("The Chipcard::PCSC:Card object is not connected...\n Do you want to connect?", "question", ['OK', sub {ConnectDefaultReader();}], ['CANCEL']); } } sub DisconnectDefaultReader { if (defined $hCard->{hCard}) { $hCard->Disconnect($Chipcard::PCSC::SCARD_UNPOWER_CARD); if (defined $hCard->{hCard}) { MessageBox ("Can not disconnect from the reader named '$hConfig{'reader'}':\n$Chipcard::PCSC::errno", "error", ['OK']); } else { $txtStatus->set_text ("not connected"); }; } else { MessageBox ("The Chipcard::PCSC::Card object is not connected!", "error", ['OK']); } } sub DefaultReaderStatus { if (defined $hCard->{hCard}) { my @StatusResult = $hCard->Status(); if (defined $StatusResult[0]) { #TODO This stinks can't I rewrite it so it looks better&shorter my $tmpVal = 0; my $MessageString = "You are connected to reader $StatusResult[0].\n"; $MessageString .= "Card status (". sprintf ("0x%04X", $StatusResult[1]) ."): "; # Verbosely describes the Card Status (powered, inserted, etc.) if ($StatusResult[1] & $Chipcard::PCSC::SCARD_UNKNOWN) { $MessageString .= "'Unknown state', "; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_ABSENT) { $MessageString .= "Absent, "; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_PRESENT) { $MessageString .= "Present, "; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_SWALLOWED) { $MessageString .= "Swallowed, "; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_POWERED) { $MessageString .= "Powered, "; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_NEGOTIABLE) { $MessageString .= "'PTS is negotiable', "; } if ($StatusResult[1] & $Chipcard::PCSC::SCARD_SPECIFIC) { $MessageString .= "'PTS has been set', "; } # remove the trailing ", " substr ($MessageString, -2) = ""; # Verbosely describes the currently active protocol $MessageString .= ".\nThe active protocol (".sprintf ("0x%04X", $StatusResult[2]).") is "; if (($StatusResult[2] & $Chipcard::PCSC::SCARD_PROTOCOL_T0)) { $MessageString .= "T=0 "; } elsif (($StatusResult[2] & $Chipcard::PCSC::SCARD_PROTOCOL_T1)) { $MessageString .= "T=1 "; } elsif (($StatusResult[2] & $Chipcard::PCSC::SCARD_PROTOCOL_RAW)) { $MessageString .= "RAW "; } else { $MessageString .= "unknown"; } # Displays the ATR (if available) $MessageString .= ".\nThe ATR is "; if (defined $StatusResult[3]) { foreach (@{$StatusResult[3]}) { $MessageString .= sprintf ("%02X ", $_); } } else { $MessageString .= "not available"; } MessageBox ($MessageString, "info", ['OK']); } else { MessageBox ("Can not retrieve reader status:\n$Chipcard::PCSC::errno", "error", ['OK']) } } else { MessageBox ("The reader is not connected...\n Do you want to connect?", "question", ['OK', sub {ConnectDefaultReader(); if (defined $hCard->{hCard}) {DefaultReaderStatus();}}], ['CANCEL']); } } sub RunScript { if (defined $hCard->{hCard}) { my $textbuffer = $txtScript->get_buffer; my @tmpCommandArray = split /\n/, $textbuffer->get_text($textbuffer->get_start_iter, $textbuffer->get_end_iter, 1); my $raCurrentResult; my $nIndex; my $cmd; push @ResultStruct, "Beginning script execution...\n\n"; foreach $_ (@tmpCommandArray) { # this variable has to be inside the loop as we store a # reference to it in the result struct... it has to be # unique for each command line my $raCurrentCommand; # Skip blank lines and comments next if /^\s*$/; next if /^#/; if (/reset/i) { push @ResultStruct, "[Reset]\n"; ReconnectDefaultReader(); push @ResultStruct, "ATR: "; my @s = $hCard->Status(); push @ResultStruct, \@{$s[3]}; push @ResultStruct, "\n"; next; } # if the command does not contains spaces (00A4030000) we expand it s/(..)/$1 /g if (! m/ /); # continue if line ends in \ if (m/\\$/) { chop; # remove the \ s/ *$/ /; # replace any spaces by ONE space $cmd .= $_; next; # read next line } $cmd .= $_; # Extract bytes from the ascii string $raCurrentCommand = Chipcard::PCSC::ascii_to_array($cmd); $cmd = ""; # push them in the Display structure push @ResultStruct, "Sending: "; push @ResultStruct, $raCurrentCommand; # Transmit them to the card $raCurrentResult = $hCard->Transmit ($raCurrentCommand); if (ref $raCurrentResult) { push @ResultStruct, "Received: "; push @ResultStruct, $raCurrentResult; push @ResultStruct, Chipcard::PCSC::Card::ISO7816Error(substr Chipcard::PCSC::array_to_ascii($raCurrentResult), -5), "\n\n"; } else { MessageBox ("Transmit failed: $Chipcard::PCSC::errno\nStopping script execution", "error", ['OK']); push @ResultStruct, "\nErrors During Script Execution: $Chipcard::PCSC::errno\n"; last; } } push @ResultStruct, "Script was executed without error...\n"; } else { MessageBox ("The Chipcard::PCSC::Card object is not connected!\nDo you want to connect?", "question", ['CANCEL'], ['OK', sub {ConnectDefaultReader(); if (defined $hCard->{hCard}) {RunScript();}}]); } RefreshResult(); } sub CloseAppWindow { undef $hCard; undef $hContext; WriteConfigFile(); Gtk2->main_quit(); } sub Help { MessageBox (" $strAppName is coded by Lionel VICTOR, (C) 2001. and debugged & improved by Ludovic ROUSSEAU, (C) 2001-2006. $strAppName is (was) a small application written in Perl. It basically demonstrates how easy it is to develop a quick working prototype that uses smartcards in Perl. ", "info", ['OK'] ); } # End of File # pcsc-tools-1.4.22/TODO0000644000175000017500000000011211203062533014641 0ustar rousseaurousseauTODO list ========= $Id: TODO,v 1.3 2001-11-27 07:24:23 rousseau Exp $ pcsc-tools-1.4.22/pcsc_scan.c0000644000175000017500000002543012176242724016277 0ustar rousseaurousseau/* Scan and print all the PC/SC devices available Copyright (C) 2001-2011 Ludovic Rousseau This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: pcsc_scan.c 6690 2013-07-29 14:17:37Z rousseau $ */ #include #include #include #include #include #ifdef __APPLE__ #include #include #else #include #endif #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif #define TIMEOUT 1000 /* 1 second timeout */ /* command used to parse (on screen) the ATR */ #define ATR_PARSER "ATR_analysis" #ifndef SCARD_E_NO_READERS_AVAILABLE #define SCARD_E_NO_READERS_AVAILABLE 0x8010002E #endif #define test_rv(fct, rv, hContext) \ do { \ if (rv != SCARD_S_SUCCESS) \ { \ printf("%s%s: %s%s\n", red, fct, pcsc_stringify_error(rv), color_end); \ (void)SCardReleaseContext(hContext); \ exit(-1); \ } \ } while(0) static void usage(void) { printf("usage: pcsc_scan [-n] [-V] [-h]\n"); printf(" -n : no ATR analysis\n"); printf(" -V : print version number\n"); printf(" -h : this help\n"); } /* usage */ int main(int argc, char *argv[]) { int current_reader; LONG rv; SCARDCONTEXT hContext; SCARD_READERSTATE *rgReaderStates_t = NULL; SCARD_READERSTATE rgReaderStates[1]; DWORD dwReaders = 0, dwReadersOld; DWORD timeout; LPSTR mszReaders = NULL; char *ptr, **readers = NULL; int nbReaders, i; char atr[MAX_ATR_SIZE*3+1]; /* ATR in ASCII */ char atr_command[sizeof(atr)+sizeof(ATR_PARSER)+2+1]; int opt; int analyse_atr = TRUE; const char *blue = ""; const char *red = ""; const char *magenta = ""; const char *color_end = ""; int pnp = TRUE; printf("PC/SC device scanner\n"); printf("V " VERSION " (c) 2001-2011, Ludovic Rousseau \n"); printf("Compiled with PC/SC lite version: " PCSCLITE_VERSION_NUMBER "\n"); while ((opt = getopt(argc, argv, "Vhn")) != EOF) { switch (opt) { case 'n': analyse_atr = FALSE; break; case 'V': /* the version number is printed by default */ return 1; break; case 'h': default: usage(); return 1; break; } } if (argc - optind != 0) { usage(); return 1; } /* check if terminal supports color */ { const char *terms[] = { "linux", "xterm", "xterm-color", "Eterm", "rxvt", "rxvt-unicode" }; char *term; term = getenv("TERM"); if (term) { size_t j; /* for each known color terminal */ for (j = 0; j < sizeof(terms) / sizeof(terms[0]); j++) { /* we found a supported term? */ if (0 == strcmp(terms[j], term)) { blue = "\33[34m"; red = "\33[31m"; magenta = "\33[35m"; color_end = "\33[0m"; break; } } } } rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &hContext); test_rv("SCardEstablishContext", rv, hContext); rgReaderStates[0].szReader = "\\\\?PnP?\\Notification"; rgReaderStates[0].dwCurrentState = SCARD_STATE_UNAWARE; rv = SCardGetStatusChange(hContext, 0, rgReaderStates, 1); if (rgReaderStates[0].dwEventState & SCARD_STATE_UNKNOWN) { timeout = TIMEOUT; printf("%sPlug'n play reader name not supported. Using polling every %ld ms.%s\n", magenta, timeout, color_end); pnp = FALSE; } else { timeout = INFINITE; printf("%sUsing reader plug'n play mechanism%s\n", magenta, color_end); } get_readers: /* free memory possibly allocated in a previous loop */ if (NULL != readers) { free(readers); readers = NULL; } if (NULL != rgReaderStates_t) { free(rgReaderStates_t); rgReaderStates_t = NULL; } /* Retrieve the available readers list. * * 1. Call with a null buffer to get the number of bytes to allocate * 2. malloc the necessary storage * 3. call with the real allocated buffer */ printf("%sScanning present readers...%s\n", red, color_end); rv = SCardListReaders(hContext, NULL, NULL, &dwReaders); if (rv != SCARD_E_NO_READERS_AVAILABLE) test_rv("SCardListReaders", rv, hContext); dwReadersOld = dwReaders; /* if non NULL we came back so free first */ if (mszReaders) { free(mszReaders); mszReaders = NULL; } mszReaders = malloc(sizeof(char)*dwReaders); if (mszReaders == NULL) { printf("malloc: not enough memory\n"); return 1; } *mszReaders = '\0'; rv = SCardListReaders(hContext, NULL, mszReaders, &dwReaders); /* Extract readers from the null separated string and get the total * number of readers */ nbReaders = 0; ptr = mszReaders; while (*ptr != '\0') { ptr += strlen(ptr)+1; nbReaders++; } if (SCARD_E_NO_READERS_AVAILABLE == rv || 0 == nbReaders) { printf("%sWaiting for the first reader...%s", red, color_end); fflush(stdout); if (pnp) { rgReaderStates[0].szReader = "\\\\?PnP?\\Notification"; rgReaderStates[0].dwCurrentState = SCARD_STATE_UNAWARE; rv = SCardGetStatusChange(hContext, INFINITE, rgReaderStates, 1); test_rv("SCardGetStatusChange", rv, hContext); } else { rv = SCARD_S_SUCCESS; while ((SCARD_S_SUCCESS == rv) && (dwReaders == dwReadersOld)) { rv = SCardListReaders(hContext, NULL, NULL, &dwReaders); if (SCARD_E_NO_READERS_AVAILABLE == rv) rv = SCARD_S_SUCCESS; sleep(1); } } printf("found one\n"); goto get_readers; } else test_rv("SCardListReader", rv, hContext); /* allocate the readers table */ readers = calloc(nbReaders+1, sizeof(char *)); if (NULL == readers) { printf("Not enough memory for readers table\n"); return -1; } /* fill the readers table */ nbReaders = 0; ptr = mszReaders; while (*ptr != '\0') { printf("%s%d: %s%s\n", blue, nbReaders, ptr, color_end); readers[nbReaders] = ptr; ptr += strlen(ptr)+1; nbReaders++; } /* allocate the ReaderStates table */ rgReaderStates_t = calloc(nbReaders+1, sizeof(* rgReaderStates_t)); if (NULL == rgReaderStates_t) { printf("Not enough memory for readers states\n"); return -1; } /* Set the initial states to something we do not know * The loop below will include this state to the dwCurrentState */ for (i=0; i 0) { printf(" ATR: "); if (rgReaderStates_t[current_reader].cbAtr) { unsigned int j; for (j=0; j insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME pcsc_scan \- regularly scans every PC/SC readers connected to the host .SH SYNOPSIS .BI "pcsc_scan [" options ] .SH DESCRIPTION This manual page documents briefly the .B pcsc_scan command. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBpcsc_scan\fP is a program that regularly scans every PC/SC readers connected to the host When \fBpcsc_scan\fP is started it asks \fBpcscd\fP the list of available smart card readers. The list is printed. A sequence number is printed before each reader. Example: PC/SC device scanner V 1.1.0 (c) 2001-2002, Ludovic Rousseau PC/SC lite version: 1.1.1 0: GemPC410 0 0 1: GemPC430 0 0 When a card is inserted in any reader some information is printed: .TP date and time: Thu Jun 13 18:56:14 2002 .TP reader name: Reader 0 (GemPC410 0 0) .TP card state and occured event: Card state: State has changed, Card inserted, .TP ATR in case of card insertion: ATR: 3B 82 00 86 1E .TP print an ATR analysis if the \fBATR_analysis\fP command is available: ATR: 3B 82 00 86 1E + TS = 3B --> Direct Convention + T0 = 82, Y(1): 1000, K: 2 (historical bytes) TD(1) = 00 --> Y(i+1) = 0000, Protocol T = 0 ----- + Historical bytes: 86 1E .SH OPTIONS .TP .B \-h print help .TP .B \-V print version number .TP .B \-n do not print ATR analysis .SH SEE ALSO .BR pcscd "(8), " ATR_analysis (1) .SH AUTHOR Ludovic Rousseau pcsc-tools-1.4.22/LICENCE0000644000175000017500000004311011203062533015143 0ustar rousseaurousseau GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. pcsc-tools-1.4.22/ATR_analysis.1p0000644000175000017500000000222011203062533016746 0ustar rousseaurousseau.TH ATR_ANALYSIS "1p" "October 2005" "Version: 1.3" "User Commands" .SH NAME ATR_analysis \- analyse a smart card ATR .SH SYNOPSIS .B ATR_analysis .RI [ ATRstring ] .SH DESCRIPTION .B ATR_analysis is used to parse the ATR (Answer To Reset) sent by a smart card. .P The command also tries to find the card model using an ATR database stored in a text file .IR smartcard_list.txt . The .I smartcard_list.txt file is searched in .IR ./ , .I /usr/local/pcsc/ and .I /usr/share/pcsc/ directories. .P Exemple: $ ATR_analysis '3B A7 00 40 18 80 65 A2 08 01 01 52' ATR: 3B A7 00 40 18 80 65 A2 08 01 01 52 + TS = 3B --> Direct Convention + T0 = A7, Y(1): 1010, K: 7 (historical bytes) TB(1) = 00 --> Programming Param P: 0, I: 0 TD(1) = 40 --> Y(i+1) = 0100, Protocol T = 0 ----- TC(2) = 18 --> Work waiting time: 960 x 24 x (Fi/F) + Historical bytes: 80 65 A2 08 01 01 52 Possibly identified card: 3B A7 00 40 18 80 65 A2 08 01 01 52 Gemplus GPK8000 .P .SH BUGS Maybe many bugs since I am not a ISO 7816 expert. .SH FILES .I smartcard_list.txt .SH "SEE ALSO" .BR pcscd "(8), " pcsc_scan (1) .SH AUTHOR Ludovic Rousseau pcsc-tools-1.4.22/gscriptor.1p0000644000175000017500000000305211203062533016435 0ustar rousseaurousseau.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH GSCRIPTOR 1p "octobre 19, 2001" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME gscriptor \- Perl script to send commands to a smart card using a Gtk GUI .SH SYNOPSIS .B gscriptor .SH DESCRIPTION This manual page documents briefly the .B gscriptor command. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. \fBgscriptor\fP is a program that sends commands to a smart card using a batch file. The syntax of the commands is the same as for scriptor(1). \fBscriptor\fP(1) is in text mode. \fBgscriptor\fP(1) uses a Perl-Gtk graphical user interface and may be more user friendly. See \fBscriptor\fP(1) for details on the comands format. .SH OPTIONS none .SH SEE ALSO .BR pcscd (1), scriptor (1) .br .SH AUTHOR This manual page was written by Ludovic Rousseau , for the Debian GNU/Linux system (but may be used by others). pcsc-tools-1.4.22/gscriptor.desktop0000644000175000017500000000021311203062533017562 0ustar rousseaurousseau[Desktop Entry] Name=Gscriptor Comment=Send commands to smart cards Exec=gscriptor Terminal=false Type=Application Categories=Utility;GTK; pcsc-tools-1.4.22/README0000644000175000017500000003176712266234456015074 0ustar rousseaurousseauSome tools to be used with smart cards and PC/SC ================================================ This archive contains some tools usefull for a PC/SC user. PC/SC lite [1] from MUSCLE [2]. The tools provided are: - pcsc_scan (Ludovic Rousseau ) regularly scans every PC/SC reader connected to the host if a card is inserted or removed a "line" is printed For example: PC/SC device scanner V 1.4.5 (c) 2001-2006, Ludovic Rousseau PC/SC lite version: 1.3.1 0: GemPC410 0 0 1: GemPC430 0 0 Wed Aug 21 10:08:02 2002 Reader 0 (GemPC410 0 0) Card state: Card removed, Wed Aug 21 10:08:09 2002 Reader 0 (GemPC410 0 0) Card state: Card inserted, ATR: 3B 6D 00 FF 00 31 80 71 8E 64 48 D5 02 00 82 90 00 ATR: 3B 6D 00 FF 00 31 80 71 8E 64 48 D5 02 00 82 90 00 + TS = 3B --> Direct Convention + T0 = 6D, Y(1): 0110, K: 13 (historical bytes) TB(1) = 00 --> Programming Param P: 0, I: 0 TC(1) = FF --> Extra guard time: 255 + Historical bytes: 00 31 80 71 8E 64 48 D5 02 00 82 90 00 Category indicator byte: 00 (compact TLV data object) Tag: 3, len: 1 (card service data byte) Card service data byte: 80 - Application selection: by full DF name - EF.DIR and EF.ATR access services: by GET RECORD(s) command - Card with MF Tag: 7, len: 1 (card capabilities) Selection methods: 8E - DF selection by full DF name - Implicit DF selection - Short EF identifier supported - Record number supported Tag: 6, len: 4 (pre-issuing data) Data: 48 D5 02 00 Mandatory status indicator (3 last bytes) LCS (life card cycle): 82 (Proprietary) SW: 9000 (Normal processing.) Possibly identified card: 3B 6D 00 FF 00 31 80 71 8E 64 48 D5 02 00 82 90 00 Blue for Business, American Express@Business Wed Aug 21 10:09:57 2002 Reader 0 (GemPC410 0 0) Card state: Card removed, - ATR_analysis (Christophe Levantis and Ludovic Rousseau) Perl script used to parse the smart card ATR. This script is called (by default) by pcsc_scan This code was originally written by Christophe in August 2000 for a Perl wrapper using "TLP driver" (and not PC/SC) to access the smartcard. - smartcard_list.txt (Ludovic Rousseau) This list contains ATR of some cards. The list is used by ATR_analysis to find a card model corresponding to the ATR. I took the initial list from SCEZ by Matthias Bruestle. Please send me () any ATR and card description not included in the list. - scriptor (Lionel Victor ) A Perl script to send commands to a smart card. You can use a file containing the commands or stdin. - gscriptor (Lionel Victor ) A Perl script to send commands to a smart card with GTK-based graphical interface. You will need the package pcsc-perl [3] to be able to use scriptor and gscriptor. [1] http://pcsclite.alioth.debian.org/ [2] http://linuxnet.com/ [3] http://ludovic.rousseau.free.fr/softwares/pcsc-perl/ Authors: ======== - Lionel VICTOR for scriptor and gscriptor - Ludovic ROUSSEAU for pcsc_scan, ATR_analysis and debug of scriptor and gscriptor - Christophe LEVANTIS for the original code of ATR_analysis Licences: ========= pcsc-tools Copyright (C) 2001 Lionel VICTOR Copyright (C) 2001-2012 Ludovic ROUSSEAU This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA History: ======== 1.4.22 - 17 January 2014, Ludovic ROUSSEAU - 215 new ATRS - Fetch a new ATR file if it was not upgraded in the last 10 hours. - Propose to use http://smartcard-atr.appspot.com/parse to submit a new ATR - minor fixes 1.4.21 - 5 Dec 2012, Ludovic ROUSSEAU - Do not log the time every second on "old" PC/SC without support of \\?PnP?\Notification like on Mac OS X. - 79 new ATRS - minor fixes 1.4.20 - 16 June 2012, Ludovic ROUSSEAU - Makefile: Add arguments to CFLAGS instead of overwritting them - 3 new ATRs 1.4.19 - 13 June 2012, Ludovic ROUSSEAU - ATR_analysis: use XDG_CACHE_HOME env variable The smartcard_list.txt file is now searched in ~/.cache/ by default - 115 new ATRs 1.4.18 - 18 December 2011, Ludovic ROUSSEAU - gscriptor: Display hex dumps in lines of 16 bytes instead of 17 - gscriptor: Display bytes of value 0x20 as ' ' instead of '.' - scriptor: Display lines of 16 bytes instead of 24 - 223 new ATRs - pcsc_scan: Correctly detect reader Plug and Play support 1.4.17 - 18 August 2010, Ludovic ROUSSEAU - 153 new ATRs - Allow to build with pcsc-lite >= 1.6.2 1.4.16 - 12 January 2010, Ludovic ROUSSEAU - 153 new ATR - pcsc_scan.c: check for PnP support at run time instead of using a #define - ATR_analysis: use curl instead of wget on Darwin - gscriptor: ReaderConfig(): escape metacharacters []() in the reader name when using reader name as a pattern matching 1.4.15 - 9 January 2009, Ludovic ROUSSEAU - 68 new ATR - ATR_analysis: . truncate the ATR if extra bytes are present (like on Leopard with an ATR padded with 0 up to 33 bytes) . add value for Di=7 (7816-3:2006 page 19) . check if Fi is RFU when calculating baud rate . display the max frequency associated with Fi - pcsc_scan.c: use "\\?PnP?\Notification" mechanism when possible 1.4.14 - 11 May 2008, Ludovic ROUSSEAU - 24 new ATR - gscriptor, scriptor: use SCARD_SHARE_SHARED instead of SCARD_SHARE_EXCLUSIVE to not lock the card - ATR_analysis: add support for ATR with : as byte separator (ATR reported by "opensc-tool --atr" for example) 1.4.13 - 23 March 2008, Ludovic ROUSSEAU - 29 new ATR - pcsc_scan: avoid a bug when the last reader is removed 1.4.12 - 2 February 2008, Ludovic ROUSSEAU - 18 new ATR - handle SCARD_E_NO_READERS_AVAILABLE when no reader is found 1.4.11 - 30 October 2007, Ludovic ROUSSEAU - 69 new ATR - use /usr/bin/env perl to get the correct Perl - print card description in blue 1.4.10 - 10 August 2007, Ludovic ROUSSEAU - 25 new ATR - scriptor: correctly display the ISO7816 error code even when the line is splitted - gscriptor: the line continuation feature was broken 1.4.9 - 1 June 2007, Ludovic ROUSSEAU - 69 new ATR - pcsc_scan.c: use pcsc_stringify_error() to display a human readable error message - ATR_analysis: add colors - scriptor: echo the lines read from a file (commands, comments and empty lines) 1.4.8 - 26 Novembre 2006, Ludovic ROUSSEAU - 14 new ATR - pcsc_scan: cleanly fail (instead of looping forever) if the pcscd daemon just dies - ATR_analysis: . add test for TC1=255 . add case TB1=0: VPP is not electrically connected . add the communication speed according to TA1 and a clock at 3.5712 MHz . use %g instead of %.3f to display the cycles/ETU value to have 31 instead of 31.000 1.4.7 - 4 October 2006, Ludovic ROUSSEAU - 10 new ATR - pcsc_scan.c: add a couple of fflush(stdout); to force the display so that redirection works. Thanks to Johannes Becker for the bug report 1.4.6 - 12 August 2006, Ludovic ROUSSEAU - 28 new ATRs in smartcard_list.txt - scriptor/gscriptor: allow multi-lines input and wrap long output. lines ending with \ are to continue on the next line. More easy to use a 64K-bytes long APDU. 1.4.5 - 8 May 2006, Ludovic ROUSSEAU - 9 new ATR - improve ATR_analysis: add code to parse the historical bytes 1.4.4 - 25 Mar 2006, Ludovic ROUSSEAU - 4 new ATR - improve gscriptor GUI: add icons in the dialog boxes, use button boxes - improve ATR_analysis: display and check TCK 1.4.3 - 9 Mar 2006, Ludovic ROUSSEAU - the glibc do not accept double free() anymore and stops the process instead "*** glibc detected *** double free or corruption (fasttop): 0x0804b070 ***". So be sure not to call free() a second time on the same pointer. 1.4.2 - 7 Mar 2006, Ludovic ROUSSEAU - 58 new ATR in smartcard_list.txt - pcsc_scan: add color output support - add a freedesktop.org compatible menu entry for gscriptor (thanks to Ville Skyttä) 1.4.1 - 29 May 2005, Ludovic ROUSSEAU - 42 new ATR in smartcard_list.txt - ATR_analysis: . accept 3B A7 00 40 18 80 65 A2 08 01 01 52 and not just '3B A7 00 40 18 80 65 A2 08 01 01 52' as command line argument . check ~/.smartcard_list.txt for known ATR . add instructions to download and install a new version of the list - gscriptor: if only one reader is found use it unconditionally 1.4.0 - 6 August 2004, Ludovic ROUSSEAU - 13 new ATR in smartcard_list.txt - rewrite of gscriptor using libgtk2-perl - if the command does not contains spaces (00A4030000) we expand it 1.3.4 - 4 July 2004, Ludovic ROUSSEAU - 5 new ATR in smartcard_list.txt - pcsc_scan.c: LPSTR -> LPTSTR for pcsc-lite 1.2.9 beta4 - scriptor, gscriptor: only send the 5 last characters of the response to Chipcard::PCSC::Card::ISO7816Error() The SW was sometimes not correctly parsed. - Makefile: use 'pkg-config libpcsclite [--cflags|--libs]' 1.3.3 - 2 April 2004, Ludovic ROUSSEAU - use a dynamic table for readers to avoid any use of the deprecated PCSCLITE_MAX_CHANNELS constant - 11 new ATR in smartcard_list.txt - add support of PCSC MacOS X framework 1.3.2 - 17 December 2003, Ludovic ROUSSEAU - scriptor: by default let pcscd select the protocol among T=0 and T=1 . print the protocol actually used . print textual status word according to ISO 7816 - gscriptor: change menu accelerator for Run so it can be used even if a text Text widget is selected . use paned windows to resize Script and Result frames . print textual status word according to ISO 7816 - 16 new ATR in smartcard_list.txt 1.3.1 - 29 Octobre 2003, Ludovic ROUSSEAU - ATR_analysis: only ask to send me the ATR and card description if it is a microprocessor card. I am not (yet) interested in a list of memory cards. - scriptor, scriptor.1p: add -p argument to specify the ISO 7816 protocol to use (T=0 or T=1) - 26 new ATR in smartcard_list.txt 1.3.0 - 31 May 2003, Ludovic ROUSSEAU - pcsc_scan.c: detect reader insertion/removal (USB) and adjust the reader list accordingly - 4 new ATR in smartcard_list.txt 1.2.5 - 25 May 2003, Ludovic ROUSSEAU - use new naming scheme from pcsc-perl Chipcard::PCSC instead of PCSC - 32 new ATR in smartcard_list.txt 1.2.4 - 28 Jan 2003, Ludovic ROUSSEAU - 20 new ATRs in the database - Makefile: use PCSCBASE to find libpcsclite library 1.2.3 - 16 Nov 2002, Ludovic ROUSSEAU - Add the URL of the latest smartcard_list.txt file in the error message printed if the ATR is not already known - use an updated version of smartcard_list.txt 1.2.2 - 15 Oct 2002, Ludovic ROUSSEAU - correct some compilation problems. See Makefile if you have a xBSD system - use an updated version of smartcard_list.txt. Thanks to all the contributors. 1.2.1 - 27 Aug 2002, Ludovic ROUSSEAU - add ATR to smartcard_list.txt - make the ATR match case insensitive 1.2.0 - 21 Aug 2002, Ludovic ROUSSEAU - creation of smartcard_list.txt - exploitation of the ATR list by ATR_analysis 1.1.0 - 14 Jun 2002, Ludovic ROUSSEAU - include ATR_analysis and support for it in pcsc_scan - modify pcsc_scan.c to listen to all the readers at once (Lionel) 1.0.4 - 6 Mar 2002, Ludovic ROUSSEAU - gscriptor: case insensitive on "reset" command - scriptor: case insensitive on "exit" and "reset" commands - add the history, authors and licence in this README 1.0.3 - 8 Nov 2001, Ludovic ROUSSEAU - pcsc_scan.c: set the wait time to 0 to get all the events - Makefile: add automatic rules to compress man pages and other modifications 1.0.2 - 22 Oct 2001, Ludovic ROUSSEAU - add manpages - pcsc_scan.c: go to the next reader _after_ printing information for the current one 1.0.1 - 18 Oct 2001, Ludovic ROUSSEAU $Id: README 6825 2014-01-17 14:07:36Z rousseau $ vim:ts=8: pcsc-tools-1.4.22/test.script0000644000175000017500000000061611203062533016367 0ustar rousseaurousseau# # Script to read a GSM SIM card # (c) 2001, Ludovic Rousseau # reset the card reset # Select MF 3F00 A0 A4 00 00 02 3F 00 # Get Reponse # 17 is the value of second SW from the previous command A0 C0 00 00 17 # Select DF Telecom (7F10) A0 A4 00 00 02 7F 10 # Get Response A0 C0 00 00 17 # Select EF_ADN (6F3A) (Abbreviated Dialing Numbers) A0 A4 00 00 02 6F 3A # Get Reponse A0 C0 00 00 0F