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 |
---|---|
|
Fecha de validez del inicio del certificado |
|
Fecha de expiración del certificado |
|
Identificador de objeto del algoritmo de clave del firmante (OID) |
|
Bytes de certificado sin formato |
|
Clave de asunto |
|
Parámetros del algoritmo de clave del firmante |
|
Identificador de solicitud interno |
|
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 |
---|---|
|
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 |
|
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. |
|
Estado del certificado de entidad de certificación. Puede ser uno de los siguientes valores:
|
|
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. |
|
Í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. |
|
Estado CRL. Puede ser uno de los siguientes valores:
|
|
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. |
|
Indica si la ENTIDAD de certificación usa un servicio de directorio. Puede ser uno de los siguientes valores:
|
|
Nombre DNS del servidor que hospeda la ENTIDAD de certificación. |
|
Ubicación del Registro disponible para su uso por parte del módulo. |
|
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. |
|
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. |
|
Indica si el solicitante está autorizado para solicitar el certificado. Puede ser uno de los siguientes valores:
|
|
Nombre saneado de la entidad de certificación. Para obtener información sobre los nombres de ca saneados, consulte ICertConfig::GetConfig. |
|
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 |
---|---|
|
Datos largos firmados |
|
Fecha y hora |
|
Datos binarios |
|
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 |