Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На практике структура запроса CMC, показанная следующим синтаксисом, является относительно сложной, так как часто содержит вложенные запросы. Например, запрос CMC может содержать ноль или один запрос PKCS #10 в последовательности TaggedRequest, и он может содержать ноль или одно сообщение PKCS #7 в последовательности TaggedContentInfo. Каждое вложенное сообщение PKCS #7 может содержать запрос CMC, который, в свою очередь, может содержать дополнительные запросы. Число уровней вложения теоретически неограниченно, но центр сертификации (ЦС) обычно настраивается для ограничения размера запроса. Атрибуты можно применять к запросу верхнего уровня или к вложенным запросам. Это рассматривается в следующих разделах.
Структура CMCData
Запрос CMC содержит последовательности TaggedAttribute, TaggedRequestи структуры 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
Атрибуты включаются в запрос на сертификат CMC, добавив их в коллекцию TaggedAttribute. Каждая структура в коллекции содержит целочисленный идентификатор, идентификатор объекта 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 запроса. В настоящее время только одно из этих полей может быть ненулевое. Атрибуты, которые можно включить, перечислены в разделе Поддерживаемые атрибуты.
CmcAddExtensions
Эта структура может содержать расширения X.509 версии 3 и расширения, определенные корпорацией Майкрософт. Этот атрибут определяется с помощью интерфейса IX509AttributeExtensions. Если расширения применяются к вложенной запросу PKCS #10, поле certReferences будет содержать BodyPartID, определяющий запрос. Если расширения применяются к вложенным запросам CMC, поле pkiDataReference будет содержать BodyPartID запроса. В настоящее время только одно из этих полей может быть ненулевое.
SenderNonce
Нецелевое значение — это случайные или псевдослучайные двоичные данные, которые могут быть включены в запрос сертификата и транзакцию ответа, чтобы гарантировать, что ответ или запрос не является повтором предыдущего сообщения. Дополнительные сведения см. в свойстве SenderNonce.
TransactID
Запрос и транзакция ответа на обратный путь можно отслеживать с помощью идентификатора. Клиент создает идентификатор транзакции и сохраняет его до тех пор, пока сертификат или центр регистрации не ответит с сообщением, которое завершает транзакцию. Ответ содержит идентификатор. Дополнительные сведения см. в свойстве TransactionId.
RegInfo
Этот атрибут можно использовать для хранения любых сведений о регистрации, которые клиент выбирает для отправки в запрос CMC. Значение атрибута — это строка, содержащая пары "сцепленное имя-значение". Дополнительные сведения см. в свойстве NameValuePairs.
Связанные разделы