Funzione CryptSignAndEncryptMessage (wincrypt.h)
La funzione CryptSignAndEncryptMessage crea un hash del contenuto specificato, firma l'hash , crittografa il contenuto, esegue l'hash crittografato e l'hash firmato e quindi codifica sia il contenuto crittografato che l'hash firmato. Il risultato è lo stesso di se l'hash è stato prima firmato e quindi crittografato.
Sintassi
BOOL CryptSignAndEncryptMessage(
[in] PCRYPT_SIGN_MESSAGE_PARA pSignPara,
[in] PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
[in] DWORD cRecipientCert,
[in] PCCERT_CONTEXT [] rgpRecipientCert,
[in] const BYTE *pbToBeSignedAndEncrypted,
[in] DWORD cbToBeSignedAndEncrypted,
[out] BYTE *pbSignedAndEncryptedBlob,
[in, out] DWORD *pcbSignedAndEncryptedBlob
);
Parametri
[in] pSignPara
Puntatore a una struttura CRYPT_SIGN_MESSAGE_PARA contenente i parametri di firma.
[in] pEncryptPara
Puntatore a una struttura CRYPT_ENCRYPT_MESSAGE_PARA contenente parametri di crittografia.
[in] cRecipientCert
Numero di elementi di matrice in rgpRecipientCert.
[in] rgpRecipientCert
Matrice di puntatori alle strutture CERT_CONTEXT . Ogni struttura è il certificato di un destinatario previsto del messaggio.
[in] pbToBeSignedAndEncrypted
Puntatore a un buffer contenente il contenuto da firmare e crittografare.
[in] cbToBeSignedAndEncrypted
Dimensioni, in byte, del buffer pbToBeSignedAndEncrypted .
[out] pbSignedAndEncryptedBlob
Puntatore a un buffer per ricevere il messaggio crittografato e codificato.
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] pcbSignedAndEncryptedBlob
Puntatore a DWORD che specifica le dimensioni, in byte, del buffer a cui punta pbSignedAndEncryptedBlob. Quando la funzione restituisce, questa variabile contiene le dimensioni, in byte, del messaggio firmato e crittografato copiato in *pbSignedAndEncryptedBlob.
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 viene elencato il codice di errore più comunemente restituito dalla funzione GetLastError .
Codice restituito | Descrizione |
---|---|
|
Se il buffer specificato dal parametro pbSignedAndEncryptedBlob 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 pcbSignedAndEncryptedBlob. |
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 |