Compartir a través de


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

La función de devolución de llamada PFN_CMSG_CNG_IMPORT_KEY_TRANS importa y descifra una clave de cifrado de contenido (CEK) que está pensada para un destinatario de transporte de claves. PFN_CMSG_CNG_IMPORT_KEY_TRANS se puede instalar mediante una API de criptografía: identificador de objeto de próxima generación (CNG) (OID).

Sintaxis

PFN_CMSG_CNG_IMPORT_KEY_TRANS PfnCmsgCngImportKeyTrans;

BOOL PfnCmsgCngImportKeyTrans(
  [in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
  [in]      PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
  [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 de CEK que se van a descifrar.

[in] pKeyTransDecryptPara

Puntero a una estructura de CMSG_CTRL_KEY_TRANS_DECRYPT_PARA que contiene la información de transporte clave que se pasa a la función CryptMsgControl en los casos CMSG_CTRL_DECRYPT o CMSG_CTRL_KEY_TRANS_DECRYPT . En el caso CMSG_CTRL_DECRYPT , CryptMsgControl convierte la estructura de CMSG_CTRL_DECRYPT_PARA en una estructura de CMSG_CTRL_KEY_TRANS_DECRYPT_PARA .

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

Esta función no debe actualizar los miembros de la estructura CMSG_CTRL_KEY_TRANS_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_DECRYPT CMSG_CTRL_KEY_TRANS_DECRYPT Puede usar funciones de compatibilidad con OID para implementar esta función de devolución de llamada. Wincrypt.h define la constante siguiente para este propósito.

Constante Definición
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"
 

Ejemplos

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

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

Consulte también

Descodificación de datos sobres