Certificate (Java Card API, Connected Edition)
Date: 2009-12-11

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.microedition.pki
Interface Certificate

    @TransactionType(value=NOT_SUPPORTED)
    @SensitiveType(sensitivity=INTEGRITY)
    public interface Certificate

Interface common to certificates. The features abstracted of `Certificates` include subject, issuer, type, version, serial number, signing algorithm, dates of valid use, and serial number.

Printable Representation for Binary Values

A non-string values in a certificate are represented as strings with each byte as two hex digits (capital letters for A-F) separated by ":" (Unicode U+003A).

For example: `0C:56:FA:80`

Printable Representation for X.509 Distinguished Names

For a X.509 certificate the value returned is the printable version of the distinguished name (DN) from the certificate.

An X.509 distinguished name of is set of attributes, each attribute is a sequence of an object ID and a value. For string comparison purposes, the following rules define a strict printable representation.

1. There is no added white space around separators.
2. The attributes are in the same order as in the certificate; attributes are not reordered.
3. If an object ID is in the table below, the label from the table will be substituted for the object ID, else the ID is formatted as a string using the binary printable representation above.
4. Each object ID or label and value within an attribute will be separated by a "=" (Unicode U+003D), even if the value is empty.
5. If value is not a string, then it is formatted as a string using the binary printable representation above.
6. Attributes will be separated by a ";" (Unicode U+003B)

Labels for X.500 Distinguished Name Attributes

Object ID | Binary | Label
--- | --- | ---
id-at-commonName | `55:04:03` | CN
id-at-surname | `55:04:04` | SN
id-at-countryName | `55:04:06` | C
id-at-localityName | `55:04:07` | L
id-at-stateOrProvinceName | `55:04:08` | ST
id-at-streetAddress | `55:04:09` | STREET
id-at-organizationName | `55:04:0A` | O
id-at-organizationUnitName | `55:04:0B` | OU
emailAddress | `2A:86:48:86:F7:0D:01:09:01` | EmailAddress

Example of a printable distinguished name:

> `C=US;O=Any Company, Inc.;CN=www.anycompany.com`

Note: Classes implementing this interface must provide an implementation of the `Object.equals(java.lang.Object)` method that checks two certificates for equality by comparing their respective encoded form.

Since:
  MIDP 2.0, Java Card 3.0

Method Summary
`String` | `getIssuer()` Gets the name of this certificate's issuer.
`long` | `getNotAfter()` Gets the time after which this `Certificate` may not be used from the validity period.
`long` | `getNotBefore()` Gets the time before which this `Certificate` may not be used from the validity period.
`String` | `getSerialNumber()` Gets the printable form of the serial number of this `Certificate`.
`String` | `getSigAlgName()` Gets the name of the algorithm used to sign the `Certificate`.
`String` | `getSubject()` Gets the name of this certificate's subject.
`String` | `getType()` Get the type of the `Certificate`.
`String` | `getVersion()` Gets the version number of this `Certificate`.

Method Detail

### getSubject

    String getSubject()

  Gets the name of this certificate's subject.

  Returns:
    The subject of this `Certificate`; the value MUST NOT be `null`.

### getIssuer

    String getIssuer()

  Gets the name of this certificate's issuer.

  Returns:
    The issuer of the `Certificate`; the value MUST NOT be `null`.

### getType

    String getType()

  Get the type of the `Certificate`. For X.509 Certificates the value returned is "X.509".

  Returns:
    The type of the `Certificate`; the value MUST NOT be `null`.

### getVersion

    String getVersion()

  Gets the version number of this `Certificate`. The format of the version number depends on the specific type and specification. For a X.509 certificate per RFC 2459 it would be "2".

  Returns:
    The version number of the `Certificate`; the value MUST NOT be `null`.

### getSigAlgName

    String getSigAlgName()

  Gets the name of the algorithm used to sign the `Certificate`. The algorithm names returned should be the labels defined in RFC2459 Section 7.2.

  Returns:
    The name of signature algorithm; the value MUST NOT be `null`.

### getNotBefore

    long getNotBefore()

  Gets the time before which this `Certificate` may not be used from the validity period.

  Returns:
    The time in milliseconds before which the `Certificate` is not valid; it MUST be positive, `0` is returned if the certificate does not have its validity restricted based on the time.

### getNotAfter

    long getNotAfter()

  Gets the time after which this `Certificate` may not be used from the validity period.

  Returns:
    The time in milliseconds after which the `Certificate` is not valid (expiration date); it MUST be positive; `Long.MAX_VALUE` is returned if the certificate does not have its validity restricted based on the time.

### getSerialNumber

    String getSerialNumber()

  Gets the printable form of the serial number of this `Certificate`. If the serial number within the `certificate` is binary it should be formatted as a string using the binary printable representation in class description. For example, 0C:56:FA:80.

  Returns:
    A string containing the serial number in user-friendly form; `null` is returned if there is no serial number.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.