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.
Argomenti correlati