IX509CertificateRequestPkcs7-Schnittstelle (certenroll.h)
Die IX509CertificateRequestPkcs7-Schnittstelle stellt ein PKCS #7-CMS-Objekt (Certificate Message Syntax) dar. PKCS #7 definiert das Format von Nachrichten, die an eine Zertifizierungs- oder Registrierungsstelle gesendet werden, um ein Zertifikat mit öffentlichem Schlüssel anzufordern. Die IX509CertificateRequestPkcs7-Schnittstelle kann verwirrend sein, da ihre Implementierung nicht perfekt Spiegel die Art und Weise, wie die meisten Sicherheitsexperten über den PKCS #7-Standard denken. Um diese Verwirrung zu vermeiden, beachten Sie die folgenden Punkte:
- Obwohl eine PKCS #7-Nachricht zum Umschließen einer CMC-Anforderung verwendet wird, kann ein IX509CertificateRequestPkcs7-Objekt kein IX509CertificateRequestCmc-Objekt enthalten. Stattdessen erbt und implementiert die IX509CertificateRequestCmc-Schnittstelle die IX509CertificateRequestPkcs7-Schnittstelle . Wie implementiert, ist eine CMC-Anforderung daher ein PKCS #7 SignedData-Objekt , das CMC-Inhalt enthält, eine primäre Signatur, die entweder nullsigniert oder schlüsselbasiert ist, und null oder mehr zertifikatbasierte Signaturen. Im Gegensatz dazu ist eine PKCS #7-Anforderung ein SignedData-Objekt , das PKCS #10-Inhalt enthält (siehe das nächste Element in dieser Liste) und genau eine zertifikatbasierte Signatur aufweist.
- Ein IX509CertificateRequestPkcs7 muss ein IX509CertificateRequestPkcs10-Objekt enthalten. Der Standard Vorteil des Umschließens einer PKCS #10-Anforderung in eine PKCS #7-Nachricht ist die Möglichkeit, mehrere Signierer hinzuzufügen. Die PKCS #10-Anforderung wird vom zugeordneten privaten Schlüssel signiert, und die PKCS #7-Nachricht, die die PKCS #10-Anforderung umschließt, ist ebenfalls signiert. Dieser zweite Signierer verwendet das Zertifikat, das erneuert wird (für eine Verlängerungsanforderung) oder das Registrierungs-Agent-Zertifikat (für eine Registrierungs-im-Auftrag-von-Anforderung).
- Sie können eine eigenständige IX509CertificateRequestPkcs10-Zertifikatanforderung erstellen und registrieren, ohne sie in ein IX509CertificateRequestPkcs7-Objekt umschließen zu müssen.
Die ASN.1-Darstellung eines PKCS #7-Objekts im folgenden Syntaxbeispiel zeigt, dass es aus einer Vielzahl von Datentypen bestehen kann.
PKCS7ContentTable PKCS7-CONTENT-TYPE ::=
{
data | signed-data | enveloped-data | signed-and-enveloped-data |
digested-data | encrypted-data | authenticated-data, ...
}
Von diesen ist das unten gezeigte SignedData-Objekt am relevantesten. Das SignerInfo-Objekt , auf das im SignedData-Objekt verwiesen wird, enthält die Signaturinformationen. Eine ausführlichere Diskussion finden Sie unter PKCS #7 Attribute.
-------------------------------------------------------------------
-- 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
}
Vererbung
Die IX509CertificateRequestPkcs7-Schnittstelle erbt von IX509CertificateRequest. IX509CertificateRequestPkcs7 verfügt auch über folgende Membertypen:
Methoden
Die IX509CertificateRequestPkcs7-Schnittstelle verfügt über diese Methoden.
IX509CertificateRequestPkcs7::get_RequesterName Gibt eine Zeichenfolge an, die den SAM-Namen (Security Account Manager) der Endentität enthält, die das Zertifikat anfordert, oder ruft sie ab. (Abrufen) |
IX509CertificateRequestPkcs7::get_SignerCertificate Gibt ein Zertifikat an, das zum Signieren der Zertifikatanforderung verwendet wird, oder ruft es ab. (Abrufen) |
IX509CertificateRequestPkcs7::InitializeDecode Decodiert eine vorhandene signierte oder nicht signierte PKCS (IX509CertificateRequestPkcs7.InitializeDecode) |
IX509CertificateRequestPkcs7::InitializeFromCertificate Initialisiert die Zertifikatanforderung mithilfe eines vorhandenen Zertifikats. (IX509CertificateRequestPkcs7.InitializeFromCertificate) |
IX509CertificateRequestPkcs7::InitializeFromInnerRequest Initialisiert die Zertifikatanforderung aus dem inneren PKCS. |
IX509CertificateRequestPkcs7::InitializeFromTemplateName Initialisiert die Zertifikatanforderung mithilfe einer Vorlage. (IX509CertificateRequestPkcs7.InitializeFromTemplateName) |
IX509CertificateRequestPkcs7::p ut_RequesterName Gibt eine Zeichenfolge an, die den SAM-Namen (Security Account Manager) der Endentität enthält, die das Zertifikat anfordert, oder ruft sie ab. (Put) |
IX509CertificateRequestPkcs7::p ut_SignerCertificate Gibt ein Zertifikat an, das zum Signieren der Zertifikatanforderung verwendet wird, oder ruft es 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 |