Interface IX509CertificateRequestPkcs7 (certenroll.h)

A interface IX509CertificateRequestPkcs7 representa um objeto cms (sintaxe de mensagem de certificado) PKCS nº 7. O PKCS nº 7 define o formato das mensagens enviadas a uma autoridade de certificação ou registro para solicitar um certificado de chave pública. A interface IX509CertificateRequestPkcs7 pode ser confusa porque sua implementação não espelho perfeitamente a maneira como a maioria dos profissionais de segurança pensa sobre o padrão PKCS nº 7. Para evitar essa confusão, tenha em mente os seguintes pontos:

  • Embora uma mensagem PKCS nº 7 seja usada para encapsular uma solicitação CMC, um objeto IX509CertificateRequestPkcs7 não pode conter um objeto IX509CertificateRequestCmc . Em vez disso, a interface IX509CertificateRequestCmc herda e implementa a interface IX509CertificateRequestPkcs7 . Conforme implementado, uma solicitação CMC é, portanto, um objeto PKCS #7 SignedData que contém conteúdo CMC, uma assinatura primária que é baseada em chave ou assinada em nulo e zero ou mais assinaturas baseadas em certificado. Por outro lado, uma solicitação PKCS nº 7 é um objeto SignedData que contém conteúdo PKCS nº 10 (consulte o próximo item nesta lista) e tem exatamente uma assinatura baseada em certificado.
  • Um IX509CertificateRequestPkcs7 deve conter um objeto IX509CertificateRequestPkcs10 . A vantagem main de encapsular uma solicitação PKCS nº 10 em uma mensagem PKCS nº 7 é a capacidade de adicionar vários signatários. A solicitação PKCS nº 10 é assinada pela chave privada associada e a mensagem PKCS nº 7 que encapsula a solicitação PKCS #10 também é assinada. Esse segundo signatário usa o certificado que está sendo renovado (para uma solicitação de renovação) ou o certificado do agente de registro (para um registro em nome da solicitação).
  • Você pode criar e registrar uma solicitação de certificado IX509CertificateRequestPkcs10 autônoma sem embrulhá-la em um objeto IX509CertificateRequestPkcs7 .

A representação ASN.1 de um objeto PKCS nº 7 no exemplo de sintaxe a seguir mostra que ele pode ser composto por uma variedade de tipos de dados.


PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
    data | signed-data | enveloped-data | signed-and-enveloped-data |
    digested-data | encrypted-data | authenticated-data, ...
}

Destes, o objeto SignedData mostrado abaixo é mais relevante. O objeto SignerInfo referenciado no objeto SignedData contém as informações de assinatura. Para obter uma discussão mais completa, consulte Atributos PKCS nº 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
}
 

Herança

A interface IX509CertificateRequestPkcs7 herda de IX509CertificateRequest. IX509CertificateRequestPkcs7 também tem esses tipos de membros:

Métodos

A interface IX509CertificateRequestPkcs7 tem esses métodos.

 
IX509CertificateRequestPkcs7::get_RequesterName

Especifica ou recupera uma cadeia de caracteres que contém o nome SAM (Gerenciador de Contas de Segurança) da entidade final que solicita o certificado. (Obter)
IX509CertificateRequestPkcs7::get_SignerCertificate

Especifica ou recupera um certificado usado para assinar a solicitação de certificado. (Obter)
IX509CertificateRequestPkcs7::InitializeDecode

Decodifica um PKCS assinado ou não assinado existente (IX509CertificateRequestPkcs7.InitializeDecode)
IX509CertificateRequestPkcs7::InitializeFromCertificate

Inicializa a solicitação de certificado usando um certificado existente. (IX509CertificateRequestPkcs7.InitializeFromCertificate)
IX509CertificateRequestPkcs7::InitializeFromInnerRequest

Inicializa a solicitação de certificado do PKCS interno
IX509CertificateRequestPkcs7::InitializeFromTemplateName

Inicializa a solicitação de certificado usando um modelo. (IX509CertificateRequestPkcs7.InitializeFromTemplateName)
IX509CertificateRequestPkcs7::p ut_RequesterName

Especifica ou recupera uma cadeia de caracteres que contém o nome SAM (Gerenciador de Contas de Segurança) da entidade final que solicita o certificado. (Put)
IX509CertificateRequestPkcs7::p ut_SignerCertificate

Especifica ou recupera um certificado usado para assinar a solicitação de certificado. (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

IX509CertificateRequest