Partager via


MÉTHODE IX509PublicKey ::get_EncodedParameters (certenroll.h)

La propriété EncodedParameters récupère un tableau d’octets qui contient les paramètres associés à l’algorithme de clé publique . Le tableau d’octets est représenté par une chaîne encodée unicode.

Cette propriété est en lecture seule.

Syntaxe

HRESULT get_EncodedParameters(
  EncodingType Encoding,
  BSTR         *pValue
);

Paramètres

Encoding

pValue

Valeur de retour

None

Remarques

Appelez la méthode InitializeFromEncodedPublicKeyInfo ou la méthode Initialize pour initialiser l’objet de clé publique avant d’appeler cette propriété.

L’objet AlgorithmIdentifier Abstract Syntax Notation One (ASN.1) référencé par l’objet SubjectPublicKeyInfo dans un certificat X.509 version 3 contient un identificateur d’objet d’algorithme (OID) et des paramètres facultatifs.


SubjectPublicKeyInfo  ::=  SEQUENCE
{
   algorithm            AlgorithmIdentifier,
   subjectPublicKey     BIT STRING  
}

AlgorithmIdentifier  ::=  SEQUENCE  
{
   algorithm            OBJECT IDENTIFIER,
   parameters           ANY DEFINED BY algorithm OPTIONAL  
}

Le format et le contenu des paramètres diffèrent selon l’algorithme. Le contrôle d’inscription de certificat génère des valeurs de paramètre pour différents algorithmes en fonction des besoins. Pour plus d'informations, consultez les sections suivantes :

  • Algorithme de clé publique RSA
  • Transport de clé à l’aide de RSA-OAEP
  • Contrat clé utilisant ECDH
  • Chiffrement de contenu à l’aide d’AES

Algorithme de clé publique RSA

RSA est souvent utilisé pour chiffrer une clé privée et l’envoyer à une autorité de certification à des fins d’archivage. L’OID de l’algorithme XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) doit avoir une valeur de paramètre NULL . La valeur NULL ASN.1 est représentée par deux octets. Le numéro de l’étiquette est 0x05 et la valeur associée à la balise est 0x00. Cela est illustré par l’exemple de certificat suivant.

...
Public Key Algorithm:
    Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_KEYX)
    Algorithm Parameters:
    05 00
...

Transport de clé à l’aide de RSA-OAEP

L’algorithme RSA-OAEP, XCN_OID_RSAES_OAEP (1.2.840.113549.1.1.7), est également pris en charge pour le transport de clé. Le champ parameters a la syntaxe suivante.

RSAES-OAEP-params  ::=  SEQUENCE  
{
   hashFunc    [0] AlgorithmIdentifier DEFAULT sha1OID,
   maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1OID,
   pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmptyOID
}

Contrat clé utilisant ECDH

L’algorithme de courbe elliptique à passage unique Diffie-Hellman, XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF (1.3.133.16.840.63.0.2), est pris en charge pour l’accord clé. Le contrat de clé utilise deux niveaux de chiffrement :
  • Le message est chiffré à l’aide d’une clé de chiffrement de contenu (CEK) et d’un algorithme de chiffrement symétrique .
  • La clé CEK est chiffrée (encapsulée) à l’aide d’une clé de chiffrement à clé symétrique (KEK).
La clé KEK est calculée à partir d’un numéro secret partagé calculé à partir de la clé privée d’une partie et de la clé publique de l’autre partie. Le champ paramètres contient l’OID de l’algorithme KEK utilisé pour encapsuler ou chiffrer la clé CEK. Les algorithmes de wrap suivants sont pris en charge :
  • XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.)
  • XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)
  • XCN_OID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
  • XCN_OID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
  • XCN_OID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)

Chiffrement de contenu à l’aide d’AES

La norme AES (Advanced Encryption Standard) est utilisée pour chiffrer le contenu. Les algorithmes suivants sont pris en charge :
  • XCN_OID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
  • XCN_OID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
  • XCN_OID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
Le champ paramètres contient un vecteur d’initialisation aléatoire, AES-IV.

AES-IV ::= OCTET STRING (SIZE(16))

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

IX509PublicKey