Compartilhar via


Interface ISignerCertificate (certenroll.h)

A interface ISignerCertificate representa um certificado de autenticação que permite assinar uma solicitação de certificado. Quando você inicializa a interface, o Controle de Registro de Certificado recupera o certificado de autenticação do repositório pessoal e o usa para localizar uma chave privada associada. Você pode usar a chave privada para assinar uma solicitação PKCS nº 7 ou CMC, mas não uma solicitação PKCS nº 10. As solicitações PKCS nº 10 devem ser assinadas usando a chave privada associada à chave pública incluída na solicitação. Os certificados autoassinados podem ser assinados usando a chave privada associada à solicitação ou a chave privada associada ao certificado de autenticação. Isso é resumido na tabela a seguir.

Tipo de solicitação (Interface) Certificados de autenticação
PKCS nº 7(IX509CertificateRequestPkcs7) 1
PKCS #10(IX509CertificateRequestPkcs10) 0
CMC(IX509CertificateRequestCmc) 0 ou mais
Autoassinado(IX509CertificateRequestCertificate) 0 ou 1
 

Ao assinar uma solicitação CMC, os dados a serem assinados consistem em um objeto CmcData codificado em Distinguished Encoding Rules (DER) encapsulado em um objeto CMS SignedData. O campo encryptedDigest do objeto SignerInfo contém uma assinatura e vários objetos SignerInfo podem ser associados à solicitação.


---------------------------------------------------------------------
-- 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
}

Cada objeto ISignerCertificate está associado a um objeto IX509SignatureInformation que identifica os algoritmos de hash e chave pública usados. Esse objeto é criado e inicializado quando o objeto ISignerCertificate é inicializado.

Herança

A interface ISignerCertificate herda da interface IDispatch . ISignerCertificate também tem estes tipos de membros:

Métodos

A interface ISignerCertificate tem esses métodos.

 
ISignerCertificate::get_Certificate

Recupera uma matriz de bytes codificada em Distinguished Encoding Rules (DER) que contém o certificado.
ISignerCertificate::get_ParentWindow

Especifica ou recupera a ID da janela usada para exibir informações de certificado de autenticação. (Obter)
ISignerCertificate::get_PrivateKey

Recupera a chave privada associada ao objeto ISignerCertificate.
ISignerCertificate::get_SignatureInformation

Recupera um objeto IX509SignatureInformation que contém informações sobre a assinatura do certificado.
ISignerCertificate::get_Silent

Especifica ou recupera um valor booliano que indica se o usuário é notificado quando a chave privada é usada para assinar uma solicitação de certificado. (Obter)
ISignerCertificate::get_UIContextMessage

Especifica ou recupera uma cadeia de caracteres que contém o texto da interface do usuário associado ao certificado de autenticação. (Obter)
ISignerCertificate::Initialize

Inicializa o objeto de um certificado de autenticação.
ISignerCertificate::p ut_ParentWindow

Especifica ou recupera a ID da janela usada para exibir informações de certificado de autenticação. (Put)
ISignerCertificate::p ut_Pin

Especifica um PIN (número de identificação pessoal) usado para autenticar um usuário de cartão inteligente.
ISignerCertificate::p ut_Silent

Especifica ou recupera um valor booliano que indica se o usuário é notificado quando a chave privada é usada para assinar uma solicitação de certificado. (Put)
ISignerCertificate::p ut_UIContextMessage

Especifica ou recupera uma cadeia de caracteres que contém o texto da interface do usuário associado ao certificado de autenticação. (Put)

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certenroll.h

Confira também

CertEnroll Interfaces

IDispatch

ISignerCertificates