Freigeben über


CryptEncryptMessage-Funktion (wincrypt.h)

Die CryptEncryptMessage-Funktionverschlüsselt und codiert eine Nachricht.

Syntax

BOOL CryptEncryptMessage(
  [in]      PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
  [in]      DWORD                       cRecipientCert,
  [in]      PCCERT_CONTEXT []           rgpRecipientCert,
  [in]      const BYTE                  *pbToBeEncrypted,
  [in]      DWORD                       cbToBeEncrypted,
  [out]     BYTE                        *pbEncryptedBlob,
  [in, out] DWORD                       *pcbEncryptedBlob
);

Parameter

[in] pEncryptPara

Ein Zeiger auf eine CRYPT_ENCRYPT_MESSAGE_PARA-Struktur , die die Verschlüsselungsparameter enthält.

Die Funktion CryptEncryptMessage unterstützt die SHA2-OIDs, szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF und szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF nicht.

[in] cRecipientCert

Anzahl der Elemente im rgpRecipientCert-Array .

[in] rgpRecipientCert

Array von Zeigern auf CERT_CONTEXT Strukturen, die die Zertifikate der beabsichtigten Empfänger der Nachricht enthalten.

[in] pbToBeEncrypted

Ein Zeiger auf einen Puffer, der die nachricht enthält, die verschlüsselt werden soll.

[in] cbToBeEncrypted

Die Größe der zu verschlüsselnden Nachricht in Bytes.

[out] pbEncryptedBlob

Ein Zeiger auf blob , der einen Puffer enthält, der die verschlüsselte und codierte Nachricht empfängt.

Um die Größe dieser Informationen für die Speicherbelegung festzulegen, kann dieser Parameter NULL sein. Weitere Informationen finden Sie unter Abrufen von Daten mit unbekannter Länge.

[in, out] pcbEncryptedBlob

Ein Zeiger auf ein DWORD , der die Größe des Puffers in Bytes angibt, auf den der pbEncryptedBlob-Parameter verweist. Wenn die Funktion zurückgibt, enthält diese Variable die Größe der verschlüsselten und codierten Nachricht in Byte, die in pbEncryptedBlob kopiert wurde.

Hinweis Bei der Verarbeitung der im Puffer von pbEncryptedBlob zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner als die Größe des bei der Eingabe angegebenen Puffers sein. (Bei der Eingabe werden Puffergrößen in der Regel groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen.) Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null (TRUE) zurück.

Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Hinweis Fehler von Aufrufen von CryptGenKey, CryptEncrypt, CryptImportKey und CryptExportKey können an diese Funktion weitergegeben werden.
 
Die GetLastError-Funktion gibt die folgenden Fehlercodes am häufigsten zurück.
Rückgabecode Beschreibung
ERROR_MORE_DATA
Wenn der durch den pbEncryptedBlob-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten zu speichern, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Byte in der Variablen, auf die von pcbEncryptedBlob verwiesen wird.
E_INVALIDARG
Der Nachrichtencodierungstyp ist ungültig. Derzeit wird nur PKCS_7_ASN_ENCODING unterstützt. CbSize in *pEncryptPara ist ungültig.
 

Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1-Rückgabewerte für Codierung/Decodierung.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

Vereinfachte Nachrichtenfunktionen