Condividi tramite


struttura CRYPT_VERIFY_MESSAGE_PARA (wincrypt.h)

La struttura CRYPT_VERIFY_MESSAGE_PARA contiene informazioni necessarie per verificare i messaggi firmati.

Sintassi

typedef struct _CRYPT_VERIFY_MESSAGE_PARA {
  DWORD                            cbSize;
  DWORD                            dwMsgAndCertEncodingType;
  HCRYPTPROV_LEGACY                hCryptProv;
  PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate;
  void                             *pvGetArg;
  PCCERT_STRONG_SIGN_PARA          pStrongSignPara;
} CRYPT_VERIFY_MESSAGE_PARA, *PCRYPT_VERIFY_MESSAGE_PARA;

Members

cbSize

Dimensioni di questa struttura in byte.

dwMsgAndCertEncodingType

Tipo di codifica utilizzata. È sempre accettabile specificare sia il certificato che i tipi di codifica dei messaggi combinandoli con un'operazione OR bit per bit, 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

hCryptProv

Questo membro non viene usato e deve essere impostato su NULL.

Windows Server 2003 e Windows XP: Handle per il provider del servizio di crittografia da usare per verificare un messaggio firmato. Il CSP identificato da questo handle viene usato per l'hashing e per la verifica della firma. A meno che non vi sia un motivo sicuro per l'uso di un provider di crittografia specifico, impostare su zero per usare il provider RSA o DSS predefinito.

Il tipo di dati di questo membro è HCRYPTPROV.

pfnGetSignerCertificate

Puntatore alla funzione di callback usata per ottenere il contesto del certificato del firmatario. Se NULL, viene utilizzato il callback predefinito. Il callback predefinito tenta di ottenere il contesto del certificato del firmatario dall'archivio certificati del messaggio.

Una funzione di callback definita dall'applicazione che ottiene il certificato del firmatario può essere usata al posto dell'impostazione predefinita. Viene passato l'identificatore del certificato del firmatario (il relativo emittente e il numero di serie) e un handle all'archivio certificati del messaggio firmato crittografico.

Vedere CryptGetSignerCertificateCallback per la firma e gli argomenti delle funzioni di callback.

pvGetArg

Argomento da passare alla funzione di callback. In genere, questo ottiene e verifica il certificato del firmatario del messaggio.

pStrongSignPara

Puntatore facoltativo a una struttura CERT_STRONG_SIGN_PARA che contiene parametri usati per la firma avanzata. Se si imposta questo membro e la funzione verifica correttamente la firma, la funzione verificherà quindi la presenza di una firma complessa. Se la firma non è complessa, l'operazione avrà esito negativo e imposterà il valore GetLastError su NTE_BAD_ALGID.

Nota Puoi usare il membro pStrongSignPara solo se CRYPT_VERIFY_MESSAGE_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se CRYPT_VERIFY_MESSAGE_PARA_HAS_EXTRA_FIELDS è definito, è necessario zero tutti i campi inutilizzati.
 
Windows 8 e Windows Server 2012: inizia il supporto per questo membro.

Commenti

Questa struttura viene passata alle funzioni seguenti:

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione wincrypt.h

Vedi anche

CERT_CONTEXT

CERT_INFO

CryptDecryptAndVerifyMessageSignature

CryptVerifyDetachedMessageSignature

CryptVerifyMessageSignature