top of page

Running on this bench today

running at the jNet bench

Javelin OS-PQC

Designed for FIPS 140-3. ML-DSA and ML-KEM run in the OS core. Java Card 3.3* PQC APIs.

running at the jNet bench

In-field upgrade

OS, crypto library, and applets are updated with all on-card data retained.

running at the jNet bench

Eclipse PQC plug-in

Wizard-generated PQC applet source matching the crypto-accelerated APIs.

running at the jNet bench

Windows enablement

Minidriver, KSP, and Credential Provider smart card logon.

running at the jNet bench

Cross-platform and mobile

PKCS#11 on Windows, Linux, and macOS; CCID + NFC for Android and iOS.

running at the jNet bench

PQC applets

PIV and FIDO2 first; crypto wallet, OpenPGP, EMV, ICAO, and mDoc.

Javelin OS-PQC

ML-KEM (FIPS 203) and ML-DSA (FIPS 204) implemented in the Java Card OS core, not in applets. Hybrid ECC + PQC transition support. Designed for FIPS 140-3, lab testing from Q1 2027.

Built for production deployment, hybrid PQC transition, and FIPS 140-3 planning.

Harvest now, decrypt later

Encrypted identity, payment, and authentication data collected today may remain readable after Q-Day.

Signature forgery at scale

Post-CRQC attacks on ECDSA could enable impersonation of trusted credentials and signing authorities.

Deployment lifetime mismatch

Devices approved today may still be active in the Q-Day window, making PQC a manufacturing-time decision.

The Threat Model

ECC still underpins credentials

ECC remains embedded in credential stacks shipping today across identity, payment, travel, and authentication use cases.

Algorithm Deep Dive

Two NIST standards
One Java Card OS

From Java Card runtime to PQC extension layers: structured for deployment, migration, and certification planning.

ML-DSA

NIST FIPS 204

CRYSTALS-Dilithium

Digital Signature Algorithm

ML-DSA is NIST's primary post-quantum digital signature standard. Android 17 ships ML-DSA for Verified Boot, Remote Attestation, and Keystore signing, the same scheme Javelin OS-PQC runs in the Java Card OS core. ML-DSA replaces ECDSA for code signing, applet attestation, ePassport active authentication, and PIV card authentication.

TECHNICAL PARAMETERS

Security level

ML-DSA-44 (L2), ML-DSA-65 (L3), ML-DSA-87 (L5)

Public key size

2,592 bytes (vs. 64 bytes for P-256)

Signature size

2,420 to 4,627 bytes

Java Card API

Java Card 3.3* API (final class names follow Oracle's

release)

Use in Javelin

PIV, FIDO2 attestation, applet signing

FIPS status

FIPS 204, final standard (August 2024)

INTERACTIVE TOOL

See ML-KEM and ML-DSA in action

Explore ML-KEM key exchange and ML-DSA digital signatures directly in your browser. Generate keys, sign and verify messages, inspect cryptographic output, and convert data between common formats.

INTERACTIVE TOOL.jpg

MIGRATION ARCHITECTURE

Three deployment modes, one migration path

Javelin OS-PQC enables a phased migration from classical cryptography to hybrid and PQC-native deployment. Each mode is designed to support real production timelines, certification planning, and gradual rollout.

Mode 1

Classical

Today.

ECDSA / RSA / AES only

Full Java Card v3.2 compliance

Existing applets remain unchanged

No native PQC support

MODE 2

Hybrid

Through the 2030 and 2031 federal deadlines.

Classical + ML-KEM / ML-DSA in parallel

Dual-signature operation where required

Backward-compatible deployment path

Protected against both classical and quantum attacks

RECOMMENDED NOW

MODE 3

PQC Native

After migration, per issuer policy.

ML-KEM and ML-DSA only

Classical crypto disabled where required

Full FIPS 203 / 204 alignment

Lowest long-term attack surface

HYBRID IMPLEMENTATION

Same Java Card API surface across classical, hybrid, and PQC-native deployment modes

// Illustrative. Final class and constant names follow Oracle's

// Java Card 3.3* release. Javelin OS-PQC tracks the Java Card Forum draft.

Signature ecdsa = Signature.getInstance(Signature.ALG_ECDSA_SHA_256, false);

Signature mldsa = Signature.getInstance(PQC_ML_DSA_65 /* JC 3.3 identifier */,

false);

// Hybrid: two signatures over the same data, returned together

short len = ecdsa.sign(data, off, dlen, out, (short) 0);

len += mldsa.sign(data, off, dlen, out, len);

// ML-KEM decapsulation replaces ECDH for key establishment

// (KEM class per Java Card 3.3*; hybrid with ECDH supported)

HARDWARE SIZING

Sizing the part

Choose the silicon around the applet set, key set, and working-memory requirements of your PQC deployment.

SLC27

Contactless & dual-interface

Smartcards, eID and ePassport. Infineon’s Common Criteria-certified ML-KEM and ML-DSA library. In-field update and crypto agility.

SLC22

Tokens & embedded IC

TEGRION SLx22 family. jNet reference for tokens and embedded IC deployments. Size memory to the applet set and key set for your target configuration.

ML-DSA key generation and signing need working RAM, not just storage. Size the part to the applet set, then to the key set.

IN-FIELD UPGRADE

Upgrading a card already in the field

Update the OS, crypto library, and applets on cards already in the field while retaining critical on-card data. Separate upgrade paths keep the platform and applet layers manageable without card reissue.

Technical FAQ

PQC in Java Card: common questions

Abstract blue-gray wave background animation

Ready to evaluate Javelin™ PQC?

Talk to jNet about Java Card integration, hybrid deployment, and PQC architecture planning for your applet portfolio.

bottom of page