Content for  TS 43.019  Word version:  5.6.0

Top   Top   None   None   Next
1…   5…


1  Scopep. 6

The present document defines the stage two description of the Subscriber Identity Module Application Programming Interface (SIM API) internal to the SIM.
This stage two describes the functional capabilities and the information flow for the SIM API implemented on the Java Card 2.1 API specification [6].
The present document includes information applicable to network operators, service providers and SIM, server and database manufacturers.

2  Referencesp. 6

The following documents contain provisions which, through reference in this text, constitute provisions of the present document.
  • References are either specific (identified by date of publication, edition number, version number, etc.) or non specific.
  • For a specific reference, subsequent revisions do not apply.
  • For a non-specific reference, the latest version applies. In the case of a reference to a 3GPP document (including a GSM document), a non-specific reference implicitly refers to the latest version of that document in the same Release as the present document.
TR 21.905: "Abbreviations and acronyms".
TS 51.011: "Specification of the Subscriber Identity Module - Mobile Equipment (SIM - ME) interface".
GSM TS 11.14: "Specification of the SIM Application Toolkit for the Subscriber Identity Module - Mobile Equipment (SIM - ME) interface".
TS 23.048: "Security Mechanisms for the SIM application toolkit; Stage 2".
ISO/IEC 7816-3 (1997): "Identification cards - Integrated circuit(s) cards with contacts, Part 3: Electronic signals and transmission protocols".
TS 42.019: "Subscriber Identity Module Application Programming Interface (SIM API); Service description; Stage 1".
SUN Java Card Specification: "Java Card 2.1 API Specification".
SUN Java Card Specification: "Java Card 2.1 Runtime Environment Specification".
SUN Java Card Specification: "Java Card 2.1 VM Architecture Specification".
SUN Java Card Specifications can be downloaded at
ETSI TS 101 220: "Integrated Circuit Cards (ICC); ETSI numbering system for telecommunication; Application providers (AID)".
TS 23.040: "Technical realization of the Short Message Service (SMS)"
ISO/IEC 7816-6 (1995): "Identification cards - Integrated circuit(s) cards with contacts, Part 6 Inter-industry data elements".

3  Definitions and abbreviationsp. 7

3.1  Definitionsp. 7

For the purposes of the present document, the following terms and definitions apply:
Applet :
An Applet is an application built up using a number of classes which will run under the control of the Java Card virtual machine. Applets designed for smart cards are sometimes referred to as Cardlets.
Bytecode :
Machine independent code generated by a Java compiler and executed by the Java interpreter.
Class :
The Class is a type that defines the implementation of a particular kind of object. A Class definition defines instance and class variables and methods.
Framework :
A framework defines a set of Application Programming Interface (API) classes for developing applications and for providing system services to those applications.
GSM applet :
The GSM application conforming to TS 51.011. It might be a Java Card applet or native application.
Java :
An object oriented programming language developed by Sun Microsystems designed to be platform independent.
Method :
A Method is a piece of executable code that can be invoked, possibly passing it certain values as arguments. Every Method definition belongs to some class.
Object :
The principal building block of object oriented programs. Each object is a programming unit consisting of data (variables) and functionality (methods)
Package :
A group of classes. Packages are declared when writing a Java Card program
Toolkit applet :
Applet loaded onto the SIM card seen by the Mobile as being part of the SIM Toolkit application and containing only the code necessary to run the application. These applets might be downloaded over the radio interface.
Virtual Machine :
The part of the Run-time environment responsible for interpreting the bytecode.

3.2  Abbreviationsp. 7

For the purposes of the present document, the following abbreviations apply, in addition to those listed in TR 21.905:
Application Code
Application Identifier
Application Protocol Data Unit
Application Programming Interface
Card Acceptance Device
For Further Study
Interface Device
Java Card™ Run Time Environment
Java Virtual Machine
Mobile Equipment
Mobile Station
Subscriber Identity Module
Sending Entity
Short Message Service - Cell Broadcast
Short Message Service - Point to Point
Unstructured Supplementary Services Data
Virtual Machine

4  Descriptionp. 8

The present document describes an API for the GSM SIM. This API allows application programmers access to the functions and data described in TS 51.011 and GSM TS 11.14 [3], such that SIM based services can be developed and loaded onto SIMs, quickly and, if necessarily, remotely, after the card has been issued.
This API is an extension to the Java Card 2.1 API [7] based on the Java Card 2.1 Runtime Environment [8].

4.1  GSM Java Card Architecturep. 8

The over all architecture of the SIM Toolkit API based on Java Card 2.1 is:
(not reproduced yet)
Figure 1: GSM Java Card Architecture
SIM Toolkit Framework:
this is the GSM Java Card runtime environment, it is composed of the JCRE, the Toolkit Registry, the Toolkit Handler and the File System.
this is specified in Java Card 2.1 Runtime Environment Specification [8] and is able to select any specific applet and transmit to it the process of its APDU.
Toolkit Registry:
this is handling all the registration information of the toolkit applets, and their link to the JCRE registry.
Toolkit Handler:
this is handling the availability of the system handler and the toolkit protocol (i.e. toolkit applet suspension).
File System:
this contains the card issuer file system, and handles the file access control and the applet file context. It is a JCRE owned object implementing the shareable interface sim.access.SIMView.
these derive from javacard.framework.applet and provide the entry points : process, select, deselect, install as defined in the Java Card 2.1 Runtime Environment Specification [8].
Toolkit applets:
these derive from javacard.framework.applet, so provide the same entry points, and implement the shareable interface sim.toolkit.ToolkitInterface so that these applets can be triggered by an invocation of their processToolkit method. These applets' AID is defined in TS 101 220 [10].
GSM Applet:
this is the default applet as defined in Java Card 2.1 Runtime Environment Specification [8], it behaves as regular applet e.g. when another applet is selected via the SELECT AID APDU its deselect method is invoked. It's AID is defined in TS 101 220 [10]. This applet handles the TS 51.011 APDUs, CHV1/2, the GSM authentication algorithm and the subscriber file access control according to TS 51.011.
Loader applet:
this is handling the installation and uninstallation of the applets as specified in the applet loading specification TS 23.048.
Shareable interface:
this is defined in the Java Card 2.1 specifications.

4.2  Java Card Selection Mechanismp. 9

The Java Card selection mechanism is defined in the Java Card Runtime Environment Specification [8].

Up   Top   ToC