IX509CertificateRequestPkcs7 ::InitializeDecode, méthode (certenroll.h)

La méthode InitializeDecode décode un objet de requête PKCS #7 signé ou non signé existant et l’utilise pour initialiser le nouvel objet PKCS #7. La requête existante est contenue dans un tableau d’octets qui a été encodé à l’aide de Distinguished Encoding Rules (DER) tel que défini par la norme ASN.1 (Abstract Syntax Notation One). Le tableau d’octets est représenté par une chaîne qui est une séquence binaire pure ou est encodée Unicode.

Syntaxe

HRESULT InitializeDecode(
  [in] BSTR         strEncodedData,
  [in] EncodingType Encoding
);

Paramètres

[in] strEncodedData

Variable BSTR qui contient la requête encodée en DER.

[in] Encoding

Valeur d’énumération EncodingType qui spécifie le type d’encodage Unicode appliqué à la chaîne d’entrée qui contient la requête encodée DER. La valeur par défaut est XCN_CRYPT_STRING_BASE64.

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
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
L’objet de requête a déjà été initialisé.

Remarques

Méthode InitializeDecode :

  • Décode la requête PKCS #7 spécifiée lors de l’entrée.
  • Utilise l’objet décodé pour créer une requête PKCS #10 interne avec les collections suivantes :
  • Ajoute les extensions décodées à la collection IX509Extensions .
  • Ajoute les attributs décodés à la collection ICryptAttributes
  • Définit la propriété ClientId .
  • Définit la propriété TemplateObjectId .
  • Utilise la signature de la demande PKCS #7 d’origine pour créer un objet ISignerCertificate .
  • Récupère un objet IX509SignatureInformation à partir de l’objet ISignerCertificate .
  • Initialise le nouvel objet IX509SignatureInformation à l’aide des algorithmes de signature et de hachage d’origine.
  • Définit la requête PKCS #10 comme objet de requête interne.

Par défaut, la méthode InitializeDecode suppose que la demande de certificat à décoder est destinée à un utilisateur final. À partir de Windows 8 et Windows Server 2012, vous pouvez modifier ce comportement par défaut. Après avoir créé une instance de l’interface IX509CertificateRequestPkcs7, appelez InitializeDecode en définissant le paramètre Encodingsur XCN_CRYPT_STRING_BINARY et le paramètre strEncodedData sur l’une des valeurs suivantes :

Valeur Description
L"ContextMachine » La demande de certificat encodé concerne un ordinateur.
L"ContextUser » La demande de certificat encodé concerne un utilisateur final.
L"ContextAdministratorForceMachine » Le certificat encodé est demandé par un administrateur agissant pour le compte d’un ordinateur.
 

Ensuite, appelez à nouveau la méthode InitializeDecode avec le jeu de certificats encodé dans l’argument strEncodedData .

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

IX509CertificateRequestPkcs7