Interface IX509Extension (certenroll.h)

L’interface IX509Extension peut être utilisée pour définir une extension pour une demande de certificat. Les extensions de certificat fournissent des informations sur l’utilisation des clés, les stratégies et contraintes de certificat, les formulaires de nom alternatifs, etc. Une extension se compose d’un identificateur d’objet (OID), d’une valeur booléenne qui identifie si l’extension est critique et d’un tableau d’octets qui contient la valeur d’extension, comme le montre la syntaxe ASN.1 ( Abstract Syntax Notation One ) suivante.


Extension ::= SEQUENCE 
{
   extnId              OBJECT IDENTIFIER,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

L’API d’inscription de certificat contient les interfaces suivantes, dérivées d’IX509Extension, que vous pouvez utiliser pour créer les différentes extensions les plus couramment utilisées dans une infrastructure à clé publique (PKI) qui s’appuie sur un serveur de certificats Windows.

Note N’utilisez pas l’interface de base IX509Extension pour représenter une extension pouvant être représentée par l’une des interfaces suivantes. Le comportement d’inscription n’est pas défini si l’interface appropriée n’est pas utilisée.

 
Interface Description
IX509ExtensionAlternativeNames Définit une extension AlternativeNames qui contient un ou plusieurs formulaires de nom alternatifs pour l’objet de la demande de certificat.
IX509ExtensionAuthorityKeyIdentifier Définit une extension AuthorityKeyIdentifier qui permet d’identifier la clé publique de l’autorité de certification qui correspond à la clé privée de l’autorité de certification qui a signé un certificat émis. Il est utilisé par le logiciel de génération de chemin d’accès de certificat sur un serveur Windows pour rechercher le certificat d’autorité de certification.
IX509ExtensionBasicConstraints Définit une extension BasicConstraints qui identifie si l’entité peut être utilisée en tant qu’autorité de certification et, si c’est le cas, le nombre d’autorités de certification subordonnées qui peuvent exister sous elle dans la chaîne de certificats.
IX509ExtensionCertificatePolicies Définit une extension CertificatePolicies qui identifie les stratégies sous lesquelles le certificat a été émis et les objectifs pour lesquels il peut être utilisé.
IX509ExtensionEnhancedKeyUsage Définit une extension EnhancedKeyUsage qui identifie une ou plusieurs utilisations de la clé publique contenue dans le certificat.
IX509ExtensionKeyUsage Définit une extension KeyUsage qui restreint les opérations qui peuvent être effectuées par la clé publique contenue dans le certificat.
IX509ExtensionMSApplicationPolicies Définit une extension MSApplicationPolicies qui peut être utilisée par une application pour filtrer les certificats en fonction de l’utilisation autorisée. Les utilisations autorisées sont identifiées par des identificateurs d’objet (OID).
IX509ExtensionSmimeCapabilities Définit une extension SmimeCapabilities qui identifie les fonctionnalités de déchiffrement d’un destinataire d’e-mail afin que l’expéditeur de l’e-mail puisse choisir l’algorithme de chiffrement le plus sécurisé pris en charge par les deux parties.
IX509ExtensionSubjectKeyIdentifier Définit une extension SubjectKeyIdentifier qui différencie plusieurs clés publiques détenues par le propriétaire du certificat. La valeur de l’extension est généralement un hachage SHA-1 de la clé.
IX509ExtensionTemplate Définit une extension de modèle qui identifie le modèle version 2 à utiliser lors de l’émission ou du renouvellement d’un certificat.
IX509ExtensionTemplateName Définit une extension TemplateName qui identifie le modèle version 1 à utiliser lors de l’émission ou du renouvellement d’un certificat.
 

La plupart des extensions qui peuvent être créées à l’aide des interfaces précédentes sont définies par la syntaxe standard X.509 version 3. Pour créer les extensions de version 3 pour lesquelles Microsoft ne fournit pas d’objet personnalisé, vous pouvez utiliser l’interface IX509Extension . Ces extensions sont identifiées dans le tableau suivant.

Extension/OID Description
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) Identifie comment accéder aux informations et aux services de l’autorité de certification. La valeur de l’extension contient une séquence d’URI.
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) Contient l’URI de la liste de révocation de certificats de base (CRL).
FreshestCRL(XCN_OID_FRESHEST_CRL) Contient l’URI de la liste de révocation de certificats delta. La même syntaxe ASN.1 est utilisée pour cette extension et l’extension CrlDistributionPoints .
NameConstraints(XCN_OID_NAME_CONSTRAINTS) Identifie l’espace de noms dans lequel tous les noms d’objet des certificats d’une hiérarchie de certificats doivent se trouver. L’extension est utilisée uniquement dans un certificat d’autorité de certification.
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) Contraint la validation du chemin d’accès en interdisant le mappage de stratégie ou en exigeant que tous les certificats de la hiérarchie contiennent un identificateur de stratégie acceptable.
PolicyMappings(XCN_OID_POLICY_MAPPINGS) Identifie les stratégies d’une autorité de certification subordonnée qui correspondent aux stratégies de l’autorité de certification émettrice. La valeur de l’extension contient une séquence de mappages de stratégie d’autorité de certification et d’autorité de certification subordonnée qui sont représentés par des identificateurs d’objet.
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) Spécifie une période de validité différente pour la clé privée que pour le certificat auquel la clé est associée.
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) Transmet des attributs d’identification tels que la nationalité concernant l’objet du certificat. La valeur de l’extension est une séquence de paires OID-valeur.
 

Enfin, vous pouvez utiliser l’interface IX509Extension pour définir des extensions privées qui contiennent des informations propres à une communauté spécifique.

Les extensions sont ajoutées à la structure Attributes d’une requête PKCS #10 et à la structure TaggedAttributes d’une requête CMC. Pour ajouter des extensions à l’un ou l’autre format de requête, vous devez d’abord les ajouter à une collection IX509Extensions et utiliser la collection pour initialiser un objet IX509AttributeExtensions . Pour plus d’informations, consultez les rubriques Extensions PKCS #10 et Extensions CMC .

Héritage

L’interface IX509Extension hérite de l’interface IDispatch. IX509Extension a également les types de membres suivants :

Méthodes

L’interface IX509Extension possède ces méthodes.

 
IX509Extension ::get_Critical

Spécifie et récupère une valeur booléenne qui identifie si l’extension de certificat est critique. (Obtenir)
IX509Extension ::get_ObjectId

Récupère l’identificateur d’objet (OID) de l’extension.
IX509Extension ::get_RawData

Récupère un tableau d’octets qui contient la valeur d’extension. (IX509Extension.get_RawData)
IX509Extension ::Initialize

Initialise un objet IX509Extension à l’aide d’un identificateur d’objet (OID) et d’un tableau d’octets qui contient l’extension encodée Distinguished Encoding Rules (DER).
IX509Extension ::p ut_Critical

Spécifie et récupère une valeur booléenne qui identifie si l’extension de certificat est critique. (Put)

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

Voir aussi

API d’inscription de certificats

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions