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 |
---|---|
|
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:
- Colección ICryptAttributes vacía.
- Colección IX509Extensions vacía.
- Colección IObjectIds vacía para extensiones críticas.
- Colección IObjectIds vacía para los OID de atributo y extensión que se van a suprimir de la nueva solicitud.
- 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 |