Интерфейс IX509CertificateRequestPkcs7 (certenroll.h)
Интерфейс IX509CertificateRequestPkcs7 представляет объект синтаксиса сообщений сертификата PKCS #7 (CMS). PKCS 7 определяет формат сообщений, отправляемых в центр сертификации или регистрации для запроса сертификата с открытым ключом. Интерфейс IX509CertificateRequestPkcs7 может запутать, так как его реализация не совсем зеркало то, как большинство специалистов по безопасности думает о стандарте PKCS 7. Чтобы избежать этой путаницы, учитывайте следующие моменты:
- Хотя сообщение PKCS #7 используется для упаковки запроса CMC, объект IX509CertificateRequestPkcs7 не может содержать объект IX509CertificateRequestCmc . Вместо этого интерфейс IX509CertificateRequestCmc наследует и реализует интерфейс IX509CertificateRequestPkcs7 . Таким образом, запрос CMC представляет собой объект PKCS #7 SignedData , содержащий содержимое CMC, первичную подпись, которая имеет значение NULL или на основе ключа, а также ноль или несколько подписей на основе сертификата. В отличие от этого, запрос PKCS #7 является объектом SignedData , который содержит содержимое PKCS #10 (см. следующий элемент в этом списке) и имеет ровно одну подпись на основе сертификата.
- Объект IX509CertificateRequestPkcs7 должен содержать объект IX509CertificateRequestPkcs10. Main преимуществом упаковки запроса PKCS #10 в сообщение PKCS #7 является возможность добавления нескольких подписывающих. Запрос PKCS #10 подписывается связанным закрытым ключом, а также подписывается сообщение PKCS #7, которое заключает запрос PKCS #10. Этот второй подписыватель использует обновляемый сертификат (для запроса на продление) или сертификат агента регистрации (для запроса регистрации от имени).
- Вы можете создать и зарегистрировать автономный запрос сертификата IX509CertificateRequestPkcs10 , не упаковывая его в объект IX509CertificateRequestPkcs7 .
Представление asn.1 объекта PKCS #7 в следующем примере синтаксиса показывает, что он может состоять из различных типов данных.
PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
data | signed-data | enveloped-data | signed-and-enveloped-data |
digested-data | encrypted-data | authenticated-data, ...
}
Из них наиболее актуальным является показанный ниже объект SignedData . Объект SignerInfo, на который ссылается объект SignedData , содержит сведения о подписи. Более подробное обсуждение см. в разделе Атрибуты PKCS #7.
-------------------------------------------------------------------
-- signed-data
-------------------------------------------------------------------
SignedData ::= SEQUENCE
{
version INTEGER,
digestAlgorithms DigestAlgorithmIdentifiers,
contentInfo ContentInfo,
certificates [0] IMPLICIT Certificates OPTIONAL,
crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}
SignerInfo ::= SEQUENCE
{
version INTEGER,
sid CertIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue,
unauthenticatedAttributes [1] IMPLICIT Attributes
}
Наследование
Интерфейс IX509CertificateRequestPkcs7 наследуется от IX509CertificateRequest. IX509CertificateRequestPkcs7 также имеет следующие типы элементов:
Методы
Эти методы доступны в интерфейсе IX509CertificateRequestPkcs7 .
IX509CertificateRequestPkcs7::get_RequesterName Указывает или извлекает строку, содержащую имя диспетчера учетных записей безопасности (SAM) конечной сущности, запрашивающей сертификат. (Получить) |
IX509CertificateRequestPkcs7::get_SignerCertificate Указывает или извлекает сертификат, используемый для подписи запроса на сертификат. (Получить) |
IX509CertificateRequestPkcs7::InitializeDecode Декодирует существующий подписанный или неподписанный PKCS (IX509CertificateRequestPkcs7.InitializeDecode) |
IX509CertificateRequestPkcs7::InitializeFromCertificate Инициализирует запрос сертификата, используя существующий сертификат. (IX509CertificateRequestPkcs7.InitializeFromCertificate) |
IX509CertificateRequestPkcs7::InitializeFromInnerRequest Инициализирует запрос сертификата из внутреннего PKCS |
IX509CertificateRequestPkcs7::InitializeFromTemplateName Инициализирует запрос сертификата с помощью шаблона. (IX509CertificateRequestPkcs7.InitializeFromTemplateName) |
IX509CertificateRequestPkcs7::p ut_RequesterName Указывает или извлекает строку, содержащую имя диспетчера учетных записей безопасности (SAM) конечной сущности, запрашивающей сертификат. (Put) |
IX509CertificateRequestPkcs7::p ut_SignerCertificate Указывает или извлекает сертификат, используемый для подписи запроса на сертификат. (Put) |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |