| |
Release Notes
Java Card TM Specifications
Version 2.2.2
March 2006
|
| |
[ Skip TOC]
Table of Contents
- Introduction
- Supported Platforms
- Installation Instructions
- Release Contents
- New Features and Improvements
-
- Changes to Application Programming Interface, Version 2.2.2
- Changes to Runtime Environment Specification, Version 2.2.2
- Changes to Virtual Machine Specification, Version 2.2.2
- Known Bugs
Where to Find Product Information and News
-
Introduction
TM
- Application Programming Interface for the Java Card TM Platform, Version 2.2.2
This API defines a set of classes upon which Java Card technology-based applets can be constructed.
- Runtime Environment Specification for the Java Card TM Platform, Version 2.2.2
This specification describes the runtime environment required for interoperable Java Card technology-based applet execution.
- Virtual Machine Specification for the Java Card TM Platform, Version 2.2.2
This specification defines the required behavior of a virtual machine for a Java Card technology-enabled device.
[ Top]
Supported Platforms
The documents are accessible on any computer system with an unzip utility, Adobe Acrobat Reader (version 4.0 or later), and a CSS-compliant web browser.
HTML can be viewed with any CSS-compliant browser software, such as:
- Netscape Communicator, version 5.0 or later
- Mozilla, version 1.1 or later
with an appropriate plugin http://www.adobe.com/products/acrobat/readstep.html.
[ Top]
Installation Instructions
Download and unzip the specification bundle. The specifications are unzipped into a jc_specification/specs directory ( jc_specification\specs on the Microsoft Windows XP platform). The specifications are placed in these subdirectories under specs:
api - contains the Java Card API specification in PDF format ( JavaCard222API.pdf) and an html subdirectory that contains the API specification in HTML format.
jcre - contains the Java Card runtime environment specification in PDF format ( JavaCard222JCREspec.pdf) and an html subdirectory that contains the runtime environment specification in HTML format.
jcvm - contains the Java Card virtual machine specification in PDF format ( JavaCard222VMspec.pdf) and an html subdirectory that contains the Java Card virtual machine specification in HTML format.
[ Top]
Release Contents
The following table provides links to the documentation for the Java Card technology specifications, version 2.2.2.
| Document |
Description |
| Application Programming Interface for the Java Card Platform, Version 2.2.2 |
Provides application developers and platform and tools implementers the documentation for a Java Card technology conformant Java Card API.
|
|
| Virtual Machine Specification for the Java Card Platform, Version 2.2.2 |
Provides application developers and platform and tools implementers the documentation for a Java Card technology conformant Java Card Virtual Machine implementation.
|
| Runtime Environment Specification for the Java Card Platform, Version 2.2.2 |
Provides application developers and platform and tools implementers the documentation for a Java Card technology conformant Java Card Runtime Environment implementation. |
[ Top]
New Features and Improvements
Changes to Application Programming Interface, Version 2.2.2
Application Programming Interface Specification for the Java Card Platform, Version 2.2.2
Summary of Changes
- Made numerous Javadoc TM tool file formatting and font improvements
- Added support for ISO7816-4:2005 and 20 logical channels
- Added applet programmability assists for ISO 7816 defined extended length APDU
- MessageDigest now supports the initial message digest capability
- Added support for the following new hashing algorithms:
-
- SHA-256, SHA-384, SHA-512
- Added support for the following new signature algorithms:
-
- ISO9796-2 with message recovery
- HMAC
- Korean SEED MAC NOPAD
- Added support for the following new cipher algorithms:
-
- New extension package for ISO 7816 defined extended length APDU
- New extension package for External Memory Subsystem access
- New extension package for Biometry
- New extension framework package includes
-
- utility package to manipulate arrays and primitives of short and int type
- math package for BCD and DES parity computations
- TLV package for managing BER-TLV structures
Detailed List of Changes since 2.2.1
-
- Package: javacard.framework
-
- Class: APDU
-
- Class description
-
- Added comments on header format for extended length transfers
- Defines the extended length tagging Interface - " javacardx.apdu.ExtendedLength"
- Added note about the APDU Case number notation used in method descriptions
- Method getCLAChannel
-
- returns a channel number between 0-19
- New methods isISOInterindustryCLA, isCommandChainingCLA, isSecureMessagingCLA
-
- convenience methods for parsing CLA format
- New methods getIncomingLength, getOffsetCData
-
- convenience methods for managing extended length APDU
- Methods setOutgoing() and setOutgoingNoChaining()
-
- Added note to methods to require previous call to setIncomingAndReceive() for case 4
- Added comments on semantics for extended length transfers
- Added sentence to say that the method must only be called in APDU case 2 and 4
- Methods setIncomingAndReceive ()
-
- Added comments on semantics for extended length transfers
- Added sentence to say that the method must only be called in APDU case 3 or 4
- Methods setOutgoingLength ()
-
- Clarified that ILLEGAL_USE exception if
setOutgoing() or setOutgoingNoChaining() not previously called
- Methods getCurrentAPDU () and getCurrentAPDUBuffer ()
-
- Clarified in method description that these must be called during the
Applet.process() method
- Class: Applet
-
- Class description
-
- Added comments on optional tagging interface for extended length transfers
- Method process()
-
- Added comments on semantics for extended length transfers
- Interface ISO7816
-
- New constant fields: SW_LAST_COMMAND_EXPECTED and SW_COMMAND_CHAINING_NOT_SUPPORTED
-
- Response status words to support ISO7816-4:2005 defined command chaining
- Reworded definition of SW_LOGICAL_CHANNEL_NOT_SUPPORTED to be more generic.
- Class: Util
-
- Methods getShort() and setShort()
-
- Fixed typo in
ArrayIndexOutOfBoundsException clause
- Package: javacard.framework.service
-
- Class: BasicService
-
- Clarify that CSF format is not defined for extended length transfers
- Package: javacard.security
-
- New Interface: HMACKey
-
- Key interface to encapsulate HMAC algorithm keys
- New Class: InitializedMessageDigest
-
- Subclass of MessageDigest class with additional initialization method
- Class: KeyBuilder
-
- New Fields: TYPE_KOREAN_SEED_TRANSIENT_RESET, TYPE_KOREAN_SEED_TRANSIENT_DESELECT, TYPE_KOREAN_SEED, TYPE_HMAC_TRANSIENT_RESET, TYPE_HMAC_TRANSIENT_DESELECT, TYPE_HMAC
- Constant identifiers for keys for new signature and cipher algorithms
- New Interface: KoreanSEEDKey
-
- Key interface to encapsulate Korean SEED algorithm keys
- Class: MessageDigest
-
- New Fields: ALG_SHA_256, ALG_SHA_384, ALG_SHA_512
- Constant identifiers for new message digest algorithms
- New Fields: LENGTH_SHA, LENGTH_MD5, LENGTH_RIPEMD160, LENGTH_SHA_256, LENGTH_SHA_384, LENGTH_SHA_512
- Constant identifiers for lengths of message digests
- New Method: getInitializedMessageDigestInstance
-
- factory method to obtain instance with initial message digest capability
- Methods update() and doFinal()
-
- Throw exception if the accumulated length exceeds algorithm specific maximum
- Class: Signature
-
- New Fields: ALG_HMAC_SHA1, ALG_HMAC_SHA_256, ALG_HMAC_SHA_384, ALG_HMAC_SHA_512, ALG_HMAC_MD5, ALG_HMAC_RIPEMD160, ALG_RSA_SHA_ISO9796_MR, ALG_RSA_RIPEMD160_ISO9796_MR, ALG_KOREAN_SEED_MAC_NOPAD
-
- Constant identifiers for new signature algorithms
- Methods init(Key, byte), init(Key, byte, byte[], short, short)
-
- Added implementation note on optimal performance
- New Interface: SignatureMessageRecovery
-
- Specialized signature interface for message recovery algorithms
- Package: javacardx.crypto
-
- Class: Cipher
-
- New Fields: ALG_KOREAN_SEED_ECB_NOPAD, ALG_KOREAN_SEED_CBC_NOPAD
-
- Constant identifiers for new signature algorithms
- Methods init(Key, byte), init(Key, byte, byte[], short, short)
-
- Added implementation note on optimal performance
- New Package: javacardx.apdu
-
- extension package with tagging interface for extended length transfers
- New Package: javacardx.biometry
-
- extension package for biometric server and client applets
- New Package: javacardx.external
-
- extension package for accessing non-Java Card runtime environment managed memory subsystems
- New Package: javacardx.framework
-
- extension framework package containing programmer utilities
- New Package: javacardx.framework.math
-
- extension package with BCD arithmetic and parity computation utilities, as well as the BigNumber API
- New Package: javacardx.framework.tlv
-
- extension package with TLV parsing and construction utilities
- New Package: javacardx.framework.util
-
- extension package with short and int array manipulation utility
- New Package: javacardx.framework.util.intx
-
- extension package with int array and primitive manipulation utility
Changes to Runtime Environment Specification, Version 2.2.2
Runtime Environment Specification for the Java Card Platform, Version 2.2.2
Summary of Changes
- Added support for ISO7816-4:2005 and 20 logical channels
- Management of logical channels in contactless interface and in concurrent dual interface mode defined
- Java Card RE support for extended length APDU defined
- Punctuation and rewording changes for readability and trademark restrictions
- Font changes for conformance with Sun's style guide for specifications
- Grammatical corrections for conformance with Sun's style guide for specifications
- improved list introductions
- fixed some verb tenses to present tense
Detailed List of Changes since 2.2.1
- Chapter 2
-
- Introduction section
-
- Note on use of acronym CAD added to include use in contactless mode
- Chapter 3
-
- Section 3.6
-
- Categorizes RF field loss and ISO14443 S(DESELECT) command reception in contactless card as cases of power loss and reset.
- Section 3.6.1
-
- New section defines the behavior of dual interface cards operating concurrently in both contact and contactless modes when RF field loss occurs and when ISO14443 S(DESELECT) command is received.
- Chapter 4
-
- Introduction section
-
- Notion of different I/O interfaces and dual interfaces is introduced
- Behavior of card reset and tear in concurrent dual interface mode defined
- Up to 20 channels on each I/O interface possible
- Updated Figure 4-1 to illustrate logical channels on I/O interfaces
- Section 4.1
-
- Notion of default applet extended to contactless logical channels
- Section 4.2
-
- Updated multiselection figures 4-2, 4-3 for additional possible logical channels
- Section 4.3
-
- Re-written to describe the CLA encoding and parsing requirements of ISO7816-4:2005
- Section 4.5.1, 4.5.2, 4.6.1
-
- Updated the processing sequence of SELECT and MANAGE CHANNEL APDU commands for the ISO7816-4:2005 CLA encoding rules
- Behavior of SELECT and MANAGE CHANNEL APDU command binding to source I/O interface defined
- Chapter 8
-
- Section 8.3.5.2
-
- Added RMI protocol exception type values for the newly defined exception classes
- Section 8.4
-
- Added note on Java Card remote method invocation (Java Card RMI) APDU messages using short length format only
- Updated Table 8-1 and 8-2 to reflect new CLA encoding from ISO7816-4:2005.
- Chapter 9
-
- Section 9.4.4
-
- Behavior of Java Card RE for extended length APDU support described
- Section 9.7
-
- New section "Optional Extension Packages" describes the optional nature of the API packages named "
javacardx.*"
- Chapter 12
-
- Section 12.14-12.28
-
- New API constants value assignments added
Changes to Virtual Machine Specification, Version 2.2.2
Virtual Machine Specification for the Java Card Platform, Version 2.2.2
Summary of Changes
- Punctuation and rewording changes for readability and trademark restrictions
- Font changes for conformance with Sun's style guide for specifications
- Java Card platform language aligned with JDK TM version 1.5 technology and tools
Detailed List of Changes since 2.2.1
- Chapter 2 Java Card Platform Language Subset
-
- Section 2.2.1.1 - Unsupported features
-
- Added items:
-
- Typesafe Enums
- Enhanced for Loop
- Varargs
- Runtime Visible Metadata (Annotations)
- Assertions
- Section 2.2.1.2 - Unsupported keywords
-
- Section 2.2.2 - Supported features
-
- Added items:
-
- Generics
- Static Import
- Runtime Invisible Metadata(Annotations)
- Section 2.3.1.1 - VM Subset - Not supported in Class files
-
- Class access flags item - ACC_ENUM
- Methods - ACC_VARARGS
- Fields - ACC_ENUM
- Section 2.3.1.1 - VM Subset - Supported in Class files
-
- Attributes - RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations
- Section 2.3.3.4 - VM Subset - Support for exceptions and errors
-
- Added items:
-
- AssertionError
- UnsupportedClassVersionError
Known Bugs
| BUG ID |
TYPE |
DESCRIPTION |
| 6270320 |
RFE |
"Suite B" algorithms missing from Java Card specifications. |
| 6350704 |
RFE |
Add the following algorithms RSA-KEM/AES Wrap. |
| 6270329 |
RFE |
Add support for transient private keys in specifications |
| 6350708 |
RFE |
64K support for ExtendedLength. |
| 6356185 |
RFE |
No support for contactless feature - AFI (Application Family Identifier). |
Where to Find Product Information and News
JavaCard
- Release Notes and Product Documentation
- Technical Support Contact Information
- Frequently Asked Questions (FAQs)
Copyright © 2005 Sun Microsystems, Inc. All rights reserved.