Condividi tramite


Attributi CMC

In pratica, la struttura di una richiesta CMC, illustrata dalla sintassi seguente, è relativamente complessa perché spesso contiene richieste annidate. Ad esempio, una richiesta CMC può contenere zero o una richiesta PKCS #10 in una sequenza TaggedRequest e può contenere zero o un messaggio PKCS #7 in una sequenza TaggedContentInfo. Ogni messaggio PKCS #7 annidato può contenere una richiesta CMC che a sua volta può contenere più richieste. Il numero di livelli di annidamento è teoricamente illimitato, ma l'autorità di certificazione (CA) è in genere configurata per limitare le dimensioni di una richiesta. Gli attributi possono essere applicati alla richiesta di primo livello o alle richieste annidate. Questo argomento è illustrato nelle sezioni seguenti.

Struttura CMCData

Una richiesta CMC contiene sequenze di strutture TaggedContentInfo, TaggedRequeste strutture 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

Struttura TaggedAttribute

Gli attributi vengono inclusi in una richiesta di certificato CMC aggiungendoli alla raccolta TaggedAttribute. Ogni struttura dell'insieme contiene un ID intero, un identificatore di oggetto ASN.1 (OID) e un set di valori. I valori possibili possono essere uno dei seguenti.

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

Se gli attributi di questa struttura si applicano a una richiesta PKCS #10 annidata, il campo certReferences conterrà il BodyPartID che identifica la richiesta. Se gli attributi si applicano a una richiesta CMC nidificata, il campo pkiDataReference conterrà il BodyPartID della richiesta. Attualmente, solo uno di questi campi può essere diverso da zero. Gli attributi che è possibile includere sono elencati nell'argomento attributi supportati.

CmcAddExtensions

Questa struttura può contenere estensioni X.509 versione 3 e estensioni definite da Microsoft. Questo attributo viene definito usando l'interfacciaIX509AttributeExtensions. Se le estensioni si applicano a una richiesta PKCS #10 annidata, il campo certReferences conterrà il BodyPartID che identifica la richiesta. Se le estensioni si applicano a una richiesta CMC nidificata, il campo pkiDataReference conterrà il BodyPartID della richiesta. Attualmente, solo uno di questi campi può essere diverso da zero.

SenderNonce

Un nonce è dati binari casuali o pseudo-casuali che possono essere inclusi in una richiesta di certificato e una transazione di risposta per garantire che la risposta o la richiesta non sia una ripetizione di un messaggio precedente. Per altre informazioni, vedere la proprietàsenderNonce.

TransactID

È possibile tenere traccia di una richiesta di certificato di andata e ritorno e una transazione di risposta usando un identificatore. Il client genera un ID transazione e lo mantiene finché l'autorità di certificazione o registrazione non risponde con un messaggio che completa la transazione. La risposta include l'identificatore. Per altre informazioni, vedere la proprietàTransactionId.

RegInfo

Questo attributo può essere usato per contenere tutte le informazioni di registrazione che il client sceglie di inserire nella richiesta CMC. Il valore dell'attributo è una stringa che contiene coppie nome-valore concatenate. Per altre informazioni, vedere la proprietàNameValuePairs.

attributi supportati