CryptSignMessage-Funktion (wincrypt.h)
Die CryptSignMessage-Funktion erstellt einen Hash des angegebenen Inhalts, signiert den Hash und codiert dann sowohl den ursprünglichen Nachrichteninhalt als auch den signierten Hash.
Syntax
BOOL CryptSignMessage(
[in] PCRYPT_SIGN_MESSAGE_PARA pSignPara,
[in] BOOL fDetachedSignature,
[in] DWORD cToBeSigned,
[in] const BYTE * [] rgpbToBeSigned,
[in] DWORD [] rgcbToBeSigned,
[out] BYTE *pbSignedBlob,
[in, out] DWORD *pcbSignedBlob
);
Parameter
[in] pSignPara
Ein Zeiger auf CRYPT_SIGN_MESSAGE_PARA Struktur, die die Signaturparameter enthält.
[in] fDetachedSignature
TRUE , wenn es sich um eine getrennte Signatur handelt. Andernfalls FALSE. Wenn dieser Parameter auf TRUE festgelegt ist, wird nur der signierte Hash in pbSignedBlob codiert. Andernfalls werden sowohl rgpbToBeSigned als auch der signierte Hash codiert.
[in] cToBeSigned
Anzahl der Arrayelemente in rgpbToBeSigned und rgcbToBeSigned. Dieser Parameter muss auf 1 festgelegt werden, es sei denn , fDetachedSignature ist auf TRUE festgelegt.
[in] rgpbToBeSigned
Array von Zeigern auf Puffer, die den zu signierten Inhalt enthalten.
[in] rgcbToBeSigned
Array von Größen in Bytes der Inhaltspuffer, auf die in rgpbToBeSigned verwiesen wird.
[out] pbSignedBlob
Ein Zeiger auf einen Puffer, um den codierten signierten Hash zu empfangen, wenn fDetachedSignatureTRUE ist, oder auf den codierten Inhalt und den signierten Hash, wenn fDetachedSignatureFALSE ist.
Dieser Parameter kann NULL sein, um die Größe dieser Informationen für Speicherzuordnungszwecke festzulegen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.
[in, out] pcbSignedBlob
Ein Zeiger auf ein DWORD , das 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 Bytes.
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.
Im Folgenden werden die Fehlercodes aufgeführt, die am häufigsten von der GetLastError-Funktion zurückgegeben werden.
Rückgabecode | Beschreibung |
---|---|
|
Wenn der vom pbSignedBlob-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten aufzunehmen, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die von pcbSignedBlob verwiesen wird. |
|
Der Nachrichtencodierungstyp ist ungültig. Derzeit wird nur PKCS_7_ASN_ENCODING unterstützt. Die cbSize-Datei in *pSignPara ist ungültig. |
|
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 |