The arrival of the Java Card Development Kit 24.0

February 21, 2024 | 6 minute read
Nicolas Ponsini
Consulting Product Manager
Text Size 100%:

Java Card DevKit 24.0

I am delighted to announce the release of the latest Java Card Development Kit, version 24.0. This release marks a big step forward for application developers, and the entire Java Card team is excited to offer and maintain it for wide adoption.

The Java Card Development Kit is a suite of components and tools for developing applets based on the Java Card Specifications and designing implementations of Java Card technology.

The Java Card Development Kit consists of three independent downloads:

  • The Java Card Development Kit Tools are used to convert and verify Java Card applications. The Tools can be used with products based on version 3.2 of the Java Card specifications as well as products based on versions 3.0.4, 3.0.5 and 3.1 of the Java Card Platform specifications.
  • The Java Card Development Kit Simulator offers a reference runtime to Java Card applications which implements version 3.2 of the Java Card specifications.
  • The Java Card Development Kit Eclipse Plug-in offers an easy path for developing, testing, and debugging Java Card applications using the Eclipse IDE.

Together, these three downloads provide a complete, stand-alone development environment in which applications written for the Java Card platform can be developed and tested. Please refer to the release notes and the user guides for more details.

This release is part of Oracle's desire to enrich the Java Card application developer ecosystem. This new development kit includes numerous improvements to provide a more complete set of features and better integration with development environments. The following are release highlights:

 

Linux and Windows Support

To provide a more complete development experience, the development kit is now supported on Linux as well as Windows.

The simulator and its plug-in for Eclipse as well as the tools are available for these two operating systems to reach an even larger audience of developers. Expanded operating system support provides more options to use various CI/CD frameworks to continuously build and test Java Card applications during the development process.

 

Improved  Client Host API

The API allowing communication with a smart card from a host environment is now based on standards.

Multiple communication options are available to use the simulator:

  • Java™ Smart Card I/O API (javax.smartcardio):  This package defines a Java API for communication with Smart Cards using ISO/IEC 7816-4 APDUs, which allows Java applications to interact with applications running on the Smart Card, to store and retrieve data on the card, etc.
  • PCSC interface:  Allows you to communicate with the simulator as if it were a card reader.

These two new ways of communicating allows developers to interact with Java card applications running on the simulator in the same manner as if they were interacting with applications on a real Java Card.

 

Improved Application Management Interface

Managing applications on a smart card is a crucial point for the deployment of security services once smart cards are in the field.  GlobalPlatform is an organization that has been established by leading companies from the payments and communications industries, the government sector and the vendor community. GlobalPlatform defines a flexible and powerful specification for Card Issuers to create single- and multi-Application chip card systems to meet the evolution of their business needs.

The simulator has been aligned with the best-in-class standards to more closely resemble Java Card products being manufactured today.  The simulator supports the GlobalPlatform v2.3.1 specifications for application management as well as its API version 1.6.  For more details on supported GlobalPlatform features, please refer to Annex B of the Simulator User Guide.

 

Extended Cryptography Support

The Java Card cryptographic API continues to reflect state of the art algorithms and key management. The simulator offers support for a wide choice of cryptographic algorithms and related operations.

Algorithms

Operations

Keys

NIST SP 800-90A DRBG

Pseudo Random Generation

-

CRC16, CRC32

Checksum

-

SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, MD5, RIPEMD-160

Message Digest

-

Symmetric Cryptography

 

 

HMAC (SHA-1, SHA-256)

Signature

up to 512 bits

HKDF (SHA-1, SHA-256)

Key Derivation

up to 512 bits

DES, 3DES (2 keys, 3 keys)

Cipher, MAC Modes: ECB, CBC Paddings: ISO 9797 (M1, M2), PKCS5

64, 128, 192 bits

AES

Cipher, AEAD, MAC Modes: ECB, CBC, CFB, XTS, CCM, GCM Paddings: ISO 9797 (M1, M2), PKCS5

128, 192, 256 bits

Korean Seed

Cipher, MAC Modes: ECB, CBC

128 bits

Asymmetric Cryptography

 

 

DSA

DSA Signature

1024, 2048 bits

RSA

Cipher, Signature schemes: PKCS1, PSS, OAEP

up to 4096 bits

DH

DH Key Agreement

1024, 2048 bits

ECC

ECDSA Signature, ECDH & PACE Key Agreement

NIST & Brainpool (112 to 521 bits

For more details on supported cryptographic features please refer to Annex A of the Simulator User Guide.

 

More Information about Java Card Technology can be find on oracle.com

Java Card Home Page

Java Card Home Page

Java Card Documentation

Java Card Downloads

 

Nicolas Ponsini

Consulting Product Manager


Previous Post

Java at the heart of delivering German Health Care Insurance excellence

Philip Wilkins | 3 min read

Next Post


Java users on macOS 14 running on Apple silicon systems should skip macOS 14.4 and update directly to macOS 14.4.1

Aurelio Garcia-Ribeyro | 2 min read