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 |
---|---|
|
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. |
|
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 |