S60 Runtime environment notes

This section describes the runtime environment notes for the S60 implementation.

System properties

The following system property is defined to indicate the names of the smartcard slots:

String

Description

microedition.smartcardslots

The value returned is a comma-separated list of the smartcard slots that can be combined with the URI prefix apdu: to identify the specific smartcard slot.

If the platform includes a (U)SIM card, it must be in slot 0.

The logical slot names include the slot number and a descriptor indicating the type of the slot. For cold-swappable slots the letter ’C’ is appended to the slot number. For hot-swappable slots the letter ’H’ is appended to the slot number. An example of hot-swappable card is a memory card that can be inserted and removed while the phone is in operation.

A typical configuration for a cold-swappable SIM would be:

microedition.smartcardsslots: 0C

Security settings

The Security and Trust Services API security model implemented in Java Platform for S60 is based on MIDP 2.1 Recommended Security Policy, MSA specification, security policy of the JTWI specification, and Appendix B, Security Permissions of The Security and Trust Services API for J2ME, Version 1.0 (JSR-177). The table below lists the access rights of MIDlets belonging to different MIDP access domains.

Table 72: Access rights of access domains

Category

Manufacturer

Operator

Trusted third-party

Untrusted

Digital Signature Service

Yes

Yes

Yes

No

Smart Card Communication

Yes

Yes

Yes

No

The APDU functionality gives low-level access to smart cards. An Access Control File (ACF) located in the smart card file system defines which APDU commands are allowed for an application.

It is recommended that you locate the ACF files in the pkcs#15 or WIM application and use a relative path in the ACIF. If an absolute path is used in the ACIF, the ACF must be readable on all logical channels; otherwise, the terminal might not be able to access the ACF.

User Settings

The Security and Trust Services API implementations in Java Platform for S60 allow users to accept MIDlet access rights by using the function group Authentication. This function group is defined in Appendix B of The Security and Trust Services API for J2ME, Version 1.0 (JSR-177). It represents the permission to the authenticate( byte[] byteArrayToAuthenticate, ...) method.

For Identified Third Party Protection Domain and Unidentified Third Party Protection Domain MIDlets, the user settings are defined according to the table below. In the Unidentified Third Party Protection Domain, the Authentication group is not visible in the device UI, as No is the only allowed setting.

Table 73: User settings for Authenticate function group.

Function

Identified Third Party Protection Domain

Unidentified Third Party Protection Domain

Authentication

Default setting: Session

Allowed settings: Session, Blanket, Oneshot, No

Default setting: No

Allowed settings: No

Explanations for the table values are as follows:

  • “Blanket” is valid for every invocation of an API by a MIDlet suite until it is uninstalled or the permission is changed by the user.

  • “Session” is valid from the invocation of a MIDlet suite until it terminates. “Session” mode MUST prompt the user on or before the first invocation of the API or function, which is protected. When the user re-invokes the MIDlet suite the prompt MUST be repeated.

  • “No” means that the MIDlet can’t access the protected function at all.

  • "Oneshot" means that the permission is asked every time the resource is needed.

The following table describes the security policy for the APDU API-related function group:

Function

Manufacturer

Operator

Identified Third Party Protection Domain

Unidentified Third Party Protection Domain

Smart Card Communication

Always allowed

Always allowed

Default setting: Session

Allowed settings: Session, Blanket, Oneshot, No

Default setting: No

Allowed settings: No