Interfaz IX509CertificateRequestPkcs7 (certenroll.h)

La interfaz IX509CertificateRequestPkcs7 representa un objeto de sintaxis de mensaje de certificado (CMS) PKCS #7. PKCS #7 define el formato de los mensajes enviados a una entidad de certificación o de registro para solicitar un certificado de clave pública. La interfaz IX509CertificateRequestPkcs7 puede resultar confusa porque su implementación no refleja perfectamente la forma en que la mayoría de los profesionales de seguridad piensan en el estándar PKCS #7. Para evitar esta confusión, tenga en cuenta los siguientes puntos:

  • Aunque se usa un mensaje PKCS #7 para encapsular una solicitud CMC, un objeto IX509CertificateRequestPkcs7 no puede contener un objeto IX509CertificateRequestCmc . En su lugar, la interfaz IX509CertificateRequestCmc hereda e implementa la interfaz IX509CertificateRequestPkcs7 . Como se implementa, una solicitud de CMC es, por lo tanto, un objeto PKCS #7 SignedData que contiene contenido de CMC, una firma principal que está basada en claves o firmadas en null y cero o más firmas basadas en certificados. Por el contrario, una solicitud PKCS #7 es un objeto SignedData que contiene contenido PKCS #10 (vea el siguiente elemento de esta lista) y tiene exactamente una firma basada en certificados.
  • Un IX509CertificateRequestPkcs7 debe contener un objeto IX509CertificateRequestPkcs10 . La principal ventaja de ajustar una solicitud PKCS #10 en un mensaje PKCS #7 es la capacidad de agregar varios firmantes. La solicitud PKCS #10 está firmada por la clave privada asociada y el mensaje PKCS #7 que ajusta la solicitud PKCS #10 también está firmada. Este segundo firmante usa el certificado que se renueva (para una solicitud de renovación) o el certificado del agente de inscripción (para una solicitud de inscripción en nombre de).
  • Puede crear e inscribir una solicitud de certificado IX509CertificateRequestPkcs10 independiente sin encapsularla en un objeto IX509CertificateRequestPkcs7 .

La representación ASN.1 de un objeto PKCS #7 en el ejemplo de sintaxis siguiente muestra que se puede componer de diversos tipos de datos.


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

De estos, el objeto SignedData que se muestra a continuación es más relevante. El objeto SignerInfo al que se hace referencia en el objeto SignedData contiene la información de firma. Para obtener una explicación más completa, vea Atributos 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
}
 

Herencia

La interfaz IX509CertificateRequestPkcs7 hereda de IX509CertificateRequest. IX509CertificateRequestPkcs7 también tiene estos tipos de miembros:

Métodos

La interfaz IX509CertificateRequestPkcs7 tiene estos métodos.

 
IX509CertificateRequestPkcs7::get_RequesterName

Especifica o recupera una cadena que contiene el nombre del Administrador de cuentas de seguridad (SAM) de la entidad final que solicita el certificado. (Obtener)
IX509CertificateRequestPkcs7::get_SignerCertificate

Especifica o recupera un certificado usado para firmar la solicitud de certificado. (Obtener)
IX509CertificateRequestPkcs7::InitializeDecode

Descodifica un PKCS firmado o sin firmar (IX509CertificateRequestPkcs7.InitializeDecode)
IX509CertificateRequestPkcs7::InitializeFromCertificate

Inicializa la solicitud de certificado mediante un certificado existente. (IX509CertificateRequestPkcs7.InitializeFromCertificate)
IX509CertificateRequestPkcs7::InitializeFromInnerRequest

Inicializa la solicitud de certificado desde el PKCS interno.
IX509CertificateRequestPkcs7::InitializeFromTemplateName

Inicializa la solicitud de certificado mediante una plantilla. (IX509CertificateRequestPkcs7.InitializeFromTemplateName)
IX509CertificateRequestPkcs7::p ut_RequesterName

Especifica o recupera una cadena que contiene el nombre del Administrador de cuentas de seguridad (SAM) de la entidad final que solicita el certificado. (Put)
IX509CertificateRequestPkcs7::p ut_SignerCertificate

Especifica o recupera un certificado usado para firmar la solicitud de certificado. (Put)

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certenroll.h

Consulte también

CertEnroll Interfaces

IX509CertificateRequest