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

La función de devolución de llamada PFN_CMSG_CNG_IMPORT_KEY_AGREE descifra una clave de cifrado de contenido (CEK) que está pensada para un destinatario del contrato de clave. PFN_CMSG_CNG_IMPORT_KEY_AGREE se puede instalar mediante un identificador de objeto (OID) cryptography API: Next Generation (CNG).

Sintaxis

PFN_CMSG_CNG_IMPORT_KEY_AGREE PfnCmsgCngImportKeyAgree;

BOOL PfnCmsgCngImportKeyAgree(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Parámetros

[in, out] pCNGContentDecryptInfo

Puntero a una estructura de CMSG_CNG_CONTENT_DECRYPT_INFO que se va a actualizar con los bytes de CEK descifrados. Este parámetro contiene la clave usada para descifrar la CEK. El siguiente parámetro pKeyTransDecryptPara contiene los bytes cek que se van a descifrar.

[in] pKeyAgreeDecryptPara

Puntero a una estructura de CMSG_CTRL_KEY_AGREE_DECRYPT_PARA que contiene la información de acuerdo de clave que se pasa a la función CryptMsgControl en el caso CMSG_CTRL_KEY_AGREE_DECRYPT .

El miembro EncryptedKey del miembro pKeyAgree contiene los bytes cek que se van a descifrar. Dado que una estructura de CMSG_CTRL_KEY_AGREE_DECRYPT_PARA puede contener una opción HCRYPTPROV , su miembro hNCryptKey no debe usarse para descifrar EncryptedKey. En su lugar, debe usar el miembro hNCryptKey especificado en el parámetro pCNGContentDecryptInfo .

Esta función no debe actualizar los miembros de la estructura CMSG_CTRL_KEY_AGREE_DECRYPT_PARA .

[in] dwFlags

Este parámetro está reservado. Establézcalo en cero.

pvReserved

Este parámetro está reservado. Establézcalo en NULL.

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.

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

Comentarios

La función CryptMsgControl llama a esta función para las siguientes operaciones especificadas por el parámetro dwCtrlType :

CMSG_CTRL_KEY_AGREE_DECRYPT 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
CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC "CryptMsgDllCNGImportKeyAgree"
 

Ejemplos

Para obtener un ejemplo en el que se implementa una función de devolución de llamada instalable de OID, consulte Extensión de la funcionalidad cryptoAPI.

Requisitos

   
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

Consulte también

Descodificación de datos sobres