Compartir a través de


Método IX509SignatureInformation::GetSignatureAlgorithm (certenroll.h)

El método GetSignatureAlgorithm recupera el identificador de objeto de algoritmo de firma (OID).

Syntax

HRESULT GetSignatureAlgorithm(
  [in]  VARIANT_BOOL Pkcs7Signature,
  [in]  VARIANT_BOOL SignatureKey,
  [out] IObjectId    **ppValue
);

Parámetros

[in] Pkcs7Signature

Variable VARIANT_BOOL que especifica si el algoritmo se usará para firmar una solicitud de certificado PKCS #7 o CMC.

[in] SignatureKey

Variable VARIANT_BOOL que especifica si se prefiere un algoritmo que solo se usa para la firma cuando se asocia un OID de algoritmo con más de un propósito. Por ejemplo, se pueden usar XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) para el intercambio de claves y la firma.

[out] ppValue

Dirección de una variable que recibe un puntero a una interfaz IObjectId que representa el OID del algoritmo.

Valor devuelto

Si la función se ejecuta 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, entre otros, los de la tabla siguiente. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código y valor devueltos Description
CERTSRV_E_PROPERTY_EMPTY
No se ha especificado el algoritmo hash OID o la propiedad NullSigned , pero no se encuentra el OID del algoritmo de firma.
CRYPT_E_UNKNOWN_ALGO
No se encontró el algoritmo de firma combinado.

Observaciones

Este método busca un algoritmo de firma almacenado en caché que sea coherente con los parámetros de entrada. Si no se encuentra ninguno, el método usa los parámetros de entrada más los valores asignados a varias propiedades IX509SignatureInformation , como se indica en la lista siguiente.

  • Pkcs7Signature = true, NullSigned = true

    Este caso representa una solicitud de certificado PKCS #7 firmada por null. El método devuelve el XCN_OID_PKIX_NO_SIGNATURE OID (1.3.6.1.5.5.7.6.2).

  • Pkcs7Signature = true, NullSigned = false

    En este caso se recupera un OID de algoritmo de firma discreto para una solicitud PKCS #7 que no tiene signo NULL. La firma discreta requiere que se establezcan las propiedades HashAlgorithm y PublicKeyAlgorithm . En el caso especial en el que el algoritmo de clave pública es XCN_OID_X957_DSA y el algoritmo hash no está XCN_OID_OIWSEC_sha1, el OID de algoritmo de firma recuperado se XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3).

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = true

    Este caso recupera un OID de algoritmo de firma discreto para una solicitud PKCS #10 y codifica el OID del algoritmo hash en la propiedad Parameters . Se deben establecer las propiedades HashAlgorithm y PublicKeyAlgorithm .

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = false

    Este caso recupera un OID de algoritmo de firma discreto para una solicitud PKCS #7. Se deben establecer las propiedades HashAlgorithm y PublicKeyAlgorithm .

Requisitos

Requirement Importancia
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
Header certenroll.h
DLL de CertEnroll.dll

Consulte también

IX509SignatureInformation