Función CertGetCTLContextProperty (wincrypt.h)
La función CertGetCTLContextProperty recupera una propiedad extendida de un contexto de lista de confianza de certificados (CTL).
Sintaxis
BOOL CertGetCTLContextProperty(
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwPropId,
[out] void *pvData,
[in, out] DWORD *pcbData
);
Parámetros
[in] pCtlContext
Puntero a la estructura CTL_CONTEXT .
[in] dwPropId
Identifica la propiedad que se va a recuperar. Los identificadores definidos actualmente y el tipo de datos que se devolverán en pvData se enumeran en la tabla siguiente.
Valor | Significado |
---|---|
|
Tipo de datos para pvData: puntero a un DWORD
Devuelve un valor DWORD que indica si se conservan las operaciones de escritura en el certificado. El valor DWORD no se establece si el certificado está en un almacén de memoria o en un almacén basado en el Registro que se abre como de solo lectura. |
|
Tipo de datos para pvData: NULL
Indica que el certificado se omite durante las enumeraciones. Un certificado con este conjunto de propiedades se encuentra con operaciones de búsqueda explícitas, como las usadas para buscar un certificado con un hash específico o un número de serie. No hay datos en pvData asociados a esta propiedad. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve una cadena Unicode terminada en null que denomina el tipo de certificado para el que se ha inscrito automáticamente el certificado. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve una matriz de bytes que contiene una estructura de CTL_USAGE codificada en notación de sintaxis abstracta uno (ASN.1). |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve la propiedad mostrada por la interfaz de usuario del certificado. Esta propiedad permite al usuario describir el uso del certificado. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve una matriz de bytes que contiene una estructura de CERT_ENHKEY_USAGE codificada en ASN.1. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve una cadena de caracteres Unicode terminada en null que contiene el nombre para mostrar del CTL. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve el hash SHA1. Si el hash no existe, se calcula mediante CryptHashCertificate. |
|
Tipo de datos para pvData: puntero a un CERT_KEY_CONTEXT
Devuelve una estructura CERT_KEY_CONTEXT . |
|
Tipo de datos para pvData: puntero a una matriz BYTE Si no existe, busca la extensión szOID_SUBJECT_KEY_IDENTIFIER. Si se produce un error, se realiza un hash SHA1 en el miembro SubjectPublicKeyInfo del certificado para generar los valores de identificador. |
|
Tipo de datos para pvData: puntero a un HCRYPTPROV
Devuelve el identificador de proveedor obtenido del CERT_KEY_CONTEXT_PROP_ID. |
|
Tipo de datos para pvData: puntero a una estructura de CRYPT_KEY_PROV_INFO Devuelve un puntero a un CRYPT_KEY_PROV_INFO. |
|
Tipo de datos para pvData: puntero a un DWORD
Devuelve un valor DWORD que especifica la clave privada obtenida de CERT_KEY_CONTEXT_PROP_ID propiedad si existe. De lo contrario, si CERT_KEY_PROV_INFO_PROP_ID existe, es el origen de dwKeySpec. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve el hash MD5. Si el hash no existe, se calcula mediante CryptHashCertificate. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve la estructura de CERT_ALT_NAME_INFO codificada en ASN.1. CERT_NEXT_UPDATE_LOCATION_PROP_ID solo se usa actualmente con CTL. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve una cadena de caracteres anchos Unicode terminada en NULL que especifica el nombre de archivo que contiene la clave privada asociada a la clave pública del certificado. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve el hash SHA1. Si el hash no existe, se calcula mediante CryptHashCertificate. |
|
Tipo de datos para pvData: puntero a una matriz BYTE Devuelve el hash de firma. Si el hash no existe, se calcula con CryptHashToBeSigned. La longitud del hash es de 20 bytes para SHA y 16 para MD5. |
Para todos los demás identificadores de propiedad, pvData apunta a una matriz de bytes y no a un CRYPT_DATA_BLOB como señala el parámetro pvData en CertSetCertificateContextProperty.
Para obtener más información sobre cada identificador de propiedad, consulte la documentación sobre el parámetro dwPropId en CertSetCertificateContextProperty. CERT_SHA1_HASH_PROP_ID y CERT_NEXT_UPDATE_LOCATION_PROP_ID son las propiedades predefinidas de mayor interés.
[out] pvData
Puntero a un búfer para recibir los datos según lo determinado por dwPropId. Las estructuras a las que apuntan los miembros de una estructura devuelta también se devuelven después de la estructura base. Por lo tanto, el tamaño contenido en pcbData suele superar el tamaño de la estructura base.
Este parámetro puede ser NULL para establecer el tamaño de la información con fines de asignación de memoria. Para obtener más información, vea Recuperación de datos de longitud desconocida.
[in, out] pcbData
Puntero a un valor DWORD que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pvData . Cuando la función devuelve, el valor DWORD contiene el número de bytes que se almacenarán en el búfer.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es TRUE.
Si se produce un error en la función, el valor devuelto es FALSE.
Los errores de la función llamada , CryptHashCertificate, se pueden propagar a esta función. Para obtener información de error extendida, llame a GetLastError.
A continuación se indican algunos códigos de error posibles.
Código devuelto | Descripción |
---|---|
|
El CTL no tiene la propiedad especificada. |
|
Si el búfer especificado por el parámetro pvData no es lo suficientemente grande como para contener los datos devueltos, la función establece el código ERROR_MORE_DATA y almacena el tamaño de búfer necesario, en bytes, en la variable a la que apunta pcbData. |
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 |