Freigeben über


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 umschlagierten Nachricht. PFN_CMSG_EXPORT_KEY_AGREE können mithilfe einer CryptoAPIObjektbezeichner (OID) installiert werden. Diese Funktion wird von der funktion CryptMsgOpenToEncode Funktion aufgerufen, wenn der dwMsgType Parameter auf CMSG_ENVELOPEDfestgelegt 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 Null fest.

pvReserved

Dieser Parameter ist reserviert und muss NULL sein.

Rückgabewert

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

Wenn die Funktion fehlschlägt, ist der Rückgabewert null (FALSE). Rufen Sie für erweiterte Fehlerinformationen GetLastError-auf.

Bemerkungen

Für jeden Empfängerschlüssel muss die PFN_CMSG_EXPORT_KEY_AGREE-Funktion das EncryptedKey Member der CMSG_KEY_AGREE_KEY_ENCRYPT_INFO Struktur aktualisieren, auf die durch den rgpKeyAgreeKeyEncryptInfo Member der CMSG_KEY_AGREE_ENCRYPT_INFO-Struktur verwiesen wird, auf das der pKeyAgreeEncryptInfo Parameter verweist. Diese Funktion muss die pfnAlloc und pfnFree Member der CMSG_CONTENT_ENCRYPT_INFO-Struktur verwenden, auf die der pContentEncryptInfo-Parameter verweist, um Speicher für alle Werte zu verwalten, die aktualisiert werden.

Wenn, bei der Eingabe wird die dwEncryptFlags Mitglied der CMSG_CONTENT_ENCRYPT_INFO Struktur, auf die durch das pContentEncryptInfo Member verwiesen wird, auf CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAGfestgelegt, das ephemerale PublicKey Mitglied der CERT_PUBLIC_KEY_INFO Struktur, auf das durch die OriginatorPublicKeyInfo Mitglied der CMSG_KEY_AGREE_ENCRYPT_INFO Struktur verwiesen wird, auf das die pKeyAgreeEncryptInfo Parameter sollte mit Nullen aufgefüllt werden, um immer die gleiche maximale codierte Länge zu erhalten.

Hinweis Die Länge des generierten öffentlichen Y-Schlüssels kann je nach Anzahl der führenden Nullbits variieren.

 

Sie können OID-Unterstützungsfunktionen verwenden, um diese Rückruffunktion bereitzustellen. Wincrypt.h definiert die folgenden Konstanten für diesen Zweck.

Sie müssen unterschiedliche Rückruffunktionen für CAPI1-Schlüssel und Kryptografie-API definieren: CNG-Schlüssel (Next Generation). Beide Funktionen weisen dieselbe Signatur auf, verwenden jedoch unterschiedliche OIDs. Welche Funktion aufgerufen wird, hängt vom Wert des fCNG- Mitglieds der CMSG_CONTENT_ENCRYPT_INFO Struktur ab, auf das der pContentEncryptInfo-Parameter verweist. Die folgende Tabelle zeigt die Beziehung zwischen der Rückruffunktion und dem Wert des fCNG Members.

fCNG-Wert Konstante 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

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- wincrypt.h