wiki:ApplicationSupport

Using smart cards with applications

This is an incomplete list of (mostly open source) end-user applications that are capable of working with smart cards initialized and/or supported by OpenSC, grouped by function. Software development libraries and helpers are listed on DeveloperInformation page.

Connection authentication + encryption

Web browsers / HTTPS

SSH

  • See SecureShell for instructions on how to use OpenSSH or Putty

VPN

  •  OpenVPN (SSL VPN) supports PKCS#11 for client authentication.  Documentation
  •  strongSwan (IPSec VPN) supports PKCS#11 modules for RSA keys so it can be used with OpenSC.  Documentation and  installation instructions. StrongSwan has limitations in PKCS#11 slot ID length, see  this post on opensc-devel for more information.
  •  Openswan 2.4.X includes code to link directly against libopensc, this has been deprecated with OpenSC versions from 0.12 onwards.  README.x509 has a chapter 8 about smart card support. Openswan 2.6.X seem to have PKCS#11 support but there is no visible documentation.

Misc

Data signing + encryption

E-mail / S/MIME

Application specific document signing

Legally binding (non-repudiation) signature software

Local authentication / login

Disk encryption

  •  TrueCrypt can use PKCS#11 tokens as keyfile stores. NB! TrueCrypt does not use asymmetric keys generated on the card but stores symmetric keys as data files in the token! This requires write access to the token and keyfiles are extracted in plaintext on every use.
  •  Linux disk encryption

Miscellaneous applications

  •  GnuPG can be configured to work with whatever smart card that provides a PKCS#11 library. See  gnupg-pkcs11 for more information. Be aware - configuring and using this solution is not trivial.
  • HBCI Home banking

PKI/CA

  •  EJBCA is a complete open source J2EE implementation of CA and RA software. It supports PKCS#11 for CA key storage. Compatibility with issuing OpenSC created smart cards for end users has been tested. Using OpenSC cards to store CA keys are yet to be tested.
  •  OpenCA is an open source CA offering PKI services. It includes code to use the command line tools of OpenSC in a scripted way, no PKCS#11 support.
  •  XCA is an open source CA GUI using OpenSSL and QT4. It supports PKCS#11 to manage and use keys and certificates on smart cards.

Work in progress

The following projects are working on adding PKCS#11 support into their software. People who feel comfortable working with source code can check out the latest snapshots.

CA

  •  gnoMint is an X.509 Certification Authority management tool. Currently, it has two different interfaces: one for GTK/Gnome environments, and another one for command-line. Windows port soon (patch submitted). Import/Export? to pkcs12 format. Will soon include some OpenSC support.