Funzione CryptSignMessage (wincrypt.h)
La funzione CryptSignMessage crea un hash del contenuto specificato, firma l'hash e quindi codifica sia il contenuto del messaggio originale che l'hash firmato.
Sintassi
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
);
Parametri
[in] pSignPara
Puntatore alla struttura CRYPT_SIGN_MESSAGE_PARA contenente i parametri di firma.
[in] fDetachedSignature
TRUE se si tratta di una firma scollegata. In caso contrario, FALSE. Se questo parametro è impostato su TRUE, viene codificato solo l'hash firmato in pbSignedBlob. In caso contrario, sia rgpbToBeSigned che l'hash firmato vengono codificati.
[in] cToBeSigned
Conteggio del numero di elementi della matrice in rgpbToBeSigned e rgcbToBeSigned. Questo parametro deve essere impostato su uno a meno che fDetachedSignature non sia impostato su TRUE.
[in] rgpbToBeSigned
Matrice di puntatori ai buffer che contengono il contenuto da firmare.
[in] rgcbToBeSigned
Matrice di dimensioni, in byte, dei buffer di contenuto a cui punta in rgpbToBeSigned.
[out] pbSignedBlob
Puntatore a un buffer per ricevere l'hash con segno codificato, se fDetachedSignature è TRUE o per entrambi il contenuto codificato e l'hash firmato se fDetachedSignature è FALSE.
Questo parametro può essere NULL per impostare le dimensioni di queste informazioni per scopi di allocazione della memoria. Per altre informazioni, vedere Recupero dei dati di lunghezza sconosciuta.
[in, out] pcbSignedBlob
Puntatore a un DWORD che specifica le dimensioni, in byte, del buffer pbSignedBlob . Quando la funzione restituisce, questa variabile contiene le dimensioni, in byte, del messaggio firmato e codificato.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).
Se la funzione ha esito negativo, il valore restituito è zero (FALSE).
Per informazioni sull'errore estese, chiamare GetLastError.
Di seguito sono elencati i codici di errore più comunemente restituiti dalla funzione GetLastError .
Codice restituito | Descrizione |
---|---|
|
Se il buffer specificato dal parametro pbSignedBlob non è sufficiente per contenere i dati restituiti, la funzione imposta il codice ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile puntata da pcbSignedBlob. |
|
Il tipo di codifica del messaggio non è valido. Attualmente è supportato solo PKCS_7_ASN_ENCODING. CbSize in *pSignPara non è valido. |
|
PSigningCert in *pSignPara non ha una proprietà CERT_KEY_PROV_INFO_PROP_ID o CERT_KEY_CONTEXT_PROP_ID. |
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |