Condividi tramite


Funzione CertCreateContext (wincrypt.h)

La funzione CertCreateContext crea il contesto specificato dai byte codificati. Il contesto creato non include alcuna proprietà estesa.

Sintassi

const void * CertCreateContext(
  [in]           DWORD                     dwContextType,
  [in]           DWORD                     dwEncodingType,
  [in]           const BYTE                *pbEncoded,
  [in]           DWORD                     cbEncoded,
  [in]           DWORD                     dwFlags,
  [in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);

Parametri

[in] dwContextType

Specifica i contesti che possono essere creati. Ad esempio, per creare un contestodi certificato, impostare dwContextType su CERT_STORE_CERTIFICATE_CONTEXT.

I flag di tipo di contesto attualmente definiti sono visualizzati nella tabella seguente.

Valore Significato
CERT_STORE_CERTIFICATE_CONTEXT
Contesto del certificato.
CERT_STORE_CRL_CONTEXT
Contesto CRL.
CERT_STORE_CTL_CONTEXT
Contesto CTL.

[in] dwEncodingType

Specifica il tipo di codifica usato. Attualmente vengono usati solo X509_ASN_ENCODING e PKCS_7_ASN_ENCODING; Tuttavia, è possibile aggiungere altri tipi di codifica in futuro. Per entrambi i tipi di codifica correnti, usare:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbEncoded

Puntatore a un buffer che contiene il contenuto del contesto codificato esistente da copiare.

[in] cbEncoded

Dimensioni, in byte, del buffer pbEncoded .

[in] dwFlags

I valori del flag seguenti sono definiti e possono essere combinati usando un'operazione BIT-OR .

Valore Significato
CERT_CREATE_CONTEXT_NOCOPY_FLAG
Il contesto creato punta direttamente al contenuto a cui punta pbEncoded anziché una copia allocata.
CERT_CREATE_CONTEXT_SORTED_FLAG
La funzione crea un contesto con voci ordinate. Attualmente, questo flag si applica solo a un contesto CTL.

Per le dll cCTLEntrydella struttura CTL_INFO restituita è sempre zero. CertFindSubjectInSortedCTL e CertEnumSubjectInSortedCTL devono essere chiamati per trovare o enumerare le voci CTL.

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
Per impostazione predefinita, quando viene creato un contesto CTL, viene creato un handle HCRYTPMSG per il relativo messaggio SignedData . Questo flag può essere impostato per migliorare le prestazioni non creando questo handle. Questo flag può essere usato solo quando dwContextType è CERT_STORE_CTL_CONTEXT.
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
Per impostazione predefinita, quando viene creato un contesto CTL, le relative voci vengono decodificate. Quando questo flag viene impostato, le voci non vengono decodificate e le prestazioni vengono migliorate. Questo flag può essere usato solo quando dwContextType è CERT_STORE_CTL_CONTEXT.

[in, optional] pCreatePara

Puntatore a una struttura CERT_CREATE_CONTEXT_PARA .

Se pCreatePara e il relativo membro pfnFree sono entrambi non NULL, il membro pfnFree viene usato per liberare la memoria specificata dal membro pvFree. Se il membro pvFree è NULL, il membro pfnFree viene usato per liberare il puntatore pbEncoded .

Se pCreatePara o il relativo membro pfnFree è NULL, non viene eseguito alcun tentativo di liberare pbEncoded.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un puntatore al contesto appena creato. Il membro pvFree di pCreatePara deve essere chiamato per liberare il contesto creato.

Se la funzione ha esito negativo, il valore restituito è NULL. Per informazioni sull'errore estese, chiamare GetLastError.

Se GetLastError restituisce ERROR_CANCELLED, significa che la funzione di callback PFN_CERT_CREATE_CONTEXT_SORT_FUNC restituita FALSE per arrestare l'ordinamento.

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

Vedi anche

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

Funzioni di manutenzione dell'archivio certificati e certificato