Interface IX509CertificateRequestPkcs7 (certenroll.h)
L’interface IX509CertificateRequestPkcs7 représente un objet de syntaxe de message de certificat (CMS) PKCS #7. PKCS #7 définit le format des messages envoyés à une autorité de certification ou d’inscription pour demander un certificat à clé publique. L’interface IX509CertificateRequestPkcs7 peut prêter à confusion, car son implémentation ne miroir pas parfaitement la façon dont la plupart des professionnels de la sécurité pensent à la norme PKCS #7. Pour éviter cette confusion, gardez à l’esprit les points suivants :
- Bien qu’un message PKCS #7 soit utilisé pour encapsuler une requête CMC, un objet IX509CertificateRequestPkcs7 ne peut pas contenir un objet IX509CertificateRequestCmc . Au lieu de cela, l’interface IX509CertificateRequestCmc hérite et implémente l’interface IX509CertificateRequestPkcs7 . Telle qu’implémentée, une requête CMC est donc un objet PKCS #7 SignedData qui contient du contenu CMC, une signature primaire signée null ou basée sur une clé, et zéro ou plusieurs signatures basées sur un certificat. En revanche, une requête PKCS #7 est un objet SignedData qui contient du contenu PKCS #10 (voir l’élément suivant de cette liste) et qui a exactement une signature basée sur un certificat.
- Un IX509CertificateRequestPkcs7 doit contenir un objet IX509CertificateRequestPkcs10 . Le main’avantage de l’encapsulation d’une requête PKCS #10 dans un message PKCS #7 est la possibilité d’ajouter plusieurs signataires. La requête PKCS #10 est signée par la clé privée associée, et le message PKCS #7 qui encapsule la requête PKCS #10 est également signé. Ce deuxième signataire utilise le certificat en cours de renouvellement (pour une demande de renouvellement) ou le certificat de l’agent d’inscription (pour une demande d’inscription en nom).
- Vous pouvez créer et inscrire une demande de certificat IX509CertificateRequestPkcs10 autonome sans l’inclure dans un objet IX509CertificateRequestPkcs7 .
La représentation ASN.1 d’un objet PKCS #7 dans l’exemple de syntaxe suivant montre qu’il peut être composé de différents types de données.
PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
data | signed-data | enveloped-data | signed-and-enveloped-data |
digested-data | encrypted-data | authenticated-data, ...
}
Parmi ceux-ci, l’objet SignedData illustré ci-dessous est le plus pertinent. L’objet SignerInfo référencé dans l’objet SignedData contient les informations de signature. Pour une discussion plus complète, consultez Attributs PKCS #7.
-------------------------------------------------------------------
-- signed-data
-------------------------------------------------------------------
SignedData ::= SEQUENCE
{
version INTEGER,
digestAlgorithms DigestAlgorithmIdentifiers,
contentInfo ContentInfo,
certificates [0] IMPLICIT Certificates OPTIONAL,
crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
signerInfos SignerInfos
}
SignerInfo ::= SEQUENCE
{
version INTEGER,
sid CertIdentifier,
digestAlgorithm DigestAlgorithmIdentifier,
authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature SignatureValue,
unauthenticatedAttributes [1] IMPLICIT Attributes
}
Héritage
L’interface IX509CertificateRequestPkcs7 hérite de IX509CertificateRequest. IX509CertificateRequestPkcs7 a également les types de membres suivants :
Méthodes
L’interface IX509CertificateRequestPkcs7 contient ces méthodes.
IX509CertificateRequestPkcs7 ::get_RequesterName Spécifie ou récupère une chaîne qui contient le nom du Gestionnaire de compte de sécurité (SAM) de l’entité finale qui demande le certificat. (Obtenir) |
IX509CertificateRequestPkcs7 ::get_SignerCertificate Spécifie ou récupère un certificat utilisé pour signer la demande de certificat. (Obtenir) |
IX509CertificateRequestPkcs7 ::InitializeDecode Décode un PKCS signé ou non signé existant (IX509CertificateRequestPkcs7.InitializeDecode) |
IX509CertificateRequestPkcs7 ::InitializeFromCertificate Initialise la demande de certificat à l’aide d’un certificat existant. (IX509CertificateRequestPkcs7.InitializeFromCertificate) |
IX509CertificateRequestPkcs7 ::InitializeFromInnerRequest Initialise la demande de certificat à partir du PKCS interne |
IX509CertificateRequestPkcs7 ::InitializeFromTemplateName Initialise la demande de certificat à l’aide d’un modèle. (IX509CertificateRequestPkcs7.InitializeFromTemplateName) |
IX509CertificateRequestPkcs7 ::p ut_RequesterName Spécifie ou récupère une chaîne qui contient le nom du Gestionnaire de compte de sécurité (SAM) de l’entité finale qui demande le certificat. (Put) |
IX509CertificateRequestPkcs7 ::p ut_SignerCertificate Spécifie ou récupère un certificat utilisé pour signer la demande de certificat. (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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour