2.23.2 Syntax Option 2

Note An alternative scenario for template schema version 4 is defined in section 2.23.1.

If either of the following is true:

  • The template is version 3.

  • The template version is 4 and the template does not have the CT_FLAG_USE_LEGACY_PROVIDER bit of the msPKI-Private-Key-Flag attribute set.

Then the msPKI-RA-Application-Policies attribute contains a string of property-type-value triplets that are separated by a grave accent (`) character.

Each triplet for this attribute has the following format.

 Name`Type`Value`

Where:

Tag

Description

Name

The property name. This value MUST be one of the property names in the following list.

Type

The Type MUST be "DWORD" or "PZPWSTR". If "DWORD" is used, the Value field contains a Unicode string representation of a positive decimal number. If "PZPWSTR" is used, the Value field contains a Unicode string.

Value

The value of the parameter.

`

A delimiter symbol separator.

The property name MUST be one of the following:

  • msPKI-RA-Application-Policies: A string value that represents a set of application policy OIDs (comma-separated) for the RA certificates. Application policy OIDs are the same as extended key usage OIDs, as specified in [RFC3280] section 4.2.1.13. The type MUST be "PZPWSTR".

  • msPKI-Asymmetric-Algorithm: A string value that represents the name of the asymmetric algorithm. The type MUST be "PZPWSTR".

  • msPKI-Key-Security-Descriptor: A Security Descriptor Description Language (SDDL) string that represents the security descriptor (as specified in [MS-DTYP] section 2.5.1) for the asymmetric key. The type MUST be "PZPWSTR".

  • msPKI-Symmetric-Algorithm: A string value that represents the name of the symmetric algorithm that clients use for key exchanges. The type MUST be "PZPWSTR".

  • msPKI-Symmetric-Key-Length: An unsigned integer value that represents the length, in bits, of the symmetric key. The type MUST be DWORD.

  • msPKI-Hash-Algorithm: A string value that represents the name of the hash algorithm that clients use. The type MUST be "PZPWSTR".

  • msPKI-Key-Usage: An unsigned integer value that represents how the private key is used (see [MS-WCCE] section 3.1.2.4.2.2.2.5). The type MUST be DWORD. A bitwise OR of the following flags is supported for this property.

    Name

    Value

    Meaning

    NCRYPT_ALLOW_DECRYPT_FLAG

    0x00000001

    The private key can be used to perform a decryption operation.

    NCRYPT_ALLOW_SIGNING_FLAG

    0x00000002

    The private key can be used to perform a signature operation.

    ALLOW_KEY_AGREEMENT_FLAG

    0x00000004

    The private key can be used to perform a key-agreement operation.

    NCRYPT_ALLOW_ALL_USAGES

    0x00ffffff

    The private key is not restricted to any specific cryptographic operations.

For example:

 msPKI-Asymmetric-Algorithm`PZPWSTR`RSA`msPKI-Hash-Algorithm`PZPWSTR`SHA1`msPKI-
 Key-Usage`DWORD`2`msPKI-RA-Application-Policies`PZPWSTR`1.3.6.1.4.1.311.10.3.8`

For schema details of this attribute, see [MS-ADA2] section 2.619.