Share via


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.

Hinweis Die Länge des generierten kurzlebigen öffentlichen Y-Schlüssels kann abhängig von der Anzahl der führenden Nullbits variieren.

 

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