Compartir a través de


Método IX509CertificateRequestPkcs7::InitializeDecode (certenroll.h)

El método InitializeDecode descodifica un objeto de solicitud PKCS #7 firmado o sin firmar existente y lo usa para inicializar el nuevo objeto PKCS #7. La solicitud existente está contenida en una matriz de bytes que se ha codificado mediante reglas de codificación distinguidas (DER), tal como se define en el estándar notación de sintaxis abstracta Uno (ASN.1). La matriz de bytes se representa mediante una cadena que es una secuencia binaria pura o está codificada en Unicode.

Syntax

HRESULT InitializeDecode(
  [in] BSTR         strEncodedData,
  [in] EncodingType Encoding
);

Parámetros

[in] strEncodedData

Variable BSTR que contiene la solicitud codificada en DER.

[in] Encoding

Valor de enumeración EncodingType que especifica el tipo de codificación Unicode aplicada a la cadena de entrada que contiene la solicitud codificada en DER. El valor predeterminado es XCN_CRYPT_STRING_BASE64.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve S_OK.

Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código y valor devueltos Description
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
El objeto de solicitud ya se ha inicializado.

Observaciones

El método InitializeDecode :

  • Descodifica la solicitud PKCS #7 especificada en la entrada.
  • Usa el objeto descodificado para crear una solicitud PKCS #10 interna con las siguientes colecciones:
  • Agrega las extensiones descodificadas a la colección IX509Extensions .
  • Agrega los atributos descodificados a la colección ICryptAttributes .
  • Establece la propiedad ClientId .
  • Establece la propiedad TemplateObjectId .
  • Usa la firma en la solicitud PKCS #7 original para crear un nuevo objeto ISignerCertificate .
  • Recupera un objeto IX509SignatureInformation del objeto ISignerCertificate .
  • Inicializa el nuevo objeto IX509SignatureInformation mediante los algoritmos hash y firma originales.
  • Establece la solicitud PKCS #10 como el objeto de solicitud interno.

De forma predeterminada, el método InitializeDecode supone que la solicitud de certificado que se va a descodificar es para un usuario final. A partir de Windows 8 y Windows Server 2012, puede cambiar este comportamiento predeterminado. Después de crear una instancia de la interfaz IX509CertificateRequestPkcs7 , llame a InitializeDecode estableciendo el parámetro Encoding en XCN_CRYPT_STRING_BINARY y el parámetro strEncodedData en uno de los valores siguientes:

Importancia Description
L"ContextMachine" La solicitud de certificado codificada es para un equipo.
L"ContextUser" La solicitud de certificado codificada es para un usuario final.
L"ContextAdministratorForceMachine" Un administrador que actúa en nombre de un equipo solicita el certificado codificado.
 

A continuación, vuelva a llamar al método InitializeDecode con el certificado codificado establecido en el argumento strEncodedData .

Requisitos

Requirement Importancia
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
Header certenroll.h
DLL de CertEnroll.dll

Consulte también

IX509CertificateRequestPkcs7