Método ICertAdmin2::GetCAProperty (certadm.h)

El método GetCAProperty recupera un valor de propiedad para la entidad de certificación (CA). Este método se definió por primera vez en la interfaz ICertAdmin .

Sintaxis

HRESULT GetCAProperty(
  [in]  const BSTR strConfig,
  [in]  LONG       PropId,
  [in]  LONG       PropIndex,
  [in]  LONG       PropType,
  [in]  LONG       Flags,
  [out] VARIANT    *pvarPropertyValue
);

Parámetros

[in] strConfig

Representa una cadena de configuración válida para la ENTIDAD de certificación con el formato COMPUTERNAME\CANAME, donde COMPUTERNAME es el nombre de red del servidor de Servicios de certificados y CANAME es el nombre común de la ENTIDAD de certificación, tal como se especifica durante la configuración de Servicios de certificados. Para obtener información sobre el nombre de la cadena de configuración, vea ICertConfig.

ImportanteGetCAProperty no borra la memoria caché interna cuando se cambia la cadena de configuración. Al cambiar la cadena de configuración de la entidad de certificación, debe crear una instancia de un nuevo objeto ICertAdmin y llamar a este método de nuevo con la nueva cadena de configuración.
 

[in] PropId

Especifica uno de los siguientes identificadores de propiedad.

Valor Significado
CR_PROP_ADVANCEDSERVER
Tipo de datos de la propiedad: Long

Especifica si la ENTIDAD de certificación está ejecutando el servidor avanzado.

CR_PROP_BASECRL
Tipo de datos de la propiedad: Binary, indexed

Lista de revocación de certificados (CRL) completa o base de la ENTIDAD de certificación.

CR_PROP_BASECRLPUBLISHSTATUS
Tipo de datos de la propiedad: Long, indexed

Estado de publicación de CRL base. Para obtener más información, consulte Comentarios.

CR_PROP_CABACKWARDCROSSCERT
Tipo de datos de la propiedad: Binary, indexed

Certificado cruzado hacia atrás. Un certificado cruzado hacia atrás es el certificado emitido tras la renovación de la entidad de certificación a sí misma firmada con la nueva clave de la ENTIDAD de certificación. El certificado cruzado hacia atrás tiene el identificador de clave de autoridad del nuevo certificado de ca y el identificador de clave de sujeto del certificado de ca anterior.

Solo se aplica a las CA raíz.

CR_PROP_CABACKWARDCROSSCERTSTATE
Tipo de datos de la propiedad: Long, indexed

Si el certificado cruzado hacia atrás es válido. Válido solo para entidades de certificación raíz.

CR_PROP_CACERTSTATE
Tipo de datos de la propiedad: Long

Estado del certificado de entidad de certificación. Los valores pueden ser:

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
CR_PROP_CACERTSTATUSCODE
Tipo de datos de la propiedad: Long, indexed

Estado del certificado de entidad de certificación, como HRESULT.

CR_PROP_CACERTVERSION
Tipo de datos de la propiedad: Long, indexed

Versión del certificado de entidad de certificación, como DWORD. La palabra de orden superior es el índice de clave y la palabra de orden bajo es el índice de certificado de CA.

CR_PROP_CAFORWARDCROSSCERT
Tipo de datos de la propiedad: Binary, indexed

Certificado cruzado de reenvío. Un certificado cruzado reenviado es un certificado emitido tras la renovación de la entidad de certificación a sí misma firmada con la clave anterior de la ENTIDAD de certificación. El certificado cruzado de reenvío tiene el identificador de clave de autoridad del certificado de entidad de certificación anterior y el identificador de clave de sujeto del nuevo certificado de CA.

Solo se aplica a las CA raíz.

CR_PROP_CAFORWARDCROSSCERTSTATE
Tipo de datos de la propiedad: Long, indexed

Si el certificado cruzado de reenvío es válido. Válido solo para entidades de certificación raíz.

CR_PROP_CANAME
Tipo de datos de la propiedad: String

Nombre de la ENTIDAD de certificación.

CR_PROP_CASIGCERT
Tipo de datos de la propiedad: Binary, indexed

Certificado de firma de entidad de certificación.

CR_PROP_CASIGCERTCHAIN
Tipo de datos de la propiedad: Binary, indexed

Cadena de certificados de firma de entidad de certificación.

CR_PROP_CASIGCERTCOUNT
Tipo de datos de la propiedad: Long

Número de certificados de firma para la entidad de certificación.

CR_PROP_CASIGCERTCRLCHAIN
Tipo de datos de la propiedad: Binary, indexed

