CMC 属性

実際には、次の構文で示す CMC 要求の構造は、入れ子になった要求が含まれていることが多いため、比較的複雑です。 たとえば、CMC 要求には 、TaggedRequest シーケンスに 0 個または 1 個の PKCS #10 要求を含め、 TaggedContentInfo シーケンスに 0 個または 1 個の PKCS #7 メッセージを含めることができます。 入れ子になった各 PKCS #7 メッセージには CMC 要求を含めることができます。さらに、さらに多くの要求を含めることができます。 入れ子のレベルの数は理論上無制限ですが、証明機関 (CA) は通常、要求のサイズを制限するように構成されます。 属性は、最上位レベルの要求または入れ子になった要求に適用できます。 これについては、次のセクションで説明します。

CMCData 構造体

CMC 要求には、 TaggedAttributeTaggedRequest、および TaggedContentInfo ASN.1 構造体のシーケンスが含まれています。

CmcData ::= SEQUENCE 
{
   controlSequence         ControlSequence,
   reqSequence             ReqSequence,
   cmsSequence             CmsSequence,
   otherMsgSequence        OtherMsgSequence
}


ControlSequence  ::=    SEQUENCE OF TaggedAttribute
ReqSequence      ::=    SEQUENCE OF TaggedRequest
CmsSequence      ::=    SEQUENCE OF TaggedContentInfo

TaggedAttribute ::= SEQUENCE 
{
   bodyPartID              BodyPartID,
   type                    EncodedObjectID,
   values                  AttributeSetValue
}

TaggedRequest ::= CHOICE 
{
   tcr                     [0] IMPLICIT TaggedCertificationRequest
}

TaggedContentInfo ::= SEQUENCE 
{
   bodyPartID              BodyPartID,
   contentInfo             ANY
}

BodyPartID ::= INTEGER (0..4294967295)
EncodedObjectID ::= OBJECT IDENTIFIER
AttributeSetValue ::= SET OF ANY

TaggedAttribute 構造体

属性は、 TaggedAttribute コレクションに追加することで、CMC 証明書要求に含まれます。 コレクション内の各構造体には、整数 ID、ASN.1 オブジェクト識別子 (OID)、および値のセットが含まれています。 指定できる値は、次のいずれかです。

CmcAddAttributes ::= SEQUENCE 
{
   pkiDataReference        BodyPartID,
   certReferences          BodyPartIDSequence,
   attributes              Attributes
}

Attributes ::= SET OF Attribute
Attribute ::= SEQUENCE 
{
   type       EncodedObjectID,
   values     AttributeSetValue
}

CmcAddExtensions ::= SEQUENCE 
{
   pkiDataReference        BodyPartID,
   certReferences          BodyPartIDSequence,
   extensions              Extensions
}

Extensions ::= SEQUENCE OF Extension

Extension ::= SEQUENCE 
{
   extnId              EncodedObjectID,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

SenderNonce ::= OCTET STRING

TransactID ::= OCTET STRING

RegInfo ::= OCTET STRING

CMCAddAttributes

この構造体の属性が入れ子になった PKCS #10 要求に適用される場合、 certReferences フィールドには要求を識別する BodyPartID が含まれます。 属性が入れ子になった CMC 要求に適用される場合、 pkiDataReference フィールドには要求の BodyPartID が含まれます。 現時点では、これらのフィールドのうち 1 つだけを 0 以外にできます。 含めることができる属性は、「 サポートされる属性 」トピックに記載されています。

CmcAddExtensions

この構造には、X.509 バージョン 3 の拡張機能と Microsoft によって定義された拡張機能を含めることができます。 この属性は、 IX509AttributeExtensions インターフェイスを 使用して定義されます。 入れ子になった PKCS #10 要求に拡張機能が適用される場合、 certReferences フィールドには要求を識別する BodyPartID が含まれます。 入れ子になった CMC 要求に拡張機能が適用される場合、 pkiDataReference フィールドには要求の BodyPartID が含まれます。 現時点では、これらのフィールドのうち 1 つだけを 0 以外にできます。

SenderNonce

nonce は、証明書要求と応答トランザクションに含めることができるランダムまたは疑似ランダムなバイナリ データであり、応答または要求が前のメッセージの繰り返しではないことを確認するのに役立ちます。 詳細については、 SenderNonce プロパティを参照してください。

TransactID

ラウンド トリップ証明書の要求と応答のトランザクションは、識別子を使用して追跡できます。 クライアントはトランザクション ID を生成し、証明書または登録機関がトランザクションを完了するメッセージで応答するまで保持します。 応答には識別子が含まれます。 詳細については、 TransactionId プロパティを参照してください。

RegInfo

この属性を使用して、クライアントが CMC 要求に入れることを選択した登録情報を含めることができます。 属性値は、連結された名前と値のペアを含む文字列です。 詳細については、 NameValuePairs プロパティを参照してください。

サポート対象属性