Método ICertProperty::SetValueOnCertificate (certenroll.h)

El método SetValueOnCertificate asocia un valor de propiedad a un certificado existente.

Sintaxis

HRESULT SetValueOnCertificate(
  [in] VARIANT_BOOL MachineContext,
  [in] EncodingType Encoding,
  [in] BSTR         strCertificate
);

Parámetros

[in] MachineContext

Valor de VARIANT_BOOL que indica si el almacén de certificados es para el equipo local o el usuario actual. Especifique VARIANT_TRUE para el equipo y VARIANT_FALSE para el usuario.

[in] Encoding

Valor de enumeración EncodingType que especifica el tipo de codificación Unicode aplicada a la cadena de certificado identificada por el parámetro strCertificate .

[in] strCertificate

Variable BSTR que contiene el certificado codificado en DER.

A partir de Windows 7 y Windows Server 2008 R2, puede especificar una impresión digital de certificado o un número de serie en lugar de un certificado codificado. Si lo hace, la función buscará en los almacenes locales adecuados el certificado coincidente. Tenga en cuenta los siguientes puntos:

  • El BSTR debe ser un número par de dígitos hexadecimales.
  • Se omite el espacio en blanco entre pares hexadecimales.
  • El parámetro Encoding debe establecerse en XCN_CRYPT_STRING_HEXRAW.
  • El parámetro MachineContext determina si se busca en el usuario o en el equipo o en ambos.
  • Si se necesita una clave privada, solo se buscan los almacenes personales y de solicitud.
  • Si no se necesita una clave privada, también se buscan los almacenes de CA raíz e intermedia.

Valor devuelto

Si la función se realiza correctamente, la función devuelve S_OK.

Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código o valor devuelto Descripción
CRYPT_E_NOT_FOUND
No se encontró el certificado.
CRYPT_E_UNEXPECTED_MSG_TYPE
Se encontró el certificado, pero no se pudo cargar la clave privada.

Comentarios

Llame al método InitializeDecode o al método InitializeFromCertificate para crear un valor de propiedad. Antes de llamar a cualquiera de los métodos, primero debe establecer la propiedad PropertyId para especificar qué valor de propiedad se va a inicializar.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certenroll.h
Archivo DLL CertEnroll.dll

Consulte también

ICertProperties

ICertProperty