Función CertSetCRLContextProperty (wincrypt.h)

La función CertSetCRLContextProperty establece una propiedad extendida para el contexto de la lista de revocación de certificados (CRL) especificada.

Sintaxis

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Parámetros

[in] pCrlContext

Puntero a la estructura CRL_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 el tipo de datos que se devolverán en pvData se enumeran en la tabla siguiente.

Normalmente, solo se establecen las siguientes propiedades:

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
Valor Significado
CERT_ACCESS_STATE_PROP_ID
Tipo de datos para pvData: puntero a un DWORD

Establece 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.

CERT_ARCHIVED_PROP_ID
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.

CERT_AUTO_ENROLL_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece una cadena Unicode terminada en null que asigna un nombre al tipo de certificado para el que se ha inscrito automáticamente el certificado.

CERT_CTL_USAGE_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece una matriz de bytes que contiene una estructura de CTL_USAGE codificada en notación de sintaxis abstracta uno (ASN.1).

CERT_DESCRIPTION_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece la propiedad que muestra la interfaz de usuario del certificado. Esta propiedad permite al usuario describir el uso del certificado.

CERT_ENHKEY_USAGE_PROP_ID
Tipo de datos para pvData:

Establece una matriz de bytes que contiene una estructura de CERT_ENHKEY_USAGE codificada en ASN.1.

CERT_FRIENDLY_NAME_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece una cadena de caracteres Unicode terminada en null que contiene el nombre para mostrar de la CRL.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo de datos para pvData: puntero a una estructura de CRYPT_DATA_BLOB .

Establece una cadena que contiene un conjunto de pares de clave pública Y pares de longitud de bits de L"<PUBKEY>/<BITLENGTH>". El punto y coma, L";", se usa como delimitador.

El <valor PUBKEY> identifica el algoritmo de clave pública CNG. Se admiten los algoritmos siguientes:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Se establece un <par BITLENGTH PUBKEY>/<para cada certificado de la cadena de emisores CRL excepto la> hoja. Esta propiedad se puede establecer cuando una respuesta OCSP con una cadena de firmantes independiente se convierte en una CRL.
Nota Esta propiedad no debe establecerse para un certificado de firmante OCSP delegado. Un certificado de firmante delegado se firma con la misma clave que se usa para firmar el certificado del firmante y se comprueba allí.
 
A continuación se muestra un ejemplo:

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Tipo de datos para pvData: puntero a una estructura de CRYPT_DATA_BLOB .

Establece una cadena que contiene un conjunto de pares de algoritmos L"<SIGNATURE>/<HASH>". El punto y coma, L";", se usa como delimitador entre pares.

Esta propiedad solo se establece cuando una respuesta OCSP se convierte en una CRL. Para un certificado de firmante OCSP delegado, solo se devuelve el par de algoritmos para el certificado de firmante. Para una cadena de certificados de firmante OCSP independiente, se devuelve un par de algoritmos para cada certificado de la cadena, excepto la raíz.

El <valor SIGNATURE> identifica el algoritmo de clave pública CNG. Se admiten los algoritmos siguientes:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
El <valor HASH> identifica el algoritmo hash CNG. Se admiten los algoritmos siguientes:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
A continuación se muestra un ejemplo:
  • L"RSA/SHA256; RSA/SHA256"
Esta propiedad se establece explícitamente mediante las funciones de revocación verify.
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo de datos para pvData: puntero a una estructura de CRYPT_DATA_BLOB .

Establece la longitud, en bits, de la clave pública en el certificado del emisor crL. Esta propiedad también es aplicable a un OCSP que se ha convertido en una CRL.

Esta propiedad se establece explícitamente mediante las funciones de revocación verify.

Windows 8 y Windows Server 2012: comienza la compatibilidad con esta propiedad.

CERT_KEY_CONTEXT_PROP_ID
Tipo de datos para pvData: puntero a un CERT_KEY_CONTEXT

Establece una estructura CERT_KEY_CONTEXT .

CERT_KEY_IDENTIFIER_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE
CERT_KEY_PROV_HANDLE_PROP_ID
Tipo de datos para pvData: puntero a un HCRYPTPROV

Establece el identificador de proveedor obtenido del CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Tipo de datos para pvData: puntero a un CRYPT_KEY_PROV_INFO

Establece un puntero en una estructura CRYPT_KEY_PROV_INFO .

CERT_KEY_SPEC_PROP_ID
Tipo de datos para pvData: puntero a un DWORD

Establece 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.

CERT_MD5_HASH_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece el hash MD5. Puede calcular el hash mediante la función CryptHashCertificate .

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece la estructura de CERT_ALT_NAME_INFO codificada en ASN.1 en un CTL.

CERT_PVK_FILE_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece una cadena de caracteres anchos Unicode terminada en NULL que especifica el nombre del archivo que contiene la clave privada asociada a la clave pública del certificado.

CERT_SHA1_HASH_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece el hash SHA1. Puede calcular el hash mediante CryptHashCertificate.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo de datos de pvData: puntero a una estructura de CRYPT_DATA_BLOB .

Establece la cadena L"<SIGNATURE>/<HASH>" que representa la firma del certificado. El <valor SIGNATURE> identifica el algoritmo de clave pública CNG. Se admiten los siguientes algoritmos:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
El <valor HASH> identifica el algoritmo hash CNG. Se admiten los siguientes algoritmos:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
A continuación se muestran ejemplos comunes:
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
Esta propiedad también es aplicable a una respuesta OCSP que se ha convertido en una CRL.

Las funciones de revocación de comprobación establecen explícitamente esta propiedad.

Windows 8 y Windows Server 2012: comienza la compatibilidad con esta propiedad.

CERT_SIGNATURE_HASH_PROP_ID
Tipo de datos para pvData: puntero a una matriz BYTE

Establece 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.

 

El usuario puede definir tipos dwPropId adicionales 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 un CRYPT_DATA_BLOB codificado.

Para todos los demás identificadores de propiedad, 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 el 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.

Nota Para cualquier dwPropId, al establecer pvData enNULL , se elimina la propiedad .
 

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
E_INVALIDARG
La propiedad no es válida. El identificador especificado era mayor que 0x0000FFFF o, para la propiedad CERT_KEY_CONTEXT_PROP_ID, se especificó un miembro cbSize que no es válido en la estructura CERT_KEY_CONTEXT .

Comentarios

Si ya existe una propiedad, se reemplaza su valor anterior.

Ejemplos

Para obtener un ejemplo que use esta función, vea Ejemplo de programa C: Obtener y establecer propiedades de 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

Consulte también

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

Funciones de propiedad extendidas