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 :
Embedded APDU interpreter and vendor-specific 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
Exemples issus du SDK SpringCard PC/SC
SpringCard fournit un SDK pour le développement PC/SC (gratuit) qui inclut différentes applications de démo. Certaines d'entres elles sont directement offertes au téléchargement sur cette page (binaires pour Windows).
Vous pouvez les utiliser gratuitement, mais vous devez respecter notre contrat de licence.
- SpringCard PC/SC SDK (ZIP archive)
PC/SC DiagPC/SC Diagnostic 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. Il y a deux versions dans cet installeur comme dans le SDK : la version .NET (écrite en C#) et la version précédente pour Win32, écrite en C++ avec MFC (non supportée). Télécharger SpringCard PC/SC Diag (Windows setup) |
|
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#). Télécharger SpringCard csScriptor (Windows setup) |
|
NFCTool et NFCSpTrayNFCTool est un logiciel complet pour lire et écrire un SmartPosters ou une vCard depuis un tag compatible NFC Forum (le type 2 et le type 4 sont supportés). NFCSpTray s'installe dans la tray-bar et ouvre n'importe les URL lues depuis les tags SmartPoster. Le code source est fourni dans le SDK PC/SC (requiert le framework .NET, langage C#). Télécharger SpringCard NfcTool & NfcSpTray (Windows setup) |
|
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
Java
Le package Java SmartCard I/O API (javax.smartcardio) est défini par la JSR 268 et implémenté depuis 6 (JRE / JDK 1.6). C'est un moyen portable et interopérable de faire communication une applet ou une application Java avec les cartes à puces. Il fonctionne comme une surcouche à la pile PC/SC.
La documentation complète de l'API est disponible sur le site de Sun consacré à Java..
Nous avons rédigé un guide technique (en anglais) qui décrit en détail comment développer une applet Java qui sera le bridge entre une page web (HTML+JavaScript) et une carte à puce, à travers un lecteur PC/SC. L'applet devra être signée (pour pouvoir accéder aux cartes à puces qui sont hors de la sandbox du navigateur web). Elle devra également être scriptable, pour que le code JavaScript (interprété) puisse accéder aux cartes (et pas seulement le bytecode Java, compilé et signé).
- Lire notre PC/SC Technical Guide : a Java applet for smartcard-aware web pages,
- Démonstration en ligne de notre applet d'exemple.
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 objet 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

