diff -r 43e37759235e -r 51a74ef9ed63 Symbian3/SDK/Source/GUID-C119A79A-D705-50B3-B174-70F517947BBD.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-C119A79A-D705-50B3-B174-70F517947BBD.dita Wed Mar 31 11:11:55 2010 +0100 @@ -0,0 +1,100 @@ + + + + + +How +certapp Processes Input File Information

This section provides information on the guidelines that the certapp tool +follows to process various entities in the input files used to create certificate +store files.

Input text files can be 7-bit text or UTF-8. If a +file is UTF-8, it can optionally start with a UTF-8 Byte Order Marker. This +is the marker that Windows uses when saving files as UTF-8.
+
White spaces

The certapp tool +ignores white space (space, tab, carriage return and line feed characters) +in input files. Instead, the line-ending convention of the platform on which +the tool runs is followed.

+Double-quoted strings

The certapp tool +treats a series of bytes within double quote characters (in the input files) +as a single token.

A double quote character can be included in a double-quoted +string by preceding it with a back slash, as shown in the following example:

This +is how you include \” in a double-quoted string.

A backslash character +can be included in a double quoted string by preceding it with another back +slash, as shown in the following example:

This is how you include +\\ in a double-quoted string.

The double quote syntax can be used +to set any text field value, such as the certificate label, to any UTF-8 value, +including quote characters, spaces, UTF-8 escape sequences and so on.

UTF-8 +values are defined such that a UTF-8 escape sequence never contains a back +slash character.

+
Enumerated types

All enumerated values can be specified +as numeric values, though using text values is strongly recommended.

+Numeric values

Any numeric value can be entered +in decimal as a raw number or in hexadecimal by prefixing the number with +0x.

+
Capability sets

For a certificate, a capability +set is a list of capabilities allowed in applications that have the certificate +as their trust anchor. Capability set values can be specified as numeric bit +offsets (starting from 0), though using text values is strongly recommended, +as shown in the following example:

CapabilitySet {ProtServ DiskAdmin NetworkControl +AllFiles SwEvent NetworkServices LocalServices}
+
Subject and issuer key identifiers

It is recommended +that you set the SubjectKeyId field to an auto value +in the input file for creating the certificate store file. In addition, set +the IssuerKeyId field either to auto or +to an empty octet string.

When the SubjectKeyId and +the IssuerKeyId fields are set to auto or +if you omit setting values for these fields in the input file, the certapp +tool performs its own processing to determine their values. The following +sub-sections provide the details.

Setting SubjectKeyId to auto

When SubjectKeyId is +set to auto or if the field is omitted, then the following +algorithm is used for determining the value of the field:

    +
  • If the store type is +not SWI certificate store, the certificate type is not user, and an X.509 SubjectKeyId extension +with length less than or equal to 20 bytes is present, then this extension +is used as the value of the SubjectKeyId field.

  • +
  • Otherwise, the value +of the SubjectKeyId field is calculated based on the certificate’s +public key characteristics using a Symbian-specific algorithm.

  • +

The SubjectKeyId field value is stored in the certificate +metadata and can be used by applications when querying the certificate store +using a filter.

Setting IssuerKeyId set to auto

If +the IssuerKeyId field is set to auto or +if the field is omitted, the following algorithm is used for determining the +value of the field:

    +
  • If the store type is +not SWI certificate store, and an X.509 AuthorityKeyId extension +with length less than or equal to 20 bytes is present, then this extension +is used as the value of the IssuerKeyId field. An authority +key identifier specifies the public key that is used to sign the certificate.

  • +
  • If a single certificate +is present in the certificate store with the subject matching the issuer of +the original certificate (for which the IssuerKeyId is to +be set), the IssuerKeyId is set to the SubjectKeyId of +the matching certificate.

    Note:

    When generating IssuerKeyId values +for SWI store certificates, all certificates within the SWI certificate store +are considered. When generating values for file certificate store, all certificates +in both the SWI certificate store and the file certificate store are considered.

  • +
  • Otherwise, the IssuerKeyId is +set to an empty octet string.

  • +

The IssuerKeyId field value is stored in the certificate +metadata and can be used by applications when querying the certificate store +using a filter. To filter certificates by IssuerKeyId, set +the field to auto, otherwise set it to an empty octet string (for example, +’’).

Note: In case of a certificate that is not of type X.509, +if you do not set the IssuerKeyId or the SubjectKeyId values to auto or empty +octet strings, you can set them to octet strings, as explained in the following +sub-sections.

Setting SubjectKeyId and IssuerKeyId to octet strings

Consider +the following example of an octet string value to which you can set the SubjectKeyId field:

SubjectKeyId ’01:02:43’

The SubjectKeyId field +is set to an octet string consisting of the numbers 0x01, 0x02 and 0x03. +The string can be 0 to 20 bytes long. The length limit is imposed by the certificate +store metadata structure, but the usual values are SHA1 hash of certificate +fields and hence 20 bytes long.

+
+Certificate +Store Human-Readable File Formats +
\ No newline at end of file