Compartir a través de


Método ICertServerExit::GetCertificateProperty (certif.h)

El método GetCertificateProperty devuelve una propiedad con nombre de un certificado.

Sintaxis

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

Parámetros

[in] strPropertyName

Especifica la propiedad con nombre que se va a recuperar. Hay un conjunto de existencias de propiedades de certificado, denominadas propiedades de nombre, que siempre son válidas y que se pueden recuperar llamando a este método. Para obtener información sobre estas propiedades, vea Propiedades de nombre. Otras propiedades que se pueden recuperar incluyen las propiedades del certificado.

Las siguientes propiedades son únicas para los certificados y se pueden leer mediante GetCertificateProperty.

Valor Significado
NotBefore
Fecha y hora
Fecha de validez del inicio del certificado
NotAfter
Fecha y hora
Fecha de expiración del certificado
PublicKeyAlgorithm
String
Identificador de objeto del algoritmo de clave del firmante (OID)
RawCertificate
Binary
Bytes de certificado sin formato
RawPublicKey
Binary
Clave de asunto
RawPublicKeyAlgorithmParameters
Binary
Parámetros del algoritmo de clave del firmante
IdSolicitud
Long firmado
Identificador de solicitud interno
SerialNumber
String
Número de serie del certificado
 

Las propiedades DistinguishedName, RawName y SerialNumber del certificado son accesibles por GetCertificateProperty solo después de que el módulo de directiva haya terminado de procesar la solicitud y se emita el certificado.

Las siguientes propiedades se aplican a la entidad de certificación. El contexto debe ser cero para leer cualquiera de estas propiedades. El contexto se establece en cero cuando se crea inicialmente el objeto ICertServerExit . También se puede establecer en cero invocando el método SetContext .

Valor Significado
CAType
long
Tipo de entidad de certificación. Puede ser uno de los siguientes valores (definidos en Certsrv.h):

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
long
Número de certificados de ENTIDAD de certificación. Este valor será uno más el número de veces que se ha renovado la ENTIDAD de certificación. Para obtener información sobre la renovación, consulte Renovación de la entidad de certificación.
CertState
long
Estado del certificado de entidad de certificación. Puede ser uno de los siguientes valores:
CA_DISP_ERROR: el certificado de entidad de certificación nunca se emitió.
CA_DISP_REVOKED: se ha revocado el certificado de ENTIDAD de certificación.
CA_DISP_VALID: el certificado de entidad de certificación sigue siendo válido.
CA_DISP_INVALID: el certificado de CA ha expirado.
Este nombre de propiedad se puede anexar con '.#', donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.
CertSuffix
String
Sufijo para el certificado de entidad de certificación. El sufijo es una cadena vacía para los certificados de CA con un índice de cero; de lo contrario, el sufijo (en forma de "(nn)", donde nn es el índice de certificado) se aplica a todas las direcciones URL que apuntan a certificados de CA almacenados en archivos o objetos de servicio de directorio. En el caso de las direcciones URL que no son LDAP , el sufijo suele aparecer antes del texto ".crt". En el caso de las direcciones URL LDAP, el sufijo se anexa normalmente al primer "CN=" en el nombre distintivo completo.

Este nombre de propiedad se puede anexar con '.#', donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.

CRLIndex
long
Índice de lista de revocación de certificados (CRL). Anexar un índice de certificado a este nombre de propiedad permite recuperar el índice CRL. El índice CRL no coincide necesariamente con el índice de certificado. Para obtener más información, consulte Certificación.

Este nombre de propiedad se puede anexar con '.#', donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.

CRLState
long
Estado CRL. Puede ser uno de los siguientes valores:
CA_DISP_ERROR: la CRL se administra mediante otro certificado de CA.
CA_DISP_REVOKED: se han revocado todos los certificados de CA no expirados que usan la CRL de este certificado de CA.
CA_DISP_VALID: el certificado de entidad de certificación se sigue usando para publicar crLs según sea necesario.
CA_DISP_INVALID: todos los certificados de ENTIDAD de certificación que usan la CRL de este certificado de CA han expirado.
Este nombre de propiedad se puede anexar con '.#', donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.
CRLSuffix
String
Sufijo para la CRL de ca. El sufijo es una cadena vacía para las CRL con un índice de cero; de lo contrario, el sufijo (en forma de "(nn)", donde nn es el índice CRL) se aplica a todas las direcciones URL que apuntan a las CRL almacenadas en archivos o objetos de servicio de directorio. En el caso de las direcciones URL que no son LDAP, el sufijo suele aparecer antes del texto ".crl". Para las direcciones URL LDAP, el sufijo normalmente se anexa al primer "CN=" en el nombre distintivo completo.

Este nombre de propiedad se puede anexar con ".#", donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.

fUseDS
long
Indica si la ENTIDAD de certificación usa un servicio de directorio. Puede ser uno de los siguientes valores:
  • 0=no
  • 1=sí
MachineDNSName
String
Nombre DNS del servidor que hospeda la ENTIDAD de certificación.
ModuleRegistryLocation
String
Ubicación del Registro disponible para su uso por parte del módulo.
RawCACertificate
Binary
Certificado de entidad de certificación (CA).

Este nombre de propiedad se puede anexar con ".#", donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.

RawCRL
Binary
Lista de revocación de certificados (CRL) de la ENTIDAD de certificación.

Este nombre de propiedad se puede anexar con ".#", donde # representa un índice de certificado de ENTIDAD de certificación (o, en el caso de la propiedad CRLSuffix, un índice CRL). Para obtener información sobre los índices de certificados y CRL, consulte Renovación de la entidad de certificación.

RequesterCAAccess
long
Indica si el solicitante está autorizado para solicitar el certificado. Puede ser uno de los siguientes valores:
  • 0=no
  • 1=sí
(El complemento MMC de entidad de certificación se puede usar para controlar los permisos de solicitud de certificado ).
SanitizedCAName
String
Nombre saneado de la entidad de certificación. Para obtener información sobre los nombres de ca saneados, consulte ICertConfig::GetConfig.
SanitizedShortName
String
Nombre saneado para la ENTIDAD de certificación, abreviado y que contiene un valor hash para garantizar la unicidad.

[in] PropertyType

Especifica el tipo de propiedad. El tipo puede ser uno de los siguientes.

Valor Significado
PROPTYPE_LONG
Datos largos firmados
PROPTYPE_DATE
Fecha y hora
PROPTYPE_BINARY
Datos binarios
PROPTYPE_STRING
Datos de cadena Unicode

[out] pvarPropertyValue

Puntero a un variant que contendrá el valor de la propiedad. El valor devuelto se codifica como un BSTR. Use la función SysStringByteLen para recuperar la longitud del BSTR. El BLOB binario se almacena como un certificado X.509 codificado reglas de codificación distinguida.

Valor devuelto

C++

Si el método se realiza correctamente, el método devuelve S_OK.

Si se produce un error en el método, devuelve un valor HRESULT que indica el error. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

VB

El valor devuelto es el valor de propiedad solicitado.

Comentarios

Debe llamar a ICertServerExit::SetContext antes de usar este método.

Ejemplos

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

Requisitos

   
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certif.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certcli.dll

Consulte también

ICertServerExit

ICertServerExit::SetContext

Propiedades de nombre