Funzione CryptQueryObject (wincrypt.h)
Sintassi
BOOL CryptQueryObject(
[in] DWORD dwObjectType,
[in] const void *pvObject,
[in] DWORD dwExpectedContentTypeFlags,
[in] DWORD dwExpectedFormatTypeFlags,
[in] DWORD dwFlags,
[out] DWORD *pdwMsgAndCertEncodingType,
[out] DWORD *pdwContentType,
[out] DWORD *pdwFormatType,
[out] HCERTSTORE *phCertStore,
[out] HCRYPTMSG *phMsg,
[out] const void **ppvContext
);
Parametri
[in] dwObjectType
Indica il tipo dell'oggetto da eseguire una query. Questo deve essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
L'oggetto viene archiviato in una struttura in memoria. |
|
L'oggetto viene archiviato in un file. |
[in] pvObject
Puntatore all'oggetto da eseguire una query. Il tipo di puntatore dati dipende dal contenuto del parametro dwObjectType .
valore dwObjectType | Significato |
---|---|
|
Questo parametro è un puntatore a un CERT_BLOB o una struttura simile che contiene l'oggetto da eseguire per la query. |
|
Questo parametro è un puntatore a una stringa Unicode con terminazione null che contiene il percorso e il nome del file da eseguire per la query. |
[in] dwExpectedContentTypeFlags
Indica il tipo di contenuto previsto. Questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Il contenuto può essere qualsiasi tipo. Ciò non include il flag di CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD .
Se questo flag viene specificato, questa funzione tenterà di ottenere informazioni sull'oggetto, provando tipi di contenuto diversi fino a quando non viene trovato il tipo di contenuto appropriato o i tipi di contenuto vengono esauriti. Questo è ovviamente inefficiente, quindi questo flag deve essere usato solo se il tipo di contenuto non è noto. |
|
Il contenuto è un singolo certificato. |
|
Il contenuto è una notazione sintassi astratta one (ASN.1) codificata X509_CERT_PAIR (una coppia di certificati codificata che contiene certificati incrociati in avanti, inverso o inverso). |
|
Il contenuto è un singolo CRL. |
|
Il contenuto è un singolo CTL. |
|
Il contenuto è un pacchetto PFX (PKCS #12), ma non verrà caricato da questa funzione. È possibile usare la funzione PFXImportCertStore per caricarlo in un archivio. |
|
Il contenuto è un pacchetto PFX (PKCS #12) e verrà caricato da questa funzione soggetto alle condizioni specificate nella nota seguente.
Nota
Se il pacchetto PFX contiene una password incorporata che non è una stringa vuota o NULL e la password non è stata protetta in un'entità Active Directory (AD) che include l'utente chiamante, questa funzione non sarà in grado di decrittografare il pacchetto PFX. Il pacchetto può tuttavia essere decrittografato, se la password utilizzata quando è stato creato il pacchetto PFX è stata crittografata in un'entità AD e l'utente, come parte di tale entità, ha l'autorizzazione per decrittografare la password. Per altre informazioni, vedere il parametro pvPara e il flag PKCS12_PROTECT_TO_DOMAIN_SIDS della funzione PFXExportCertStoreEx . È possibile proteggere le password PFX in un'entità ACTIVE a partire da Windows 8 e Windows Server 2012. |
|
Il contenuto è un messaggio firmato PKCS #7. |
|
Il contenuto è un messaggio PKCS #7 firmato incorporato. |
|
Il contenuto è un messaggio PKCS #7 senza segno. |
|
Il contenuto è un messaggio PKCS #10. |
|
Il contenuto è un singolo certificato serializzato. |
|
Il contenuto è un singolo CRL serializzato. |
|
Il contenuto viene serializzato solo CTL. |
|
Il contenuto è un archivio serializzato. |
[in] dwExpectedFormatTypeFlags
Indica il formato previsto del tipo restituito. Questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Il contenuto può essere restituito in qualsiasi formato. |
|
Il contenuto deve essere restituito in formato con codifica esadecimale ASCII con prefisso "{ASN}". |
|
Il contenuto deve essere restituito in formato codificato Base64. |
|
Il contenuto deve essere restituito in formato binario. |
[in] dwFlags
Questo parametro è riservato per l'uso futuro e deve essere impostato su zero.
[out] pdwMsgAndCertEncodingType
Puntatore a un valore DWORD che riceve il tipo di codifica usato nel messaggio. Se queste informazioni non sono necessarie, impostare questo parametro su NULL.
Questo parametro può ricevere una combinazione di uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Specifica la codifica dei messaggi PKCS 7. |
|
Specifica la codifica del certificato X.509. |
[out] pdwContentType
Puntatore a un valore DWORD che riceve il tipo effettivo del contenuto. Se queste informazioni non sono necessarie, impostare questo parametro su NULL. Il tipo di contenuto restituito può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Il contenuto è un singolo certificato. |
|
Il contenuto è un X509_CERT_pair con codifica ASN.1. |
|
Il contenuto è un singolo CRL. |
|
Il contenuto è un singolo CTL. |
|
Il contenuto è un pacchetto PFX (PKCS #12). Questa funzione verifica solo che l'oggetto sia un pacchetto PKCS #12. Il pacchetto PKCS #12 non viene caricato in un archivio certificati. |
|
Il contenuto è un pacchetto PFX (PKCS #12) ed è stato caricato in un archivio certificati.
Windows Server 2003 e Windows XP: Questo valore non è supportato. |
|
Il contenuto è un messaggio firmato PKCS #7. |
|
Il contenuto è un messaggio firmato PKCS #7 incorporato. |
|
Il contenuto è un messaggio non firmato PKCS #7. |
|
Il contenuto è un messaggio PKCS #10. |
|
Il contenuto è un singolo certificato serializzato. |
|
Il contenuto è un singolo CRL serializzato. |
|
Il contenuto è un singolo CTL serializzato. |
|
Il contenuto è un archivio serializzato. |
[out] pdwFormatType
Puntatore a un valore DWORD che riceve il tipo di formato effettivo del contenuto. Se queste informazioni non sono necessarie, impostare questo parametro su NULL. Il tipo di formato restituito può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Il contenuto è in formato con codifica esadecimale ASCII con prefisso "{ASN}". |
|
Il contenuto è in formato con codifica Base64. |
|
Il contenuto è in formato binario. |
[out] phCertStore
Puntatore a un valore HCERTSTORE che riceve un handle in un archivio certificati che include tutti i certificati, i CRL e gli elenchi di scopi consentiti nell'oggetto.
Questo parametro riceve un handle dell'archivio certificati solo quando il parametro dwContentType riceve uno dei valori seguenti. Questo parametro riceve NULL per tutti gli altri tipi di contenuto.
CERT_QUERY_CONTENT_CERT
CERT_QUERY_CONTENT_CRL
CERT_QUERY_CONTENT_CTL
CERT_QUERY_CONTENT_PFX_AND_LOAD
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_SERIALIZED_CERT
CERT_QUERY_CONTENT_SERIALIZED_CRL
CERT_QUERY_CONTENT_SERIALIZED_CTL
CERT_QUERY_CONTENT_SERIALIZED_STORE
Al termine dell'uso dell'handle, liberarlo passando l'handle alla funzione CertCloseStore .
Se queste informazioni non sono necessarie, impostare questo parametro su NULL.
[out] phMsg
Puntatore a un valore HCRYPTMSG che riceve l'handle di un messaggio aperto.
Questo parametro riceve un handle di messaggio solo quando il parametro dwContentType riceve uno dei valori seguenti. Questo parametro riceve NULL per tutti gli altri tipi di contenuto.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Al termine dell'uso dell'handle, liberarlo passando l'handle alla funzione CryptMsgClose .
Se queste informazioni non sono necessarie, impostare questo parametro su NULL.
[out] ppvContext
Puntatore a un puntatore che riceve informazioni aggiuntive sull'oggetto.
Il formato di questi dati dipende dal valore ricevuto dal parametro dwContentType . La tabella seguente elenca il formato dei dati per il valore dwContentType specificato.
valore dwContentType | Significato |
---|---|
|
Questo parametro riceve un puntatore a una struttura CERT_CONTEXT . Al termine dell'uso della struttura, liberarlo passando questo puntatore alla funzione CertFreeCertificateContext . |
|
Questo parametro riceve un puntatore a una struttura CRL_CONTEXT . Al termine dell'uso della struttura, liberarlo passando questo puntatore alla funzione CertFreeCRLContext . |
|
Questo parametro riceve un puntatore a una struttura CTL_CONTEXT . Al termine dell'uso della struttura, liberarlo passando questo puntatore alla funzione CertFreeCTLContext . |
|
Questo parametro riceve un puntatore a una struttura CERT_CONTEXT . Al termine dell'uso della struttura, liberarlo passando questo puntatore alla funzione CertFreeCertificateContext . |
|
Questo parametro riceve un puntatore a una struttura CRL_CONTEXT . Al termine dell'uso della struttura, liberarlo passando questo puntatore alla funzione CertFreeCRLContext . |
|
Questo parametro riceve un puntatore a una struttura CTL_CONTEXT . Al termine dell'uso della struttura, liberarlo passando questo puntatore alla funzione CertFreeCTLContext . |
Se queste informazioni non sono necessarie, impostare questo parametro su NULL.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.
Se la funzione ha esito negativo, restituisce zero. Per informazioni sugli errori estesi, chiamare GetLastError.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |