Función CryptMsgVerifyCountersignatureEncodedEx (wincrypt.h)
La función CryptMsgVerifyCountersignatureEncodedEx comprueba que el parámetro pbSignerInfoCounterSignature contiene el hash cifrado del campo encryptedDigest de la estructura de parámetros pbSignerInfo . El firmante puede ser una estructura de CERT_PUBLIC_KEY_INFO , un contexto de certificado o un contexto de cadena.
Sintaxis
BOOL CryptMsgVerifyCountersignatureEncodedEx(
[in, optional] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] PBYTE pbSignerInfoCountersignature,
[in] DWORD cbSignerInfoCountersignature,
[in] DWORD dwSignerType,
[in] void *pvSigner,
DWORD dwFlags,
void *pvExtra
);
Parámetros
[in, optional] 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
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 contrasignador del mensaje.
[in] dwSignerType
Estructura que contiene la información del firmante. En la tabla siguiente se muestran los valores predefinidos y las estructuras indicadas.
Valor | Significado |
---|---|
|
pvSigner es un puntero a una estructura CERT_PUBLIC_KEY_INFO . |
|
pvSigner es un puntero a una estructura CERT_CONTEXT . |
|
pvSigner es un puntero a una estructura CERT_CHAIN_CONTEXT . |
[in] pvSigner
Puntero a una estructura de CERT_PUBLIC_KEY_INFO , un contexto de certificado o un contexto de cadena según el valor de dwSignerType.
dwFlags
Marcas que modifican el comportamiento de la función. Puede ser cero o el valor siguiente.
Valor | Significado |
---|---|
|
Realiza una comprobación de firma segura después de la comprobación correcta de la firma. Establezca el parámetro pvExtra para que apunte a una estructura de CERT_STRONG_SIGN_PARA que contiene los parámetros necesarios para comprobar la intensidad de la firma.
Windows 8 y Windows Server 2012: comienza la compatibilidad con esta marca. |
pvExtra
Si establece el parámetro dwFlags en CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG, establezca este parámetro (pvExtra) para que apunte a una estructura de CERT_STRONG_SIGN_PARA que contiene los parámetros usados para comprobar la intensidad de la firma.
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.
Normalmente, la función GetLastError devuelve los siguientes códigos de error.
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 |