PFN_CMSG_EXPORT_KEY_AGREE Rückruffunktion (wincrypt.h)
Die PFN_CMSG_EXPORT_KEY_AGREE Rückruffunktion verschlüsselt und exportiert den Inhaltsverschlüsselungsschlüssel für einen Schlüsselvereinbarungsempfänger einer umhüllten Nachricht. PFN_CMSG_EXPORT_KEY_AGREE können mithilfe eines CryptoAPI-Objektbezeichners (OID) installiert werden. Diese Funktion wird von der CryptMsgOpenToEncode-Funktion aufgerufen, wenn ihr dwMsgType-Parameter auf CMSG_ENVELOPED festgelegt ist.
Syntax
PFN_CMSG_EXPORT_KEY_AGREE PfnCmsgExportKeyAgree;
BOOL PfnCmsgExportKeyAgree(
[in] PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
[in] PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgreeEncodeInfo,
[in, out] PCMSG_KEY_AGREE_ENCRYPT_INFO pKeyAgreeEncryptInfo,
[in] DWORD dwFlags,
void *pvReserved
)
{...}
Parameter
[in] pContentEncryptInfo
Ein Zeiger auf eine CMSG_CONTENT_ENCRYPT_INFO-Struktur , die den Inhaltsverschlüsselungsschlüssel enthält.
[in] pKeyAgreeEncodeInfo
Ein Zeiger auf eine CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO-Struktur , die den Schlüssel angibt, der zum Verschlüsseln des Inhaltsverschlüsselungsschlüssels verwendet wird.
[in, out] pKeyAgreeEncryptInfo
Ein Zeiger auf eine CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur , die den verschlüsselten Inhaltsverschlüsselungsschlüssel enthält.
[in] dwFlags
Dieser Wert wird nicht verwendet. Legen Sie sie auf 0 fest.
pvReserved
Dieser Parameter ist reserviert und muss NULL sein.
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.
Hinweise
Für jeden Empfängerschlüssel muss die PFN_CMSG_EXPORT_KEY_AGREE-Funktion das EncryptedKey-Element der CMSG_KEY_AGREE_KEY_ENCRYPT_INFO Struktur aktualisieren, auf die vom rgpKeyAgreeKeyEncryptInfo-Member der CMSG_KEY_AGREE_ENCRYPT_INFO Struktur verwiesen wird, auf die der pKeyAgreeEncryptInfo-Parameter verweist. Diese Funktion muss die Elemente pfnAlloc und pfnFree der CMSG_CONTENT_ENCRYPT_INFO Struktur verwenden, auf die vom pContentEncryptInfo-Parameter verwiesen wird, um den Arbeitsspeicher für alle Werte zu verwalten, die sie aktualisiert.
Wenn das dwEncryptFlags-Element der CMSG_CONTENT_ENCRYPT_INFO-Struktur , auf die vom pContentEncryptInfo-Member verwiesen wird, beim Eintrag auf CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG festgelegt wird, wird das kurzlebige PublicKey-Element der CERT_PUBLIC_KEY_INFO Struktur, auf die vom OriginatorPublicKeyInfo-Member der CMSG_KEY_AGREE_ENCRYPT_INFO Struktur verwiesen wird, auf die vom pKeyAgreeEncryptInfo verwiesen wird. parameter sollte mit Nullen aufgefüllt werden, um immer die gleiche maximale codierte Länge zu erhalten.
Sie können OID-Unterstützungsfunktionen verwenden, um diese Rückruffunktion bereitzustellen. Wincrypt.h definiert zu diesem Zweck die folgenden Konstanten.
Sie müssen verschiedene Rückruffunktionen für CAPI1-Schlüssel und Kryptografie-API: CNG-Schlüssel (Next Generation) definieren. Beide Funktionen verfügen über die gleiche Signatur, verwenden jedoch unterschiedliche OIDs. Welche Funktion aufgerufen wird, hängt vom Wert des fCNG-Members der CMSG_CONTENT_ENCRYPT_INFO Struktur ab, auf die der pContentEncryptInfo-Parameter verweist. Die folgende Tabelle zeigt die Beziehung zwischen der Rückruffunktion und dem Wert des fCNG-Elements .
fCNG-Wert | Dauerhaft | Definition |
---|---|---|
FALSE | CMSG_OID_EXPORT_KEY_AGREE_FUNC oder CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC | "CryptMsgDllExportKeyAgree" |
TRUE | CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC | "CryptMsgDllCNGExportKeyAgree" |
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für