Поделиться через


Интерфейс 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

См. также раздел

Интерфейсы CertEnroll

IDispatch

ISignerCertificates