Cadena CRL del certificado de firma de la entidad de certificación.

CR_PROP_CATYPE
Tipo de datos de la propiedad: 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
CR_PROP_CAXCHGCERT
Tipo de datos de la propiedad: Binary, indexed

Certificado de intercambio de CA.

CR_PROP_CAXCHGCERTCHAIN
Tipo de datos de la propiedad: Binary, indexed

Cadena de certificados de intercambio de CA.

CR_PROP_CAXCHGCERTCOUNT
Tipo de datos de la propiedad: Long

Número de certificados de intercambio para la entidad de certificación.

CR_PROP_CAXCHGCERTCRLCHAIN
Tipo de datos de la propiedad: Binary, indexed

Cadena CRL del certificado de intercambio de la entidad de certificación.

CR_PROP_CERTAIAURLS
Tipo de datos de la propiedad: Cadena, indizada

Especifica las direcciones URL de acceso a la información de autoridad como el tipo de dirección URL solicitada por un cliente.

Windows Server 2003: Esta marca no se admite.

CR_PROP_CERTCDPURLS
Tipo de datos de la propiedad: Cadena, indizada

Especifica las direcciones URL del punto de distribución CRL como el tipo de dirección URL solicitada por un cliente.

Windows Server 2003: Esta marca no se admite.

CR_PROP_CRLSTATE
Tipo de datos de la propiedad: Long

Estado de la CRL de la ENTIDAD de certificación. Los valores pueden ser:

  • CA_DISP_REVOKED
  • CA_DISP_VALID
  • CA_DISP_INVALID
  • CA_DISP_ERROR
CR_PROP_DELTACRL
Tipo de datos de la propiedad: Binary, indexed

CRL delta de la ENTIDAD de certificación.

CR_PROP_DELTACRLPUBLISHSTATUS
Tipo de datos de la propiedad: Long, indexed

Estado de publicación diferencial de CRL. Para obtener más información, consulte Comentarios.

CR_PROP_DNSNAME
Tipo de datos de la propiedad: String

El nombre DNS de la entidad de certificación.

CR_PROP_EXITCOUNT
Tipo de datos de la propiedad: Long

Número de módulos de salida en uso por la entidad de certificación.

CR_PROP_EXITDESCRIPTION
Tipo de datos de la propiedad: String

Descripción del módulo de salida.

CR_PROP_FILEVERSION
Tipo de datos de la propiedad: String

Versión del archivo de Servicios de certificados.

CR_PROP_KRACERT
Tipo de datos de la propiedad: Binary, indexed

Certificado del agente de recuperación de claves (KRA) de la entidad de certificación.

CR_PROP_KRACERTCOUNT
Tipo de datos de la propiedad: Long

Número de certificados KRA para la entidad de certificación.

CR_PROP_KRACERTSTATE
Tipo de datos de la propiedad: Long, indexed

El estado del certificado de KRA. El valor devuelto es uno de los siguientes:

  • KRA_DISP_EXPIRED
  • KRA_DISP_NOTFOUND
  • KRA_DISP_REVOKED
  • KRA_DISP_VALID
  • KRA_DISP_UNTRUSTED
  • KRA_DISP_NOTLOADED
  • KRA_DISP_INVALID
CR_PROP_KRACERTUSEDCOUNT
Tipo de datos de la propiedad: Long

Número de certificados KRA usados por la entidad de certificación.

CR_PROP_PARENTCA
Tipo de datos de la propiedad: String

Nombre de la ENTIDAD de certificación primaria de la entidad de certificación.

CR_PROP_POLICYDESCRIPTION
Tipo de datos de la propiedad: String

Descripción del módulo de directivas.

CR_PROP_PRODUCTVERSION
Tipo de datos de la propiedad: String

Versión del producto en la que se envió el archivo.

CR_PROP_ROLESEPARATIONENABLED
Tipo de datos de la propiedad: Long

Valor que especifica si la separación de roles está habilitada.

CR_PROP_SANITIZEDCANAME
Tipo de datos de la propiedad: String

Nombre saneado de la ENTIDAD de certificación. Para obtener una definición de un nombre de ENTIDAD de certificación saneada, consulte ICertConfig2::GetConfig.

CR_PROP_SANITIZEDCASHORTNAME
Tipo de datos de la propiedad: String

El nombre corto saneado de la entidad de certificación. Para obtener una definición de un nombre corto de CA saneado, consulte ICertConfig2::GetConfig.

CR_PROP_SHAREDFOLDER
Tipo de datos de la propiedad: String

