JavaCard
SoftwareA technology enabling Java-based applets to run on smart cards and secure elements, defined by Oracle.
JavaCard
JavaCardJavaCardSoftwareJava applet platform for smart cards.Click to view → is a technology that enables Java-based applications (applets) to run securely on smart cards and other Secure Elements. Originally developed by Schlumberger and now maintained by Oracle, JavaCard provides a portable, multi-application platform where applets from different providers can coexist on a single card, isolated from each other by the JavaCard firewall.
JavaCard Architecture
The JavaCard stack runs on top of the smart card hardware:
| Layer | Component | Function |
|---|---|---|
| Application | JavaCard applets | Business logic (payment, identity, access) |
| Framework | JavaCard API | Standard class libraries (crypto, I/O, security) |
| Runtime | JCRE (JavaCard Runtime Environment) | Bytecode interpreter, transaction manager, firewall |
| OS | Native card OS | Hardware abstraction, APDU dispatch, file system |
| Hardware | Secure Element | CPU, EEPROM/Flash, crypto coprocessor |
The JCRE provides a subset of the Java language — no floating point, no garbage collection, no threads, no dynamic class loading — optimized for the constrained resources of a smart card (typically 4 KB RAM, 128-512 KB ROM, 32-256 KB EEPROMEEPROMHardwareNon-volatile card memory for data.Click to view →).
Applet Lifecycle
JavaCard applets are managed through GlobalPlatform commands:
- Install: The applet CAP file (Converted APplet) is loaded onto the card via a secure channel (SCP03) and instantiated with a unique AID
- Select: A reader sends a SELECT APDU with the applet's AIDAIDProtocolUnique identifier for card applications.Click to view → to make it the active application
- Process: The applet receives command APDUs and returns response APDUs through its
process()method - Deselect: When another applet is selected, the current applet's
deselect()method is called - Delete: GlobalPlatformGlobalPlatformSoftwareCard application management standard.Click to view → DELETE command removes the applet and reclaims storage
JavaCard Versions
| Version | Year | Key Features |
|---|---|---|
| 2.1 | 1999 | First multi-application platform |
| 2.2.x | 2003-2006 | Biometric API, SHASHACryptographyNIST hash functions for smart card integrity and signatures.Click to view →-256, larger key sizes |
| 3.0.1 Classic | 2009 | ECCECCCryptographyEfficient public-key cryptography using elliptic curves.Click to view → support, enhanced crypto APIs |
| 3.0.4 | 2011 | AESAESCryptographyNIST symmetric block cipher for smart card encryption.Click to view →-CBC, improved I/O |
| 3.0.5 | 2015 | SHA-512, key agreement improvements |
| 3.1 | 2019 | TLS 1.2/1.3 support, larger APDUAPDUProtocolCommunication unit between card and reader.Click to view → buffers |
| 3.2 | 2024 | Post-quantum cryptography readiness, EdDSA |
JavaCard vs MULTOS
JavaCard and MULTOS are the two major multi-application smart card platforms. JavaCard dominates the market with 90%+ share due to its Java-based tooling, wider vendor support (NXP JCOP, Infineon SLE, Thales IDPrime), and GlobalPlatform management layer. MULTOSMULTOSSoftwareHigh-security multi-app card OS.Click to view → offers higher security certification (EAL 7) and a simpler execution model but is limited to a smaller vendor ecosystem.
Related Content
Smart Card Fundamentals
Getting Started…Cryptography None RSA, ECC, AES on-chip Applets N/A JavaCard , MULTOS Reprogrammable Limited Yes (post-issuance via OTA…
Smart Card Form Factors Explained
Getting Started…keys (Ki), and network operator credentials. On a JavaCard -capable SIM, additional APDU -addressed applets can be…
Smart Card Reader Setup Guide
Getting Started…Cases Contact (T=0/T=1) ISO 7816-3 PKI tokens, PIV cards, JavaCard dev Contactless (13.56 MHz) ISO 14443 / ISO 15693 NFC…
SIM Card Types Explained
Getting Started…PIN/PUK retry counters with lockout Applet isolation (via JavaCard in modern USIMs) OTA update authentication via SCP80 The…
Secure Channel Protocols (SCP02/SCP03)
Standards & ProtocolsPost-Quantum Cryptography for Smart Cards
Security…authentication. Implementation Status Platform PQC Status JavaCard 3.1 No native PQC API — external implementation via…
JavaCard Applet Development
ProgrammingJavaCard Applet Development JavaCard is the Java platform for…
APDU Command Reference
Programming…you are talking to a banking chip, an identity card, or a JavaCard applet, all commands and responses follow the same…
Häufig gestellte Fragen
The smart card glossary is a comprehensive reference of technical terms, acronyms, and concepts used in smart card technology. It covers protocols (APDU, T=0, T=1), security (Common Criteria, EAL, HSM), hardware (SE, EEPROM, contact pad), and applications (EMV, ePassport, eSIM). It serves developers, product managers, and engineers.
Yes. SmartCardFYI provides glossary definitions in 15 languages including English, Korean, Japanese, Chinese, Spanish, Portuguese, Hindi, Arabic, French, Russian, German, Turkish, Vietnamese, Indonesian, and Thai.