Release Notes

Java Card TM Specifications
Version  2.2.2

March 2006

 

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.

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.

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.

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:
    • Korean SEED NOPAD
  • 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
      • Class description
      • 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
      • Added items:
        •  enum
        • assert
    • 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.

Left Curve
Embedded Downloads
Right Curve


Duke's Choice RHS Banner

JavaOne 2014 Replay banner