SATSA-PKI overview

The SATSA-PKI optional package of the JSR-177 specification enables digital signatures to be used in applications, as well as basic user credential management (for example, for certificates).

The API was first introduced in S60 3rd Edition. For S60 specific implementation details of the API, see SATSA API implementation notes.

For devices that support SATSA API, see Forum Nokia, Devices.

Digital signatures

Digital signatures are a cryptographically based signature assurance scheme. In the public key infrastructure (PKI), the public key used in the signature scheme is tied to a user by a digital identity certificate issued by a certificate authority. This means binding the relevant user information, such as name, address, phone number, etc., to a public key. The result of the scheme is digital signature.

Public-key digital signature schemes rely on public-key cryptography. In public-key cryptography, each user has a pair of keys: one public and one private. The public key is distributed freely, but the private key is kept secret by the user; another requirement is that it should be computationally infeasible to derive the private key from the public key.

Generally, digital signature schemes include three algorithms:

  • A key generation algorithm

  • A signing algorithm

  • A verification algorithm

Example: Person A sends a message to Person B and attaches a digital signature to the message. A has generated the digital signature by using his private key. When B receives the message, B runs the verification algorithm on the message, using A's public key, together with the signature to check whether the message was really sent by A.

CMS format

the Cryptographic Message Syntax (CMS) format is specified in RFC 2630 with enhanced security services for RFC 2634. The syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary messages.

SATSA-PKI packages

The optional package contains two components:

  • The javax.microedition.pki package

    Consists of the classes UserCredentialManager and UserCredentialManagerException. Allows you to manage certificates stored on your device (smart card) and provides the process for getting the appropriate keys stored on your device for encryption. Enables you to generate certificate requests and to locally register user credentials. The user credentials are used in conjunction with other parameters to compute formatted digital signatures.

    When deployed on the MIDP 2.0 platform, the javax.microedition.pki package also includes the interface Certificate (for providing a common interface to (X.509) certificates) and CertificateException (for errors occurring with Certificate), which are defined in the MIDP 2.0 API.

  • The javax.microedition.securityservice package

    Allows you to generate application-level digital signatures using certificates stored on you device (Certificate Store) that conform to the Cryptographic Message Syntax (CMS) format.

For more information on the javax.microedition.pki package, see also SATSA Developer's Guide on the Java Sun Web page.