Freigeben über


ISignerCertificate-Schnittstelle (certenroll.h)

Die ISignerCertificate-Schnittstelle stellt ein Signaturzertifikat dar, mit dem Sie eine Zertifikatanforderung signieren können. Wenn Sie die Schnittstelle initialisieren, ruft die Zertifikatregistrierungssteuerung das Signaturzertifikat aus dem persönlichen Speicher ab und verwendet es, um einen zugeordneten privaten Schlüssel zu finden. Sie können den privaten Schlüssel verwenden, um eine PKCS #7- oder CMC-Anforderung, aber keine PKCS #10-Anforderung zu signieren. PKCS #10-Anforderungen müssen mit dem privaten Schlüssel signiert werden, der dem öffentlichen Schlüssel zugeordnet ist, der in der Anforderung enthalten ist. Selbstsignierte Zertifikate können mit dem privaten Schlüssel signiert werden, der der Anforderung zugeordnet ist, oder mit dem privaten Schlüssel, der dem Signaturzertifikat zugeordnet ist. Dies wird in der folgenden Tabelle zusammengefasst.

Anforderungstyp (Schnittstelle) Signaturzertifikate
PKCS #7(IX509CertificateRequestPkcs7) 1
PKCS #10(IX509CertificateRequestPkcs10) 0
CMC(IX509CertificateRequestCmc) 0 oder mehr
Selbstsigniert(IX509CertificateRequestCertificate) 0 oder 1
 

Beim Signieren einer CMC-Anforderung bestehen die zu signierenden Daten aus einem Distinguished Encoding Rules (DER) codierten CmcData-Objekt, das in ein CMS SignedData-Objekt umschlossen ist. Das Feld encryptedDigest des SignerInfo-Objekts enthält eine Signatur, und der Anforderung können mehrere SignerInfo-Objekte zugeordnet werden.


---------------------------------------------------------------------
-- 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
}

Jedes ISignerCertificate-Objekt ist einem IX509SignatureInformation-Objekt zugeordnet, das die verwendeten Hashing- und Öffentlichen Schlüsselalgorithmen identifiziert. Dieses Objekt wird erstellt und initialisiert, wenn das ISignerCertificate-Objekt initialisiert wird.

Vererbung

Die ISignerCertificate-Schnittstelle erbt von der IDispatch-Schnittstelle . ISignerCertificate verfügt auch über folgende Membertypen:

Methoden

Die ISignerCertificate-Schnittstelle verfügt über diese Methoden.

 
ISignerCertificate::get_Certificate

Ruft ein Distinguished Encoding Rules (DER)-codiertes Bytearray ab, das das Zertifikat enthält.
ISignerCertificate::get_ParentWindow

Gibt die ID des Fensters an, das zum Anzeigen von Signaturzertifikatinformationen verwendet wird, oder ruft sie ab. (Get)
ISignerCertificate::get_PrivateKey

Ruft den privaten Schlüssel ab, der dem ISignerCertificate-Objekt zugeordnet ist.
ISignerCertificate::get_SignatureInformation

Ruft ein IX509SignatureInformation-Objekt ab, das Informationen zur Zertifikatsignatur enthält.
ISignerCertificate::get_Silent

Gibt einen booleschen Wert an oder ruft diesen ab, der angibt, ob der Benutzer benachrichtigt wird, wenn der private Schlüssel zum Signieren einer Zertifikatanforderung verwendet wird. (Get)
ISignerCertificate::get_UIContextMessage

Gibt eine Zeichenfolge an, die text der Benutzeroberfläche enthält, die dem Signaturzertifikat zugeordnet ist, oder ruft sie ab. (Get)
ISignerCertificate::Initialize

Initialisiert das -Objekt aus einem Signaturzertifikat.
ISignerCertificate::p ut_ParentWindow

Gibt die ID des Fensters an, das zum Anzeigen von Signaturzertifikatinformationen verwendet wird, oder ruft sie ab. (Put)
ISignerCertificate::p ut_Pin

Gibt eine persönliche Identifikationsnummer (PIN) an, die zum Authentifizieren eines Smart Karte Benutzers verwendet wird.
ISignerCertificate::p ut_Silent

Gibt einen booleschen Wert an oder ruft diesen ab, der angibt, ob der Benutzer benachrichtigt wird, wenn der private Schlüssel zum Signieren einer Zertifikatanforderung verwendet wird. (Put)
ISignerCertificate::p ut_UIContextMessage

Gibt eine Zeichenfolge an, die text der Benutzeroberfläche enthält, die dem Signaturzertifikat zugeordnet ist, oder ruft sie ab. (Put)

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certenroll.h

Weitere Informationen

CertEnroll-Schnittstellen

IDispatch

ISignerCertificates