MÉTODO IX509SignatureInformation::GetSignatureAlgorithm (certenroll.h)

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

Sintaxis

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, XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) se puede usar 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 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
CERTSRV_E_PROPERTY_EMPTY
No se ha especificado el OID del algoritmo hash 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.

Comentarios

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 (1.3.6.1.5.5.7.6.2) OID.

  • Pkcs7Signature = true, NullSigned = false

    Este caso 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 firma recuperado es 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

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

IX509SignatureInformation