Интерфейс ISignerCertificate (certenroll.h)
Интерфейс ISignerCertificate представляет сертификат подписи, который позволяет подписывать запрос на сертификат. При инициализации интерфейса элемент управления регистрацией сертификатов получает сертификат подписи из личного хранилища и использует его для поиска связанного закрытого ключа. Закрытый ключ можно использовать для подписи запроса PKCS #7 или CMC, но не запроса PKCS #10. Запросы PKCS #10 должны быть подписаны с помощью закрытого ключа, связанного с открытым ключом , включенным в запрос. Самозаверяемые сертификаты можно подписывать с помощью закрытого ключа, связанного с запросом, или закрытого ключа, связанного с сертификатом подписи. Это приводится в следующей таблице.
Тип запроса (интерфейс) | Сертификаты для подписи |
---|---|
PKCS #7(IX509CertificateRequestPkcs7) | 1 |
PKCS #10(IX509CertificateRequestPkcs10) | 0 |
CMC(IX509CertificateRequestCmc) | 0 или больше |
Самозаверяющий(IX509CertificateRequestCertificate) | 0 или 1 |
При подписании запроса CMC подписывание данных состоит из объекта CmcData в кодировке Distinguished Encoding Rules (DER), заключаемого в объект CMS SignedData. Поле encryptedDigest объекта SignerInfo содержит подпись, и с запросом можно связать несколько объектов SignerInfo .
---------------------------------------------------------------------
-- CMC request data
---------------------------------------------------------------------
CmcData ::= SEQUENCE
{
controlSequence SEQUENCE OF TaggedAttribute,
reqSequence SEQUENCE OF TaggedRequest,
cmsSequence SEQUENCE OF TaggedContentInfo,
otherMsgSequence SEQUENCE OF TaggedOtherMs
}
---------------------------------------------------------------------
-- SignedData object that wraps the CMC request
---------------------------------------------------------------------
SignedData ::= SEQUENCE
{
version INTEGER,
digestAlgorithms DigestAlgorithmIdentifiers,
contentInfo ContentInfo,
certificates [0] IMPLICIT Certificates OPTIONAL,
crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}
DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
DigestAlgorithmIdentifiersNC ::= SET OF DigestAlgorithmIdentifierNC
SignerInfos ::= SET OF SignerInfo
SignerInfo ::= SEQUENCE
{
version INTEGER,
sid CertIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
digestEncryptionAlgorithm DigestEncryptionAlgId,
encryptedDigest EncryptedDigest,
unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
}
Каждый объект ISignerCertificate связан с одним объектом IX509SignatureInformation , который определяет используемые алгоритмы хэширования и открытого ключа. Этот объект создается и инициализируется при инициализации объекта ISignerCertificate .
Наследование
Интерфейс ISignerCertificate наследуется от интерфейса IDispatch . ISignerCertificate также имеет следующие типы членов:
Методы
Интерфейс ISignerCertificate содержит следующие методы.
ISignerCertificate::get_Certificate Извлекает массив байтов в кодировке Distinguished Encoding Rules (DER), содержащий сертификат. |
ISignerCertificate::get_ParentWindow Указывает или извлекает идентификатор окна, используемого для отображения сведений о сертификате подписи. (Получить) |
ISignerCertificate::get_PrivateKey Извлекает закрытый ключ, связанный с объектом ISignerCertificate. |
ISignerCertificate::get_SignatureInformation Извлекает объект IX509SignatureInformation, содержащий сведения о подписи сертификата. |
ISignerCertificate::get_Silent Указывает или получает логическое значение, указывающее, уведомляется ли пользователь, когда закрытый ключ используется для подписания запроса на сертификат. (Получить) |
ISignerCertificate::get_UIContextMessage Указывает или извлекает строку, содержащую текст пользовательского интерфейса, связанный с сертификатом подписи. (Получить) |
ISignerCertificate::Initialize Инициализирует объект из сертификата подписи. |
ISignerCertificate::p ut_ParentWindow Указывает или извлекает идентификатор окна, используемого для отображения сведений о сертификате подписи. (Put) |
ISignerCertificate::p ut_Pin Указывает личный идентификационный номер (ПИН-код), используемый для проверки подлинности пользователя интеллектуального карта. |
ISignerCertificate::p ut_Silent Указывает или получает логическое значение, указывающее, уведомляется ли пользователь, когда закрытый ключ используется для подписания запроса на сертификат. (Put) |
ISignerCertificate::p ut_UIContextMessage Указывает или извлекает строку, содержащую текст пользовательского интерфейса, связанный с сертификатом подписи. (Put) |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |