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 se encuentra en una matriz de bytes que se ha codificado mediante reglas de codificación distinguida (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.

Sintaxis

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

Parámetros

[in] strEncodedData

Variable BSTR que contiene la solicitud codificada por 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 por DER. El valor predeterminado es XCN_CRYPT_STRING_BASE64.

Valor devuelto

Si la función se realiza 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 los que se indican en la tabla siguiente, entre otros. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código o valor devuelto Descripción
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
El objeto de solicitud ya se ha inicializado.

Comentarios

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 colecciones siguientes:
  • 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 la firma original y los algoritmos hash.
  • Establece la solicitud PKCS #10 como objeto de solicitud interna.

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 siguientes valores:

Valor Descripción
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

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
Archivo DLL CertEnroll.dll

Consulte también

IX509CertificateRequestPkcs7