Funzione CryptMsgSignCTL (wincrypt.h)

La funzione CryptMsgSignCTL crea un messaggio firmato contenente un CTL codificato.

Sintassi

BOOL CryptMsgSignCTL(
  [in]      DWORD                    dwMsgEncodingType,
  [in]      BYTE                     *pbCtlContent,
  [in]      DWORD                    cbCtlContent,
  [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] pbCtlContent

Il CTL_INFO codificato che può essere un membro di una struttura CTL_CONTEXT o può essere creato usando la funzione CryptEncodeObject .

[in] cbCtlContent

Dimensioni, in byte, del contenuto a cui fa riferimento pbCtlContent.

[in] pSignInfo

Puntatore a una struttura CMSG_SIGNED_ENCODE_INFO contenente 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

Se CMS_PKCS7 è definito, è possibile impostare su CMSG_CMS_ENCAPSULATED_CTL_FLAG per codificare un messaggio V3 Con segno firmato V3 compatibile con CMS.

[out] pbEncoded

Puntatore a un buffer per ricevere il messaggio codificato.

Questo parametro può essere NULL per ottenere le dimensioni di queste informazioni ai fini dell'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 sull'errore estese, chiamare GetLastError. Questa funzione può restituire errori 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

CMSG_SIGNED_ENCODE_INFO

CryptMsgEncodeAndSignCTL

CryptMsgOpenToEncode

Funzioni di verifica tramite elenchi di controllo di accesso