Funzione CryptMsgEncodeAndSignCTL (wincrypt.h)
La funzione CryptMsgEncodeAndSignCTL codifica un CTL e crea un messaggio firmato contenente il CTL codificato.
Questa funzione codifica prima il CTL a cui fa riferimento pCtlInfo e quindi chiama CryptMsgSignCTL per firmare il messaggio codificato.
Sintassi
BOOL CryptMsgEncodeAndSignCTL(
[in] DWORD dwMsgEncodingType,
[in] PCTL_INFO pCtlInfo,
[in] PCMSG_SIGNED_ENCODE_INFO pSignInfo,
[in] DWORD dwFlags,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded
);
Parametri
[in] dwMsgEncodingType
Specifica il tipo di codifica usato. È sempre accettabile specificare sia i tipi di codifica del certificato che dei messaggi combinandoli con un'operazione bit per bit or , come illustrato nell'esempio seguente:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
I tipi di codifica attualmente definiti sono:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pCtlInfo
Puntatore alla struttura CTL_INFO contenente il CTL da codificare e firmare.
[in] pSignInfo
Puntatore a una struttura CMSG_SIGNED_ENCODE_INFO che contiene una matrice di strutture CMSG_SIGNER_ENCODE_INFO .
Il messaggio può essere codificato senza segno se il membro cbSize della struttura è impostato sulla dimensione della struttura e tutti gli altri membri sono impostati su zero.
[in] dwFlags
CMSG_ENCODE_SORTED_CTL_FLAG è impostato se le voci CTL devono essere ordinate prima della codifica. Questo flag viene impostato se verranno chiamate le funzioni CertFindSubjectInSortedCTL o CertEnumSubjectInSortedCTL .
CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG è impostato se CMSG_ENCODE_SORTED_CTL_FLAG è impostato e l'identificatore per trustedSubjects è un hash, ad esempio MD5 o SHA1.
Se CMS_PKCS7 è definito, è possibile impostare dwFlags su CMSG_CMS_ENCAPSULATED_CTL_FLAG per codificare un messaggio V3 con firma con estensione CMS compatibile con V3.
[out] pbEncoded
Puntatore a un buffer che riceve il messaggio codificato e firmato creato.
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] pcbEncoded
Puntatore a un DWORD che specifica le dimensioni, in byte, del buffer pbEncoded . Quando la funzione restituisce, la DWORD contiene il numero di byte archiviati o da archiviare nel buffer.
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 dettagliate sull'errore, chiamare GetLastError. Gli errori possono essere propagati dalle chiamate a CryptMsgOpenToEncode e CryptMsgUpdate.
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 |
Vedi anche
Funzioni di verifica tramite elenchi di controllo di accesso