Sun Logo


Development Kit User’s Guide

Java Cardtrademark Platform, Version 3.0.1

Connected Edition

May 2009



Contents

Figures

Tables

Preface

Part I Setup, Samples and Tools

1. Introduction

Platform Architecture

Development Kit Description

Connected Edition Features

Connected Edition Security Model

Application Models

Development Kit Contents

Reference Implementation

Tools

Samples

System Requirements

Additional Software

Java Card TCK

2. Installation

Prerequisites to Installing the Development Kit

Install and Setup the Development Kit

Install the Development Kit

Setting Up the System Variables

Uninstalling the Development Kit

3. Developing Java Card 3 Platform Applications

Development Steps

4. Running the Samples

General Procedures for Running Samples

Run Samples from the Command Line

Accepting an Untrusted Certificate

Running Web Application Samples

Running the HelloWorld Sample

Run HelloWorld

Running the ContainerManagedAuthentication Sample

Run ContainerManagedAuthentication

Running the StaticSecureWebHosting Sample

Run StaticSecureWebHosting

Running the DynamicSecureWebHosting Sample

Run DynamicSecureWebHosting

Running the GCFClient Sample

Run GCFClient

Running the DynamicallyLoadedClasses Sample

Run DynamicallyLoadedClasses

Running the Persistence Sample

Run Persistence

Running the RestartableTasks Sample

Run RestartableTasks

Running the Transactions Sample

Run Transactions

Running the SIOFacility Sample

Run SIOFacility

Running the EventFacility Sample

Run EventFacility

Running the CardHolderAuthorization Sample

Run CardHolderAuthorization

Running Classic Applet Samples

ClassicChannels Sample

Run the ClassicChannels Sample

Running Extended Applet Samples

Description of Extended Applet Samples

Building the Extended Applet Samples

Running the HelloWorld Sample

Run the HelloWorld Sample

Running the ExtendedChannels Sample

Run the ExtendedChannels Sample

Running Reference Application samples

Description of reference_apps Samples

Directories and Files in the reference_apps Directory

Building a Transit Sample Application

Running the Transit Sample

Run the Transit Sample

5. Starting the Java Card Runtime Environment

Starting cjcre.exe from the Command Line

cjcre.exe Command Line Options

Java Card Runtime Environment Configuration Files

Adding Proprietary Packages

6. Compiling Source Code

Running the Compiler Tool from the Command Line

Compiler Tool Options

Format

Examples

7. Creating and Validating Application Modules

Packager Operation

Options

Basic Packaging Sequence

Use Cases

Signing

Use Cases

Running the Packager from the Command Line

create Subcommand

create Subcommand Options

create Subcommand Format

create Subcommand Examples

validate Subcommand

validate Subcommand Options

validate Subcommand Format

validate Subcommand Example

copyright Subcommand

copyright Subcommand Options

copyright Subcommand Format

copyright Subcommand Example

help Subcommand

help Subcommand Options

help Subcommand Format

help Subcommand Example

Use Cases

8. Loading and Managing Applications

Description of the On-Card Installer

On-card Installer Operation

On-card Installer Functionality

Description of the Installer Tool

Running the Installer Tool

load Subcommand

create Subcommand

delete Subcommand

unload Subcommand

list Subcommand

help Subcommand

Card Installer Use-Case

Load an Application

Pre-Conditions

Post-Conditions

Sequence of Events

9. Backwards Compatibility for Classic Applets

Generating Application Modules From Classic Applets

Running the Normalizer

normalize Subcommand

copyright Subcommand

help Subcommand

Converting Class Files to CAP Files

Specifying an Export Map

Loading Export Files

Creating a debug.msk Output File

Verification of Input and Output Files

File and Directory Naming Conventions

Input File Naming Conventions

Output File Naming Conventions

Running the Converter

converter Command Options

Using a Command Configuration File

Using Delimiters with Command Line Options

10. Using the APDU Tool

Running the APDU Tool From the Command Line

Examples of Using the APDU Tool

Directing Output to the Console

Directing Output to a File

Using APDU Script Files

11. Debugging Applications

Debugger Architecture

Using the Debugger

Debug a Java Card 3 Platform Application

Configuring the Debugger

Part II Programming With the Development Kit

12. Configuring the RI

Configuring Authenticators

Creating Custom Protection Domains

Creating a Custom keystore

Configuring SSL Support

13. Building the RI From Sources

Prerequisites to Building the RI

Contents of JC_CONNECTED_HOME /src Folder

Running the ROMizer Tool

Example Contents of Apps List File

Romizer Tool Output

Building a Custom cjcre.exe

Preprocessor Symbols to Customize the VM

Build a Custom RI

Test the Custom RI

14. Programming to the Java Card RMI Client-Side API

Remote Stub Object

Java Card RMI Client-Side API

Package rmiclientlib

Package clientlib

15. Working with APDU I/O

The APDU I/O API

APDU I/O Classes and Interfaces

Exceptions

Two-interface Card Simulation

Examples of Use

To Connect To a Simulator

To Establish a T=0 Connection To a Card

javax.comm Package

To Establish a Connection To a PC/SC-Compatible Card Reader

To Power Up And Power Down the Card

To Exchange APDUs

To Print the APDU

16. Generating SSL Keys and Certificates

SSL and HTTPS Certificates and Keys

Generating an SSL Certificate

A. Application Module and Library Formats

Web Application Module Format

Extended Applet Application Module Distribution Format

Classic Applet Application Module Format

Extension Library Format

Classic Library Format

B. Installed Directories and Files

Directories and Files Installed in the src Directory

C. Development Kit Tool Commands

apdutool.bat Command

cjcre.exe Command

cjcre.exe Options

converter.bat Command

converter Command Options

debugproxy.bat Command

installer.bat Command

load Subcommand

load Options

load Arguments

load Subcommand Format

load Subcommand Example

create Subcommand

create Options

create Arguments

create Subcommand Format

create Subcommand Example

delete Subcommand

delete Options

delete Arguments

delete Subcommand Format

delete Subcommand Example

unload Subcommand

unload Options

unload Arguments

unload Subcommand Format

unload Subcommand Example

list Subcommand

list Options

list Arguments

list Subcommand Format

list Subcommand Example

help Subcommand

help Subcommand Options

help Subcommand Format

help Subcommand Example

javacardc.bat Command

Compiler Tool Options

normalizer.bat Command

normalize Subcommand and Options

normalize Subcommand Format

normalize Subcommand Example

help Subcommand and Options

Summary Help Option

normalize Help Option

packager.bat Command

create Subcommand and Options

create Subcommand Format

create Subcommand Example

validate Subcommand

validate Subcommand Format

validate Subcommand Example

copyright Subcommand

copyright Subcommand Format

copyright Subcommand Example

help Subcommand

help Subcommand Format

help Subcommand Example

romizer.bat Command

Examples

Glossary

Index