Función CertSetCTLContextProperty (wincrypt.h)
La función CertSetCTLContextProperty establece una propiedad extendida para el contexto de lista de confianza de certificados (CTL) especificado.
Sintaxis
BOOL CertSetCTLContextProperty(
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Parámetros
[in] pCtlContext
Puntero a la estructura CTL_CONTEXT .
[in] dwPropId
Identifica la propiedad que se va a establecer. El valor de dwPropId determina el tipo y el contenido del parámetro pvData . Los identificadores definidos actualmente y sus tipos pvData relacionados son los siguientes.
Valor | Significado |
---|---|
|
Tipo de datos de pvData: NULL
Indica que el certificado se omite durante las enumeraciones. Un certificado con este conjunto de propiedades todavía se encuentra con operaciones de búsqueda explícitas, como buscar un certificado con un hash específico o un número de serie específico. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
Propiedad establecida después de inscribir un certificado mediante la inscripción automática. La estructura de CRYPT_DATA_BLOB a la que apunta pvData incluye un nombre Unicode terminado en null del tipo de certificado para el que se han inscrito automáticamente los certificados. Todas las llamadas posteriores a Inscripción automática para el certificado comprueban esta propiedad para determinar si el certificado se ha inscrito. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
pvData apunta a una estructura de CRYPT_DATA_BLOB que contiene una estructura de notación de sintaxis abstracta (ASN.1) codificada CTL_USAGE . Esta estructura se ha codificado mediante CryptEncodeObject con X509_ENHANCED_KEY_USAGE valor establecido. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
Propiedad establecida y mostrada por la interfaz de usuario del certificado. Esta propiedad permite al usuario describir el uso del certificado. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
Estructura de CRYPT_DATA_BLOB que contiene una estructura de CERT_ENHKEY_USAGE codificada en ASN.1. Esta estructura se ha codificado mediante CryptEncodeObject con X509_ENHANCED_KEY_USAGE valor establecido. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
La estructura CRYPT_DATA_BLOB especifica el nombre para mostrar del certificado. |
|
Tipo de datos de pvData: puntero a un CRYPT_HASH_BLOB
Esta propiedad se establece implícitamente mediante una llamada a CertGetCertificateContextProperty. |
|
Tipo de datos de pvData: puntero a un CERT_KEY_CONTEXT
La estructura CERT_KEY_CONTEXT contiene el valor HCRYPTPROV y la especificación de clave para la clave privada. Para obtener más información sobre la configuración del miembro hCryptProv y dwFlags , consulte CERT_KEY_PROV_HANDLE_PROP_ID, a continuación. Tenga en cuenta que se pueden agregar más miembros de estructura CERT_KEY_CONTEXT para esta propiedad. Si es así, el valor del miembro cbSize se ajustará en consecuencia. El miembro cbSize debe establecerse en el tamaño de la estructura de CERT_KEY_CONTEXT |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
Normalmente, esta propiedad se establece implícitamente mediante una llamada a CertGetCertificateContextProperty. |
|
Tipo de datos de pvData: puntero a un HCRYPTPROV
Se pasa un identificador HCRYPTPROV para la clave privada del certificado. El miembro hCryptProv de la estructura CERT_KEY_CONTEXT se actualiza si existe. Si no existe, se crea con dwKeySpec inicializado por CERT_KEY_PROV_INFO_PROP_ID. Si no se establece CERT_STORE_NO_CRYPT_RELEASE_FLAG, el valor hCryptProv se libera implícitamente cuando la propiedad se establece en NULL o en la liberación final de la estructura CERT_CONTEXT . |
|
Tipo de datos de pvData: puntero a un CRYPT_KEY_PROV_INFO
La estructura CRYPT_KEY_PROV_INFO especifica la clave privada del certificado. |
|
Tipo de datos de pvData: puntero a un DWORD
El valor DWORD especifica la clave privada. El miembro dwKeySpec de la estructura CERT_KEY_CONTEXT se actualiza si existe. Si no lo hace, se crea con hCryptProv establecido en cero. |
|
Tipo de datos de pvData: puntero a un CRYPT_HASH_BLOB
Esta propiedad se establece implícitamente mediante una llamada a CertGetCertificateContextProperty. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
La estructura CRYPT_DATA_BLOB contiene una estructura codificada CERT_ALT_NAME_INFO ASN.1 con codificación CryptEncodeObject con el valor X509_ALTERNATE_NAME establecido. CERT_NEXT_UPDATE_LOCATION_PROP_ID solo se usa actualmente con CTL. |
|
Tipo de datos de pvData: puntero a un CRYPT_DATA_BLOB
La estructura CRYPT_DATA_BLOB especifica el nombre de un archivo que contiene la clave privada asociada a la clave pública del certificado. Dentro de la estructura CRYPT_DATA_BLOB , el miembro pbData es un puntero a un Unicode terminado en null, una cadena de caracteres anchos y el miembro cbData indica la longitud de la cadena. |
|
Tipo de datos de pvData: puntero a un CRYPT_HASH_BLOB
Esta propiedad se establece implícitamente mediante una llamada a CertGetCertificateContextProperty. |
|
Tipo de datos de pvData: puntero a un CRYPT_HASH_BLOB
Si no existe un hash de firma, se calcula con CryptHashToBeSigned. pvData apunta a un hash existente o calculado. Normalmente, la longitud del hash es de 20 bytes para SHA y 16 para MD5. |
Normalmente, solo se establece la propiedad CERT_NEXT_UPDATE_LOCATION_PROP_ID.
El usuario puede definir otros tipos dwPropId mediante valores DWORD de CERT_FIRST_USER_PROP_ID a CERT_LAST_USER_PROP_ID. Para todos los tipos dwPropId definidos por el usuario, pvData apunta a una estructura de CRYPT_DATA_BLOB codificada.
[in] dwFlags
CERT_STORE_NO_CRYPT_RELEASE_FLAG se pueden establecer para las propiedades CERT_KEY_PROV_HANDLE_PROP_ID o CERT_KEY_CONTEXT_PROP_ID dwPropId .
Si se establece el valor de CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG, se omiten los errores de escritura del proveedor y siempre se establecen las propiedades del contexto almacenado en caché.
Si se establece CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG, no se conserva ningún conjunto de propiedades.
[in] pvData
Puntero a un tipo de datos determinado por el valor pasado en dwPropId.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es TRUE.
Si se produce un error en la función, el valor devuelto es FALSE. Para obtener información de error extendida, llame a GetLastError. Un posible código de error es el siguiente.
Código devuelto | Descripción |
---|---|
|
Identificador de propiedad no válido. Para obtener más información, consulte CertSetCertificateContextProperty. |
Comentarios
Si ya existe una propiedad, se reemplaza su valor anterior.
Ejemplos
Vea Programa C de ejemplo: Obtención y configuración de las propiedades del certificado.
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 |