Función CryptMsgVerifyCountersignatureEncoded (wincrypt.h)
La función CryptMsgVerifyCountersignatureEncoded comprueba una contrafirma en términos de la estructura SignerInfo (definida por PKCS #7).
Sintaxis
BOOL CryptMsgVerifyCountersignatureEncoded(
[in] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] PBYTE pbSignerInfoCountersignature,
[in] DWORD cbSignerInfoCountersignature,
[in] PCERT_INFO pciCountersigner
);
Parámetros
[in] hCryptProv
Este parámetro no se usa y debe establecerse en NULL.
Windows Server 2003 y Windows XP: NULL o el identificador del proveedor criptográfico que se va a usar para aplicar un algoritmo hash al campo encryptedDigest de pbSignerInfo. El tipo de datos de este parámetro es HCRYPTPROV.
A menos que haya un motivo seguro para pasar un proveedor criptográfico específico en hCryptProv, pase NULL para hacer que se use el proveedor RSA o DSS predeterminado.
[in] dwEncodingType
Especifica el tipo de codificación utilizado. Actualmente, solo se usan X509_ASN_ENCODING y PKCS_7_ASN_ENCODING; sin embargo, en el futuro se pueden agregar tipos de codificación adicionales. Para cualquier tipo de codificación actual, use:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pbSignerInfo
Puntero al BLOB codificado que contiene el firmante del contenido de un mensaje que se va a contrasignar.
[in] cbSignerInfo
Recuento, en bytes, del BLOB codificado para el firmante del contenido.
[in] pbSignerInfoCountersignature
Puntero al BLOB codificado que contiene la información del contrafirmador.
[in] cbSignerInfoCountersignature
Recuento, en bytes, del BLOB codificado para el contrafirmador del mensaje.
[in] pciCountersigner
Puntero a un CERT_INFO que incluye con el emisor y el número de serie del contrafirmador. Para obtener más información, vea la sección Comentarios.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).
Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError.
En la tabla siguiente se enumeran los códigos de error devueltos normalmente por la función GetLastError .
Código devuelto | Descripción |
---|---|
|
El mensaje no contiene un atributo autenticado esperado. |
|
El valor hash no es correcto. |
|
El mensaje no está codificado según lo previsto. |
|
El algoritmo criptográfico es desconocido. |
|
Uno o varios argumentos no son válidos. |
|
Se quedó sin memoria. |
Es posible que se devuelvan errores propagados de las funciones siguientes.
Si se produce un error en la función, GetLastError puede devolver un error de codificación y descodificación de sintaxis abstracta uno (ASN.1). Para obtener información sobre estos errores, vea Valores devueltos de codificación y descodificación de ASN.1.Comentarios
La comprobación del contador se realiza mediante la estructura PKCS #7 SIGNERINFO . La firma debe contener el hash cifrado del campo encryptedDigest de pbSignerInfo.
El emisor y el número de serie del contador deben coincidir con la información del contrafirmador de pbSignerInfoCountersignature. Los únicos campos a los que se hace referencia desde pciCountersigner son SerialNumber, Issuer y SubjectPublicKeyInfo. SubjectPublicKeyInfo se usa para tener acceso a la clave pública que, a continuación, se usa para cifrar el hash del pciCountersigner , por lo que se compara con el hash de pbSignerInfo.
Ejemplos
Para obtener un ejemplo que usa esta función, vea Ejemplo de programa C: codificación y descodificación de un mensaje contrasignado.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | wincrypt.h |
Library | Crypt32.lib |
Archivo DLL | Crypt32.dll |