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

CertEnroll Interfaces

IX509CertificateRequest