Nombre del directorio de carpetas compartidas.

CR_PROP_TEMPLATES
Tipo de datos de la propiedad: String

Lista de plantillas admitidas por la entidad de certificación.

[in] PropIndex

Si se indexa el parámetro PropId , el índice de base cero que se usará al recuperar el valor de la propiedad. Si PropId no está indexado, se omite este valor.

[in] PropType

Especifica el tipo de la propiedad , indicado en la columna Significado de la tabla PropId . El tipo puede ser uno de los siguientes tipos.

Valor Significado
PROPTYPE_LONG
Datos largos firmados
PROPTYPE_DATE
Fecha y hora (reservada para uso futuro)
PROPTYPE_BINARY
Datos binarios
PROPTYPE_STRING
Datos de cadena Unicode

[in] Flags

Se pueden usar las marcas siguientes para especificar el formato del valor de propiedad devuelto; estas marcas solo tienen significado para los datos binarios (como certificados, cadenas de certificados o listas de revocación de certificados) y se omiten en caso contrario.

Valor Significado
CV_OUT_BASE64
BASE64 sin BEGIN/END
CV_OUT_BASE64HEADER
BASE64 con BEGIN CERTIFICATE y END CERTIFICATE
CV_OUT_BASE64REQUESTHEADER
BASE64 con BEGIN NEW CERTIFICATE REQUEST y END NEW CERTIFICATE REQUEST
CV_OUT_BASE64X509CRLHEADER
BASE64 con BEGIN X509 CRL y END X509 CRL
CV_OUT_BINARY
Binary
CV_OUT_HEX
Cadena hexadecimal
CV_OUT_HEXADDR
Cadena hexadecimal con dirección/desplazamiento
CV_OUT_HEXASCII
Cadena hexadecimal con ASCII
CV_OUT_HEXASCIIADDR
Cadena hexadecimal con ASCII y dirección/desplazamiento

[out] pvarPropertyValue

Puntero a un búfer que recibe el valor de propiedad solicitado. Es responsabilidad del autor de la llamada liberar este recurso cuando haya terminado llamando a VariantClear.

Valor devuelto

C++

El valor devuelto es un HRESULT. Un valor de S_OK indica que el método se realizó correctamente.

VB

El valor de propiedad solicitado.

Comentarios

Los valores siguientes se devuelven cuando el identificador de propiedad se CR_PROP_BASECRLPUBLISHSTATUS o CR_PROP_DELTACRLPUBLISHSTATUS. Tenga en cuenta que estos valores se pueden combinar.

Valor Descripción
CPF_BADURL_ERROR Una dirección URL no es válida.
CPF_BASE Se publicó una CRL base.
CPF_CASTORE_ERROR Se ha evitado la publicación de un error de almacén de CA.
CPF_COMPLETE Se publicó una CRL completa.
CPF_DELTA Se publicó una CRL delta.
CPF_FILE_ERROR Un error de archivo impedía la publicación.
CPF_FTP_ERROR Se ha evitado un error ftp en la publicación.
CPF_HTTP_ERROR Se ha evitado un error HTTP en la publicación.
CPF_LDAP_ERROR Un error LDAP impedía la publicación.
CPF_MANUAL Una CRL se publicó manualmente.
CPF_SHADOW Se publicó una CRL delta vacía, junto con una nueva CRL base.
CPF_SIGNATURE_ERROR Un error de firma impedía la publicación.
 

Para obtener un ejemplo de cómo recuperar una CRL, consulte Recuperación de una lista de revocación de certificados.

Ejemplos

En el ejemplo siguiente se muestra cómo recuperar el certificado de firma de la entidad de certificación. En el ejemplo se supone que el puntero de interfaz ICertAdmin2 es válido.

BSTR bstrCA = NULL;
VARIANT var1;
HRESULT hr;

bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
if (NULL == bstrCA)
{
    printf("Failed to allocate memory for bstrCA\n");
    exit(1);
}

VariantInit(&var1);
// Retrieve the CA signature certificate at index 0.
hr = pAdmin2->GetCAProperty(bstrCA,
                                CR_PROP_CASIGCERT,
                                0,
                                PROPTYPE_BINARY,
                                CV_OUT_BASE64HEADER,
                                &var1);
if (FAILED(hr))
{
    printf("Failed GetCAProperty\n");
    SysFreeString(bstrCA);
    exit(1);  // Or other error action.
}

// Use the property as needed.
// ...

// Clear the variant when finished.
VariantClear(&var1);
SysFreeString(bstrCA);

Requisitos

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