Función CertSetCertificateContextProperty (wincrypt.h)
La función CertSetCertificateContextProperty establece una propiedad extendida para un contexto de certificado de especificado.
Sintaxis
BOOL CertSetCertificateContextProperty(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwPropId,
[in] DWORD dwFlags,
[in] const void *pvData
);
Parámetros
[in] pCertContext
Puntero a una estructura CERT_CONTEXT.
[in] dwPropId
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 de pvData relacionados son los siguientes.
CERT_ACCESS_STATE_PROP_ID
Tipo de datos de
Devuelve un valor DWORD que indica si se conservan las operaciones de escritura en el certificado. El DWORD valor 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.
CERT_AIA_URL_RETRIEVED_PROP_ID
Este identificador está reservado.
CERT_ARCHIVED_KEY_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_HASH_BLOB.
Esta propiedad guarda una clave cifrada hash para el contexto del certificado.
CERT_ARCHIVED_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Indica que se omite la del certificado de {0,NULL}
.
CERT_AUTHORITY_INFO_ACCESS_PROP_ID
Este identificador está reservado.
CERT_AUTO_ENROLL_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Una propiedad que se establece después de inscribir un certificado mediante la inscripción automática. La estructura CRYPT_DATA_BLOB a la que apunta pvData incluye un nombre Unicode terminado en null del tipo de certificado para el que el certificado se ha inscrito automáticamente. Las llamadas posteriores a La inscripción automática para el certificado comprueban esta propiedad para determinar si el certificado se ha inscrito.
CERT_AUTO_ENROLL_RETRY_PROP_ID
Este identificador está reservado.
CERT_BACKED_UP_PROP_ID
Este identificador está reservado.
CERT_CA_DISABLE_CRL_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Deshabilita recuperación de la lista de revocación de certificados (CRL) para los certificados usados por la entidad de certificación de (CA). Si el certificado de ENTIDAD de certificación contiene esta propiedad, también debe incluir la propiedad CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID.
CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Contiene la lista de direcciones URL de protocolo de estado de certificado en línea (OCSP) que se van a usar para los certificados emitidos por el certificado de entidad de certificación. El contenido de la matriz es el notación de sintaxis abstracta Uno (ASN.1) bytes codificados en una estructura de X509_AUTHORITY_INFO_ACCESS donde pszAccessMethod se establece en szOID_PKIX_OCSP.
CERT_CROSS_CERT_DIST_POINTS_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Establece la ubicación de los certificados cruzados. Este valor solo es aplicable a los certificados y no a listas de revocación de certificados (CRL) o listas de confianza de certificados de (CTL). La estructura CRYPT_DATA_BLOB contiene una estructura de notación de sintaxis abstracta uno (ASN.1) codificada CROSS_CERT_DIST_POINTS_INFO estructura codificada mediante la función CryptEncodeObject con un valor X509_CROSS_CERT_DIST_POINTS para el parámetro lpszStuctType.
CERT_CTL_USAGE_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
La estructura CRYPT_DATA_BLOB contiene una estructura de CTL_USAGE codificada en ASN.1. Esta estructura se codifica mediante la función CryptEncodeObject con el conjunto de valores de X509_ENHANCED_KEY_USAGE.
CERT_DATE_STAMP_PROP_ID
Tipo de datos de pvData: puntero a una estructura de FILETIME.
Esta propiedad establece la hora en que se agregó el certificado al almacén.
CERT_DESCRIPTION_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Propiedad establecida y mostrada por la interfaz de usuario del certificado. Esta propiedad permite al usuario describir el uso del certificado.
CERT_EFS_PROP_ID
Este identificador está reservado.
CERT_ENHKEY_USAGE_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Propiedad que indica que el parámetro pvData apunta a una estructura de CRYPT_DATA_BLOB que contiene una estructura de CERT_ENHKEY_USAGE codificada en ASN.1. Esta estructura se codifica mediante la función CryptEncodeObject con el conjunto de valores de X509_ENHANCED_KEY_USAGE.
CERT_ENROLLMENT_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Información de inscripción de la solicitud pendiente que contiene RequestID, CADNSName, CAName y DisplayName. El formato de datos se define de la manera siguiente.
Bytes | Contenido |
---|---|
Primeros 4 bytes | Identificador de solicitud pendiente |
4 bytes siguientes | Tamaño de CADNSName, en caracteres, incluido el carácter NULO de terminación, seguido de la cadena CADNSName con carácter NULO de terminación |
4 bytes siguientes | Tamaño de CAName, en caracteres, incluido el carácter NULO de terminación, seguido de la cadena CAName con carácter NULO de terminación |
4 bytes siguientes | Tamaño de DisplayName, en caracteres, incluido el carácter NULO de terminación, seguido de la cadena DisplayName con carácter NULO de terminación |
CERT_EXTENDED_ERROR_INFO_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece una cadena que contiene información de error extendida para el contexto del certificado.
CERT_FORTEZZA_DATA_PROP_ID
Este identificador está reservado.
CERT_FRIENDLY_NAME_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
La estructura CRYPT_DATA_BLOB contiene el nombre para mostrar del certificado.
CERT_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad se establece implícitamente mediante una llamada a la función CertGetCertificateContextProperty.
CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID
Tipo de datos de pvData: puntero a un tipo de datos HCRYPTPROV_OR_NCRYPT_KEY_HANDLE.
Esta propiedad llama a NCryptIsKeyHandle para determinar si se trata de un NCRYPT_KEY_HANDLE. Para un NCRYPT_KEY_HANDLE, establece CERT_NCRYPT_KEY_HANDLE_PROP_ID; de lo contrario, establece CERT_KEY_PROV_HANDLE_PROP_ID.
CERT_HCRYPTPROV_TRANSFER_PROP_ID
Establece el identificador de la clave CAPI asociada al certificado.
CERT_IE30_RESERVED_PROP_ID
Este identificador está reservado.
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece el hash de
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
La estructura CRYPT_DATA_BLOB contiene el hash MD5 del nombre del emisor y el número de serie de este certificado.
CERT_KEY_CONTEXT_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CERT_KEY_CONTEXT.
La estructura especifica la clave privada del certificado. Contiene tanto el de
CERT_KEY_IDENTIFIER_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Normalmente, esta propiedad se establece implícitamente mediante una llamada a la función CertGetCertificateContextProperty.
CERT_KEY_PROV_HANDLE_PROP_ID
Tipo de datos de
Se establece el identificador de
CERT_KEY_PROV_INFO_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_KEY_PROV_INFO.
La estructura especifica la clave privada del certificado.
CERT_KEY_SPEC_PROP_ID
Tipo de datos de
Valor
CERT_MD5_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_HASH_BLOB.
Esta propiedad se establece implícitamente mediante una llamada a la función CertGetCertificateContextProperty.
CERT_NCRYPT_KEY_HANDLE_PROP_ID
Tipo de datos de pvData: puntero a un tipo de datos NCRYPT_KEY_HANDLE.
Esta propiedad establece el
CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID
Establece el identificador de la clave CNG asociada al certificado.
CERT_NEW_KEY_PROP_ID
Este identificador está reservado.
CERT_NEXT_UPDATE_LOCATION_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
La estructura CRYPT_DATA_BLOB contiene una estructura de CERT_ALT_NAME_INFO codificada con ASN.1 que se codifica mediante la función CryptEncodeObject con el conjunto de valores X509_ALTERNATE_NAME.
CERT_NEXT_UPDATE_LOCATION_PROP_ID solo se usa actualmente con CTL.
CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID
Este identificador está reservado.
CERT_OCSP_CACHE_PREFIX_PROP_ID
Este identificador está reservado.
CERT_OCSP_RESPONSE_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece la respuesta codificada protocolo de estado de certificado en línea (OCSP) de un CERT_SERVER_OCSP_RESPONSE_CONTEXT para este certificado.
CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad se establece implícitamente llamando a la función CertGetCertificateContextProperty.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este identificador no se admite.
CERT_PUBKEY_ALG_PARA_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad se usa con claves públicas que admiten la herencia de parámetros de algoritmo. El BLOB de datos contiene los parámetros PublicKey Algorithm codificados por ASN.1. Para DSS, estos son parámetros codificados mediante la función
CERT_PUBKEY_HASH_RESERVED_PROP_ID
Este identificador está reservado.
CERT_PVK_FILE_PROP_ID
Tipo de datos de pvData: puntero a una estructura de 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 una cadena de caracteres anchos Unicode terminada en null y el miembro cbData indica la longitud de la cadena.
CERT_RENEWAL_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad especifica el hash del certificado renovado.
CERT_REQUEST_ORIGINATOR_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
La estructura CRYPT_DATA_BLOB contiene una cadena Unicode terminada en null que contiene el nombre del equipo DNS para la originación de la solicitud de contexto del certificado.
CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Devuelve un puntero a una estructura de CERT_POLICIES_INFO codificada que contiene las directivas de aplicación del certificado raíz para el contexto. Esta propiedad se puede descodificar mediante la función
CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID
Este identificador está reservado.
CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad se establece implícitamente llamando a la función CertGetCertificateContextProperty.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este identificador no se admite.
CERT_SHA1_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_HASH_BLOB.
Esta propiedad se establece implícitamente mediante una llamada a la función CertGetCertificateContextProperty.
CERT_SIGNATURE_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_HASH_BLOB.
Si no existe un hash de firma, se calcula mediante la función CryptHashToBeSigned. pvData apunta a un hash existente o calculado. Normalmente, la longitud del hash es de 20 bytes para SHA y 16 para MD5.
CERT_SMART_CARD_DATA_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece la propiedad de datos de tarjeta inteligente de un contexto de certificado de tarjeta inteligente.
CERT_SMART_CARD_ROOT_INFO_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece la propiedad de información de un contexto de certificado raíz de tarjeta inteligente.
CERT_SOURCE_LOCATION_PROP_ID
Este identificador está reservado.
CERT_SOURCE_URL_PROP_ID
Este identificador está reservado.
CERT_SUBJECT_DISABLE_CRL_PROP_ID
Este identificador está reservado.
CERT_SUBJECT_INFO_ACCESS_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece la extensión de acceso a la información del firmante del contexto del certificado como una estructura de CERT_SUBJECT_INFO_ACCESS codificada.
CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Devuelve un hash MD5 del nombre del firmante codificado del contexto del certificado.
CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Este identificador está reservado.
CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad se establece implícitamente llamando a la función CertGetCertificateContextProperty.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este identificador no se admite.
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB.
Esta propiedad establece el hash MD5 de la clave pública de este certificado.
pvData es un puntero a una estructura CRYPT_DATA_BLOB.
El usuario puede definir tipos de dwPropId adicionales mediante valores de DWORD de CERT_FIRST_USER_PROP_ID a CERT_LAST_USER_PROP_ID. Para todos los tipos de 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 dwPropId CERT_KEY_CONTEXT_PROP_ID .
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 de contexto.
[in] pvData
Puntero a un tipo de datos determinado por el valor de dwPropId.
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve TRUE.
Si se produce un error en la función, la función devuelve FALSE. Para obtener información de error extendida, llame a GetLastError. Un código de error posible es el siguiente.
Código devuelto | Descripción |
---|---|
|
La propiedad no es válida. El identificador especificado era mayor que 0x0000FFFF o, para la propiedad CERT_KEY_CONTEXT_PROP_ID, un miembro cbSize que no es válido se especificó en la estructura CERT_KEY_CONTEXT. |
Observaciones
Si ya existe una propiedad, se reemplaza su valor anterior.
El código puede usar una macro para evaluar la clase de hash de un contexto de certificado. El encabezado Wincrypt.h define las siguientes macros para este propósito. Estas macros las usa internamente la función CertSetCertificateContextProperty.
IS_CERT_HASH_PROP_ID(X)IS_PUBKEY_HASH_PROP_ID(X)IS_CHAIN_HASH_PROP_ID(X) Cada macro toma el valor dwPropId (X) como entrada y se evalúa como un valor booleano. En la tabla siguiente se muestran los valores de dwPropId que se evalúan como TRUE para cada macro.
Macro | Se evalúa como TRUE si dwPropId |
---|---|
IS_CERT_HASH_PROP_ID(dwPropId) |
|
IS_PUBKEY_HASH_PROP_ID(dwPropId) |
|
IS_CHAIN_HASH_PROP_ID(dwPropId) |
|
La macro IS_STRONG_SIGN_PROP_ID(x) se evalúa como TRUE si las propiedades CERT_SIGN_HASH_CNG_ALG_PROP_ID, CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_IDo CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID se establecen en el parámetro dwPropId.
Ejemplos
Para obtener un ejemplo que usa esta función, vea Programa C de ejemplo: Obtener y establecer propiedades de certificado.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
wincrypt.h |
biblioteca de |
Crypt32.lib |
DLL de |
Crypt32.dll |