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 |