|
Release Notes
Java CardTM 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
This document introduces the Java CardTM
specifications,
version 2.2.2. The specifications include the following:
- Application Programming
Interface for the Java CardTM
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 CardTM
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 CardTM
Platform, Version 2.2.2
This specification defines the required behavior of a virtual machine
for
a Java Card technology-enabled device.
These specifications describe the platform standards of Java Card
technology,
version 2.2.2, and provide the foundation for designing
implementations
of
Java Card technology-enabled devices and tools.
[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
PDF files can be viewed in your web browser with an appropriate
plugin
or in Adobe® Acrobat Reader. Most recent browsers include the PDF
reader
plugin.
If your browser does not, you can download the plugin from the browser
vendor's
web site or the Adobe web site at 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
The following sections describe the changes to the specifications since
the version 2.2.1 release of the Java Card specifications.
Changes to
Application
Programming
Interface, Version 2.2.2
This section describes changes in the Application
Programming Interface Specification for
the Java Card Platform, Version 2.2.2.
Summary of Changes
The following is a summary of changes to the API specification:
- Made numerous JavadocTM 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
This section describes changes in the 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
This section describes changes in the 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 JDKTM
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
This section describes known bugs in the specification.
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
Visit the product web
site at http://java.sun.com/products/javacard
for up-to-date information on product news and
reviews on the following:
- Release Notes and Product Documentation
- Technical Support Contact Information
- Frequently Asked Questions (FAQs)
Copyright ©
2005 Sun
Microsystems, Inc. All rights reserved.