Freigeben über


PFN_CMSG_CNG_IMPORT_KEY_TRANS Rückruffunktion (wincrypt.h)

Die PFN_CMSG_CNG_IMPORT_KEY_TRANS Rückruffunktion importiert und entschlüsselt einen Inhaltsverschlüsselungsschlüssel (Content Encryption Key, CEK), der für einen Schlüsseltransportempfänger bestimmt ist. PFN_CMSG_CNG_IMPORT_KEY_TRANS können mithilfe einer Kryptografie-API installiert werden: Objektbezeichner der nächsten Generation (CNG) (OID).

Syntax

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
)
{...}

Parameter

[in, out] pCNGContentDecryptInfo

Ein Zeiger auf eine CMSG_CNG_CONTENT_DECRYPT_INFO Struktur, die mit den entschlüsselten CEK-Bytes aktualisiert werden soll. Dieser Parameter enthält den Schlüssel, der zum Entschlüsseln des CEK verwendet wird. Der folgende pKeyTransDecryptPara-Parameter enthält die zu entschlüsselnden CEK-Bytes.

[in] pKeyTransDecryptPara

Ein Zeiger auf eine CMSG_CTRL_KEY_TRANS_DECRYPT_PARA-Struktur , die die Schlüsseltransportinformationen enthält, die an die CryptMsgControl-Funktion in den CMSG_CTRL_DECRYPT - oder CMSG_CTRL_KEY_TRANS_DECRYPT Fällen übergeben wurden. Für den CMSG_CTRL_DECRYPT Fall konvertiert CryptMsgControl die CMSG_CTRL_DECRYPT_PARA-Struktur in eine CMSG_CTRL_KEY_TRANS_DECRYPT_PARA-Struktur .

Das EncryptedKey-Element des pKeyTrans-Members enthält die zu entschlüsselnden CEK-Bytes. Da eine CMSG_CTRL_KEY_TRANS_DECRYPT_PARA-Struktur eine HCRYPTPROV-Option enthalten kann, darf ihr hNCryptKey-Member nicht zum Entschlüsseln von EncryptedKey verwendet werden. Stattdessen müssen Sie den im Parameter pCNGContentDecryptInfo angegebenen hNCryptKey verwenden.

Diese Funktion darf keine Member der CMSG_CTRL_KEY_TRANS_DECRYPT_PARA-Struktur aktualisieren.

[in] dwFlags

Dieser Parameter ist reserviert. Legen Sie sie auf 0 fest.

pvReserved

Dieser Parameter ist reserviert. Legen Sie sie auf NULL fest.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero (TRUE).

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Wenn diese Rückruffunktion den Schlüsselverschlüsselungsalgorithmus nicht unterstützt, muss sie FALSE zurückgeben und SetLastError mit ERROR_NOT_SUPPORTED aufrufen.

Hinweise

Die CryptMsgControl-Funktion ruft diese Funktion für die folgenden Vorgänge auf, die durch den dwCtrlType-Parameter angegeben werden:

CMSG_CTRL_DECRYPTCMSG_CTRL_KEY_TRANS_DECRYPT Sie können diese Rückruffunktion mithilfe von OID-Unterstützungsfunktionen bereitstellen. Wincrypt.h definiert die folgende Konstante für diesen Zweck.

Dauerhaft Definition
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"
 

Beispiele

Ein Beispiel, das eine OID-installierbare Rückruffunktion bereitstellt, finden Sie unter Erweitern der CryptoAPI-Funktionalität.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h

Weitere Informationen

Decodieren umhüllter Daten