Une courte introduction
PC/SC est le standard de facto concernant l'interaction d'un ordinateur personnel (PC) avec une ou plusieurs carte à puce (smartcard, SC), et évidemment via un ou plusieurs lecteurs/encodeurs. PC/SC est disponible sur la plupart des systèmes d'exploitation, dont Windows et Linux.
De nombreux documents et tutoriaux sont disponibles sur le Web pour présenter l'API PC/SC API, et notamment la documentation de référence sur MSDN. Si vous n'êtes pas encore familié de cette API, nous avons rédigé un court manuel (en anglais) qui constitue votre meilleur point de départ :
SpringCard's Simplified documentation of the PC/SC API
Comme l'architecture PC/SC a été conçue pour les cartes à puce -et à une époque où les cartes à puce sans contact n'existaient quasiment pas-, il n'y a a priori rien de simple dès qu'il s'agit de travailler avec des cartes sans contact, et surtout pas s'il s'agit de cartes à mémoire (badges Mifare par exemple).
Heureusement, la Famille SpringCard CSB6 simplifie considérablement les choses. Elle dispose en effet d'un interpréteur d'APDU embarqué, dont le rôle est de traduire les "commandes classiques des cartes à puce" en séquences permettant de lire et d'écrire toutes les cartes à mémoire et les tags RFID, simplement et efficacement.
La documentation correspondante fait l'objet de ce manuel :
CSB6 Family : PC/SC vendor specific attributes and commands
(Ce manuel contient également toutes les informations pour accéder au numéro de série du lecteur, piloter les LED ou le buzzer, arrêter le champ RF, etc).
Logiciels à télécharger sur ce site
SpringCard PC/SC Quickstart
SpringCard PC/SC Quickstart est un ensemble d'applications d'exemple, que vous pouvez télécharger librement.
Vous pouvez les utiliser gratuitement, mais vous devez respecter notre contrat de licence.
Le code source de ces applications est disponible gratuitement pour les clients enregistré, dans le SDK PC/SC.
- SpringCard PC/SC Quickstart (Windows 2000/XP/Vista installer)
- SpringCard PC/SC SDK (ZIP archive)
Contenu du SpringCard PC/SC Quickstart :
PC/SC DiagPC/SC Diag est un petit utilitaire pour échanger des APDU avec les cartes à puce ou les cartes sans contact. Il permet également d'envoyer des commandes dans la liaison "contrôle" des produits PC/SC SpringCard. Le code source est fourni dans le SDK PC/SC (Win32 natif, langage C++ avec MFC). |
|
C# ScriptorC# Scriptor est un outil de script PC/SC basique, qui permet d'envoyer des commandes APDU vers les cartes, depuis un fichier texte ou par saisie manuelle. Le code source est fourni dans le SDK PC/SC (requiert le framework .NET, langage C#). |
|
SCardToolkitSCardToolkit est un logiciel complet pour l'exploration des cartes à puce, au niveau de l'APDU. SCardToolkit est largement configurable, et est livré avec la liste des APDU supportés par les cartes sans contact les plus courantes. Le code source est fourni dans le SDK PC/SC (requiert le framework .NET, langage C#). |
|
Card ToolCard Tool vous permet de lire/écrire plusieurs types de carte via une interface "éditeur Hexadecimal". Cartes actuellement implementées : Le code source est fourni dans le SDK PC/SC (requiert le framework .NET, langage C#). |
|
Logiciels libres (open source)
gScriptor pour WindowsgScriptor est un outil de script PC/SC basique, qui permet d'envoyer des commandes APDU vers les cartes, depuis un fichier texte ou par saisie manuelle. gScriptor est un logiciel libre sous licence GPL ; les auteurs sont Lionel Victor et Ludovic Rousseau (page officielle du projet). gScriptor est écrit en Perl+GTK. Notre programme d'installation pour Windows inclut le runtime Perl+GTK. |
|
- gScriptor setup (Windows 2000/XP/Vista installer)
Autres ressources intéressantes
CodeProject
www.codeproject.com est un web board riche de nombreux tutoriaux et de nombreuses ressources pour les développeurs.
Ne manquez surtout pas les deux articles écrits par Olivier Rouit (et ses exemples avec code source bien documenté) :
- A smartcard framework for .NET fournit des méthodes de haut niveau pour appeler les fonctions PC/SC depuis les langages .NET (C#, VB, ...),
- An XML framework for .NET to program smartcard applications présente une approche intéressante pour séparer les commandes cartes bas niveau (APDU) de la logique applicative.
Le tutorial How to access smartcards simply and effectively contient aussi un exemple de code Visual C++, avec une approche peut-être un peu plus orientée object que celle de notre SDK.
SCardSoft
SCardSoft est une petite société basée en Ukraine. Ils proposent Smart Card ToolSet PRO, une application très utile pour qui veut se familiariser avec les cartes à puce au niveau de l'APDU, ainsi que SCard X Easy, un contrôle ActiveX qui facilite l'utilisation des cartes à puce depuis pratiquement n'importe quelle application ou n'importe quel langage -du moment qu'il supporte la technologie des ActiveX.
- Site web de SCardSoft : www.scardsoft.com

