Partager via


Interface ISignerCertificate (certenroll.h)

L’interface ISignerCertificate représente un certificat de signature qui vous permet de signer une demande de certificat. Lorsque vous initialisez l’interface, le contrôle d’inscription de certificat récupère le certificat de signature à partir du magasin personnel et l’utilise pour rechercher une clé privée associée. Vous pouvez utiliser la clé privée pour signer une requête PKCS #7 ou CMC, mais pas une requête PKCS #10. Les demandes PKCS #10 doivent être signées à l’aide de la clé privée associée à la clé publique incluse dans la demande. Les certificats auto-signés peuvent être signés à l’aide de la clé privée associée à la demande ou de la clé privée associée au certificat de signature. Ceci est résumé dans le tableau suivant.

Type de requête (Interface) Certificats de signature
PKCS #7(IX509CertificateRequestPkcs7) 1
PKCS #10(IX509CertificateRequestPkcs10) 0
CMC(IX509CertificateRequestCmc) 0 ou plus
Auto-signé(IX509CertificateRequestCertificate) 0 ou 1
 

Lors de la signature d’une requête CMC, les données à signer se composent d’un objet CmcData encodé Distinguished Encoding Rules (DER) encapsulé dans un objet CMS SignedData. Le champ encryptedDigest de l’objet SignerInfo contient une signature et plusieurs objets SignerInfo peuvent être associés à la demande.


---------------------------------------------------------------------
-- CMC request data
---------------------------------------------------------------------

CmcData ::= SEQUENCE 
{
controlSequence     SEQUENCE OF TaggedAttribute,
reqSequence         SEQUENCE OF TaggedRequest,
cmsSequence         SEQUENCE OF TaggedContentInfo,
otherMsgSequence    SEQUENCE OF TaggedOtherMs
}

---------------------------------------------------------------------
-- SignedData object that wraps the CMC request
---------------------------------------------------------------------

SignedData ::= SEQUENCE 
{
   version             INTEGER,
   digestAlgorithms    DigestAlgorithmIdentifiers,
   contentInfo         ContentInfo,
   certificates        [0] IMPLICIT Certificates OPTIONAL,
   crls                [1] IMPLICIT CertificateRevocationLists OPTIONAL,
   signerInfos         SignerInfos
}

DigestAlgorithmIdentifiers ::=  SET OF DigestAlgorithmIdentifier 
DigestAlgorithmIdentifiersNC ::= SET OF DigestAlgorithmIdentifierNC

SignerInfos ::= SET OF SignerInfo

SignerInfo ::= SEQUENCE 
{
    version                     INTEGER,
    sid                         CertIdentifier,
    digestAlgorithm             DigestAlgorithmIdentifier,
    authenticatedAttributes     [0] IMPLICIT Attributes OPTIONAL,
    digestEncryptionAlgorithm   DigestEncryptionAlgId,
    encryptedDigest             EncryptedDigest,
    unauthenticatedAttributes   [1] IMPLICIT Attributes OPTIONAL
}

Chaque objet ISignerCertificate est associé à un objet IX509SignatureInformation qui identifie les algorithmes de hachage et de clé publique utilisés. Cet objet est créé et initialisé lorsque l’objet ISignerCertificate est initialisé.

Héritage

L’interface ISignerCertificate hérite de l’interface IDispatch. ISignerCertificate possède également les types de membres suivants :

Méthodes

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

 
ISignerCertificate ::get_Certificate

Récupère un tableau d’octets encodé de Distinguished Encoding Rules (DER) qui contient le certificat.
ISignerCertificate ::get_ParentWindow

Spécifie ou récupère l’ID de la fenêtre utilisée pour afficher les informations de certificat de signature. (Obtenir)
ISignerCertificate ::get_PrivateKey

Récupère la clé privée associée à l’objet ISignerCertificate.
ISignerCertificate ::get_SignatureInformation

Récupère un objet IX509SignatureInformation qui contient des informations sur la signature de certificat.
ISignerCertificate ::get_Silent

Spécifie ou récupère une valeur booléenne qui indique si l’utilisateur est averti lorsque la clé privée est utilisée pour signer une demande de certificat. (Obtenir)
ISignerCertificate ::get_UIContextMessage

Spécifie ou récupère une chaîne qui contient le texte de l’interface utilisateur associé au certificat de signature. (Obtenir)
ISignerCertificate ::Initialize

Initialise l’objet à partir d’un certificat de signature.
ISignerCertificate ::p ut_ParentWindow

Spécifie ou récupère l’ID de la fenêtre utilisée pour afficher les informations de certificat de signature. (Put)
ISignerCertificate ::p ut_Pin

Spécifie un numéro d’identification personnel (PIN) utilisé pour authentifier un utilisateur carte intelligent.
ISignerCertificate ::p ut_Silent

Spécifie ou récupère une valeur booléenne qui indique si l’utilisateur est averti lorsque la clé privée est utilisée pour signer une demande de certificat. (Put)
ISignerCertificate ::p ut_UIContextMessage

Spécifie ou récupère une chaîne qui contient le texte de l’interface utilisateur associé au certificat de signature. (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

IDispatch

ISignerCertificates