PFN_CMSG_EXPORT_KEY_TRANS funzione di callback (wincrypt.h)

La funzione di callback PFN_CMSG_EXPORT_KEY_TRANS crittografa ed esporta la chiave di crittografia del contenuto per un destinatario del trasporto chiave di un messaggio in busto. PFN_CMSG_EXPORT_KEY_TRANS può essere installato usando un CryptoAPIidentificatore di oggetto (OID). Questa funzione viene chiamata dalla funzione CryptMsgOpenToEncode quando il relativo parametro dwMsgType è impostato su CMSG_ENVELOPED.

Sintassi

PFN_CMSG_EXPORT_KEY_TRANS PfnCmsgExportKeyTrans;

BOOL PfnCmsgExportKeyTrans(
  [in]      PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
  [in]      PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo,
  [in, out] PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo,
  [in]      DWORD dwFlags,
            void *pvReserved
)
{...}

Parametri

[in] pContentEncryptInfo

Puntatore a una struttura CMSG_CONTENT_ENCRYPT_INFO che contiene la chiave di crittografia del contenuto.

[in] pKeyTransEncodeInfo

Puntatore a una struttura CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO che specifica la chiave pubblica del destinatario usata per crittografare la chiave di crittografia del contenuto.

[in, out] pKeyTransEncryptInfo

Puntatore a una struttura CMSG_KEY_TRANS_ENCRYPT_INFO che contiene la chiave di crittografia del contenuto crittografato.

[in] dwFlags

Questo valore non viene utilizzato. Impostarlo su zero.

pvReserved

Questo valore è riservato. Impostarlo su NULL.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).

Se la funzione ha esito negativo, il valore restituito è zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError.

Osservazioni

La funzione PFN_CMSG_EXPORT_KEY_TRANS deve aggiornare il membro EncryptedKey della struttura CMSG_KEY_TRANS_ENCRYPT_INFO a cui punta il parametro pKeyTransEncrypt Info. Questa funzione deve usare il pfnAlloc e membri pfnFree della struttura CMSG_CONTENT_ENCRYPT_INFO a cui punta il parametro pContentEncryptInfo per gestire l'allocazione della memoria per la chiave crittografata.

È possibile usare funzioni di supporto OID per distribuire questa funzione di callback. Wincrypt.h definisce le costanti seguenti a questo scopo.

È necessario definire diverse funzioni di callback per chiavi CAPI1 e API di crittografia: chiavi CNG (Next Generation). Entrambe le funzioni hanno la stessa firma, ma usano OID diversi. La funzione chiamata dipende dal valore del membro fCNG della struttura CMSG_CONTENT_ENCRYPT_INFO a cui punta il parametro pContentEncryptInfo. Nella tabella seguente viene illustrata la relazione tra la funzione di callback e il valore del membro fCNG .

valore fCNG Costante Definizione
FALSO CMSG_OID_EXPORT_KEY_TRANS_FUNC o CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC "CryptMsgDllExportKeyTrans"
VERO CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC "CryptMsgDllCNGExportKeyTrans"

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Windows Server 2003 [solo app desktop]
piattaforma di destinazione Finestre
intestazione wincrypt.h