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 di chiavi di un messaggio in busto. PFN_CMSG_EXPORT_KEY_TRANS può essere installato usando un identificatore di oggettoCryptoAPI (OID). Questa funzione viene chiamata dalla funzione CryptMsgOpenToEncode quando il 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 di CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO che specifica la chiave pubblica del destinatario utilizzata 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 crittografata.

[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.

Commenti

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

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

È necessario definire funzioni di callback diverse per le chiavi CAPI1 e l'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
FALSE CMSG_OID_EXPORT_KEY_TRANS_FUNC o CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC "CryptMsgDllExportKeyTrans"
true CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC "CryptMsgDllCNGExportKeyTrans"

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincrypt.h