Función CertCreateContext (wincrypt.h)

La función CertCreateContext crea el contexto especificado a partir de los bytes codificados. El contexto creado no incluye ninguna propiedad extendida.

Sintaxis

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
);

Parámetros

[in] dwContextType

Especifica los contextos que se pueden crear. Por ejemplo, para crear un contexto de certificado, establezca dwContextType en CERT_STORE_CERTIFICATE_CONTEXT.

Las marcas de tipo de contexto definidas actualmente se muestran en la tabla siguiente.

Valor Significado
CERT_STORE_CERTIFICATE_CONTEXT
Contexto del certificado.
CERT_STORE_CRL_CONTEXT
Contexto crL.
CERT_STORE_CTL_CONTEXT
Contexto CTL.

[in] dwEncodingType

Especifica el tipo de codificación usado. Actualmente, solo se usan X509_ASN_ENCODING y PKCS_7_ASN_ENCODING; sin embargo, se pueden agregar tipos de codificación adicionales en el futuro. Para cualquier tipo de codificación actual, use:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbEncoded

Puntero a un búfer que contiene el contenido de contexto codificado existente que se va a copiar.

[in] cbEncoded

Tamaño, en bytes, del búfer pbEncoded .

[in] dwFlags

Se definen los siguientes valores de marca y se pueden combinar mediante una operación OR bit a bit.

Valor Significado
CERT_CREATE_CONTEXT_NOCOPY_FLAG
El contexto creado apunta directamente al contenido al que apunta pbEncoded en lugar de una copia asignada.
CERT_CREATE_CONTEXT_SORTED_FLAG
La función crea un contexto con entradas ordenadas. Actualmente, esta marca solo se aplica a un contexto de CTL.

En el caso de las CCL, el miembro cCTLEntry de la estructura de CTL_INFO devuelta siempre es cero. Se debe llamar a CertFindSubjectInSortedCTL y CertEnumSubjectInSortedCTL para buscar o enumerar las entradas de CTL.

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
De forma predeterminada, cuando se crea un contexto CTL, se crea un identificador HCRYTPMSG en su mensaje SignedData . Esta marca se puede establecer para mejorar el rendimiento al no crear este identificador. Esta marca solo se puede usar cuando dwContextType es CERT_STORE_CTL_CONTEXT.
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
De forma predeterminada, cuando se crea un contexto de CTL, sus entradas se descodifican. Cuando se establece esta marca, las entradas no se descodifican y se mejora el rendimiento. Esta marca solo se puede usar cuando dwContextType es CERT_STORE_CTL_CONTEXT.

[in, optional] pCreatePara

Puntero a una estructura de CERT_CREATE_CONTEXT_PARA .

Si pCreatePara y su miembro pfnFree no son NULL, el miembro pfnFree se usa para liberar la memoria especificada por el miembro pvFree . Si el miembro pvFree es NULL, el miembro pfnFree se usa para liberar el puntero pbEncoded .

Si pCreatePara o su miembro pfnFree es NULL, no se intenta liberar pbEncoded.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un puntero al contexto recién creado. Se debe llamar al miembro pvFree de pCreatePara para liberar el contexto creado.

Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.

Si GetLastError devuelve ERROR_CANCELLED, esto significa que la función de devolución de llamada PFN_CERT_CREATE_CONTEXT_SORT_FUNC devolvió FALSE para detener la ordenación.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

Funciones de mantenimiento del almacén de certificados y certificados