PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC función de devolución de llamada (wincrypt.h)

Se llama a la función de devolución de llamada PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC para descifrar una firma codificada y compararla con un hash calculado.

Sintaxis

PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC PfnCryptVerifyEncodedSignatureFunc;

BOOL PfnCryptVerifyEncodedSignatureFunc(
  [in]           DWORD dwCertEncodingType,
  [in]           PCERT_PUBLIC_KEY_INFO pPubKeyInfo,
  [in]           PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in, optional] void *pvDecodedSignPara,
  [in]           LPCWSTR pwszCNGPubKeyAlgid,
  [in]           LPCWSTR pwszCNGHashAlgid,
  [in]           BYTE *pbComputedHash,
  [in]           DWORD cbComputedHash,
  [in]           BYTE *pbSignature,
  [in]           DWORD cbSignature
)
{...}

Parámetros

[in] dwCertEncodingType

Especifica el tipo de codificación utilizada. Siempre es aceptable especificar los tipos de codificación de certificados y mensajes mediante su combinación con una operación OR bit a bit, como se muestra en el ejemplo siguiente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING tipos de codificación definidos actualmente son:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pPubKeyInfo

Dirección de una estructura de CERT_PUBLIC_KEY_INFO que contiene la clave pública que se va a usar para comprobar la firma. Puede usarlo con CryptImportPublicKeyInfoEx2 para obtener un BCRYPT_KEY_HANDLE.

[in] pSignatureAlgorithm

Puntero a una estructura de CRYPT_ALGORITHM_IDENTIFIER que contiene el identificador de objeto de firma (OID) y sus parámetros codificados opcionales.

[in, optional] pvDecodedSignPara

Puntero opcional a la estructura de datos de parámetros de firma descodificada que devolvió anteriormente la función PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC .

[in] pwszCNGPubKeyAlgid

Cadena Unicode que contiene el identificador del algoritmo de clave pública cryptography API: Next Generation (CNG) que corresponde a pSignatureAlgorithm-pszObjId>.

[in] pwszCNGHashAlgid

Cadena Unicode que contiene el identificador del algoritmo hash CNG que corresponde a pSignatureAlgorithm-pszObjId> o a un identificador de algoritmo hash en pvDecodedSignPara.

[in] pbComputedHash

Puntero a los bytes hash calculados devueltos por la función BCryptFinishHash que corresponde a pwszCNGHashAlgid.

[in] cbComputedHash

Valor que representa la longitud, en bytes, del hash calculado.

[in] pbSignature

Puntero a los bytes de firma codificados.

[in] cbSignature

Valor que representa la longitud, en bytes, de la firma codificada.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero (TRUE).

Si se produce un error en la función, devuelve cero (FALSE). Para obtener información de error extendida, llame a GetLastError.

Si esta función de devolución de llamada no admite el algoritmo de firma, debe devolver FALSE y llamar a SetLastError con ERROR_NOT_SUPPORTED.

Comentarios

Puede usar funciones de compatibilidad de OID para implementar esta función de devolución de llamada. Wincrypt.h define la siguiente constante para este propósito.

Constante Definición
CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC "CryptDllVerifyEncodedSignature"

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 wincrypt.h