Partager via


IX509SignatureInformation ::GetSignatureAlgorithm, méthode (certenroll.h)

La méthode GetSignatureAlgorithm récupère l’identificateur d’objet d’algorithme de signature (OID).

Syntaxe

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

Paramètres

[in] Pkcs7Signature

Variable VARIANT_BOOL qui spécifie si l’algorithme sera utilisé pour signer une demande de certificat PKCS #7 ou CMC.

[in] SignatureKey

Variable VARIANT_BOOL qui spécifie si un algorithme utilisé uniquement pour la signature est préférable lorsqu’un OID d’algorithme est associé à plusieurs objectifs. Par exemple, XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) peut être utilisé pour la signature et l’échange de clés.

[out] ppValue

Adresse d’une variable qui reçoit un pointeur vers une interface IObjectId qui représente l’OID de l’algorithme.

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles sont notamment celles figurant dans le tableau suivant. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Code/valeur de retour Description
CERTSRV_E_PROPERTY_EMPTY
L’OID de l’algorithme de hachage ou la propriété NullSigned n’a pas été spécifiée, mais l’OID de l’algorithme de signature est introuvable.
CRYPT_E_UNKNOWN_ALGO
L’algorithme de signature combinée est introuvable.

Remarques

Cette méthode recherche un algorithme de signature mis en cache cohérent avec les paramètres d’entrée. Si aucun n’est trouvé, la méthode utilise les paramètres d’entrée plus les valeurs affectées aux différentes propriétés IX509SignatureInformation , comme indiqué dans la liste suivante.

  • Pkcs7Signature = true, NullSigned = true

    Ce cas représente une demande de certificat PKCS #7 signée null. La méthode retourne l’OID XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2).

  • Pkcs7Signature = true, NullSigned = false

    Ce cas récupère un OID d’algorithme de signature discrète pour une requête PKCS #7 qui n’est pas signée par null. La signature discrète nécessite que les propriétés HashAlgorithm et PublicKeyAlgorithm soient définies. Dans le cas particulier où l’algorithme de clé publique est XCN_OID_X957_DSA et que l’algorithme de hachage n’est pas XCN_OID_OIWSEC_sha1, l’algorithme de signature OID récupéré est XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3).

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

    Ce cas récupère un OID d’algorithme de signature discrète pour une requête PKCS #10 et encode l’algorithme de hachage OID dans la propriété Parameters . Les propriétés HashAlgorithm et PublicKeyAlgorithm doivent être définies.

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

    Ce cas récupère un OID d’algorithme de signature discrète pour une requête PKCS #7. Les propriétés HashAlgorithm et PublicKeyAlgorithm doivent être définies.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête certenroll.h
DLL CertEnroll.dll

Voir aussi

IX509SignatureInformation