CryptSignMessageWithKey-Funktion (wincrypt.h)

Die CryptSignMessageWithKey-Funktion signiert eine Nachricht mithilfe des privaten Schlüssels eines CSP, der in den Parametern angegeben ist. Eine Platzhalter-SignerId wird erstellt und in der Nachricht gespeichert.

Syntax

BOOL CryptSignMessageWithKey(
  [in]      PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara,
  [in]      const BYTE                   *pbToBeSigned,
  [in]      DWORD                        cbToBeSigned,
  [out]     BYTE                         *pbSignedBlob,
  [in, out] DWORD                        *pcbSignedBlob
);

Parameter

[in] pSignPara

Ein Zeiger auf eine CRYPT_KEY_SIGN_MESSAGE_PARA-Struktur , die die Signaturparameter enthält.

[in] pbToBeSigned

Ein Zeiger auf ein Pufferarray, das die zu signierte Nachricht enthält.

[in] cbToBeSigned

Die Anzahl der Arrayelemente im Pufferarray pbToBeSigned .

[out] pbSignedBlob

Ein Zeiger auf einen Puffer zum Empfangen der codierten signierten Nachricht.

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

[in, out] pcbSignedBlob

Ein Zeiger auf einen DWORD-Wert , der die Größe des puffers pbSignedBlob in Bytes angibt. Wenn die Funktion zurückgibt, enthält diese Variable die Größe der signierten und codierten Nachricht in Byte.

Hinweis Bei der Verarbeitung der 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, ist der Rückgabewert ungleich null (TRUE).

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE).

Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Im Folgenden sind die Fehlercodes aufgeführt, die am häufigsten von der GetLastError-Funktion zurückgegeben werden.

Rückgabecode Beschreibung
ERROR_MORE_DATA
Wenn der durch den pbSignedBlob-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 pcbSignedBlob verwiesen wird.
E_INVALIDARG
Der Nachrichtencodierungstyp ist ungültig. Derzeit wird nur PKCS_7_ASN_ENCODING unterstützt. CbSize in *pSignPara ist ungültig.
CRYPT_E_NO_KEY_PROPERTY
Das pSigningCert in *pSignPara verfügt nicht über eine CERT_KEY_PROV_INFO_PROP_ID- oder CERT_KEY_CONTEXT_PROP_ID-Eigenschaft.

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