In CA Gateway, you may need to define specifications for CMPv2 enrollment. These specifications define how to process CMPv2 requests from CMPv2 clients if they do not adhere to the CMPv2 standard TS-133-310.

You do not have to define a specification for the CMPv2 "standard" as defined in TS-133-310. If the implementation field is not specified, TS-133-310 will be used.

Under Cmpv2, the Customizations section allows you to define one or more custom specifications for CMPv2 enrollment.

The following table lists the test methods that you can exclude from validation (Excluded test settings).

To exclude a test from a specific operation only, precede a test with an operation name, such as ir for Initialization Request or certConf for Certificate Confirmation). For example, ir.Protection.rejectPBM will exclude the Protection.rejectPBM test from only Initialization Request operations.

Test

Purpose

Message Validation



Common.cmpVersion

Ensure supported CMP version is provided, i.e. CMP version 2.


Common.headerRecipient

Ensure a recipient was provided in the request header and its value represents a DN.


Common.headerSender

Ensure a sender was provided in the request header and its value represents a DN.


Common.headerSenderKid

Ensure a senderKID was provided in the request header.


Common.recipientNonce

Ensure all but initial requests in a transaction have a recipient NONCE, it is at least 16-bytes long and that it is the same value as the sender NONCE included in header of the previous response.


Common.requestType

Ensure the type is a known CMP type for the supported version, and, if not the initial request in a transaction, that the request type is valid at this point in the transaction.


Common.senderNonce

Ensure the sender NONCE is provided and that it is at least 16-bytes long.


Common.transactionId

Ensure all but initial requests in a transaction have a transaction ID provided.


RFC_4210.protectionAlgorithm

Ensure protection algorithm defined in the response header is valid signature algorithm for the supported specification. Only PBM (Shared Secret) and Signature are currently supported.


RFC_4210.transactionId

Ensure the transaction ID is at least 16 bytes long and does not exceed a system-imposed limit of 1024 bytes.


TS_33_310.certControls

Ensure OldCertId exists


TS_33_310.certRequestId

Ensure there is a certificate request ID provided and its value is zero (0).


TS_33_310.proofOfPossession

Ensure proof of possession is provided, is signature based, and is valid.


TS_33_310.requestCount

Ensure IR message contains one, and only one, certificate request.


TS_33_310.requestType

Ensure the request type is a known CMP type for the supported specification, such as IP, KUP, CERTCONF, or ERROR.


TS_33_310.statusCount

Ensure CERTCONF message contains no more than one certificate status.


TS_33_310.templateExtensions

Ensure subject alternative name extension contains a subject if one was not provided in the certificate template.


TS_33_310.templateHostName

Ensure the certificate template contains a subject (either in the subject field or as a subjectAltName extension), the subject is in the form of a DN, and the common name portion of the DN is a correctly-formatted DNS name.


TS_33_310.templatePublicKeyAlg

Ensure the algorithm used to generate the public key in the request is accepted by the server.


TS_33_310.templatePublicKeyLength

Ensure the length of the public key in the request meets the server defined minimum.


TS_33_310.templateSubject

Ensure a subject name is provided in the certificate template. If no true value exists, this field must contain the NULL-DN.


TS_33_310.templateVersion

Ensure the template version is correct, i.e. if provided it must be two (2).


TS_33_310.transactionId

Ensure the transaction ID is at least 8-bytes long and doesn't exceed a system-imposed limit of 1024-bytes.

Protection Validation



Protection.rejectPBM

Ensure Password Based MAC (PBM) protection of messages are not allowed.


Protection.rejectUnprotected

Ensure unprotected messages are not allowed.


PasswordBasedMac.applyProtection

Ensure that the protection defined in the response header is applied to the message response.


PasswordBasedMac.checkApplyAlgorithm

Ensure PBM protection algorithms defined in the response header are supported by the system.


PasswordBasedMac.checkVerifyAlgorithm

Ensure PBM protection algorithms defined in the request header are supported by the system.


PasswordBasedMac.verifyProtection

Ensure that the protection defined in the request header was applied to the message and that it has been found to be applied correctly.


SignatureBased.applyProtection

Ensure that the protection defined in the response header is applied to the message response.


SignatureBased.checkApplyAlgorithm

Ensure signature protection algorithm defined in the response header is supported by the system.


SignatureBased.checkVerifyAlgorithm

Ensure signature protection algorithm defined in the request header is supported by the system.


SignatureBased.extraCertsPresent

Ensure that extraCerts field does NOT contains any certificates for follow up messages in a transaction.


SignatureBased.verifyProtection

Ensure that the protection defined in the request header was applied to the message and that it has been found to be applied correctly.