# JavaCards?

OpenSC (including initialization) works with JavaCards? if you have a supported applet on the card. JavaCards? can come in different flavors: empty, pre-loaded with an applet in EEPROM, with an applet in ROM, with a pre-loaded applet in a finalized state (can't be deleted).

Some JavaCards? come with a pre-loaded filesystem applet like IBM BlueZ PKCS#15 applet found on some JCOP and older Cyberflex cards. OpenSC 0.11.2 and later support the open source MuscleApplet applet which can be loaded to any blank JavaCard.

OpenSC only works with contact interface.

## Supported cards

Things to consider when buying JavaCards?

- EEPROM size. 32K, 64K, 72K and 128K sizes are common. Bigger is better.
- JavaCard version: 2.1.1, 2.2.1, 2.2.2. Older API versions don't support fancier features. Bigger is better.
- GlobalPlatform? version: 2.0.1 and 2.1.1 GP deals with loading applets onto cards.

## Obtaining an applet

Some open source applets usable with OpenSC

- MuscleApplet?: http://svn.debian.org/viewsvn/muscleplugins/trunk/MCardApplet/
- JavaCardSign? PKCS#15 applet: http://sourceforge.net/projects/javacardsign/
- OpenPGP applet: http://sourceforge.net/projects/jopenpgpcard/

Other interesting applets:

- MRTD (biometric passport) applet, from JMRTD: http://sourceforge.net/projects/jmrtd/
- http://github.com/costan/tem_fw

## Loading the applet

- GlobalPlatform? C library + GPShell: http://sourceforge.net/projects/globalplatform/
- GPJ: http://sourceforge.net/projects/gpj/

- Tags
- unsupported