Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |
|---|---|
|
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:
- 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 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 |