IX509CertificateRequestPkcs7::InitializeDecode-Methode (certenroll.h)
Die InitializeDecode-Methode decodiert ein vorhandenes signiertes oder nicht signiertes PKCS #7-Anforderungsobjekt und verwendet es, um das neue PKCS #7-Objekt zu initialisieren. Die vorhandene Anforderung ist in einem Bytearray enthalten, das mithilfe von Distinguished Encoding Rules (DER) codiert wurde, wie im ASN.1-Standard (Abstract Syntax Notation One) definiert. Das Bytearray wird durch eine Zeichenfolge dargestellt, die entweder eine reine binärsequenz ist oder Unicode-codiert ist.
Syntax
HRESULT InitializeDecode(
[in] BSTR strEncodedData,
[in] EncodingType Encoding
);
Parameter
[in] strEncodedData
Eine BSTR-Variable , die die DER-codierte Anforderung enthält.
[in] Encoding
Ein EncodingType-Enumerationswert , der den Typ der Unicode-Codierung angibt, die auf die Eingabezeichenfolge angewendet wird, die die DER-codierte Anforderung enthält. Der Standardwert ist XCN_CRYPT_STRING_BASE64.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion S_OK zurück.
Wenn die Funktion fehlschlägt, wird ein HRESULT-Wert zurückgegeben, der den Fehler angibt. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Das Anforderungsobjekt wurde bereits initialisiert. |
Hinweise
Die InitializeDecode-Methode :
- Decodiert die PKCS #7-Anforderung, die bei der Eingabe angegeben wurde.
- Verwendet das decodierte Objekt, um eine innere PKCS #10-Anforderung mit den folgenden Auflistungen zu erstellen:
- Eine leere ICryptAttributes-Auflistung .
- Eine leere IX509Extensions-Auflistung .
- Eine leere IObjectIds-Auflistung für kritische Erweiterungen.
- Eine leere IObjectIds-Auflistung für Attribut- und Erweiterungs-OIDs, die aus der neuen Anforderung unterdrückt werden sollen.
- Fügt die decodierten Erweiterungen der IX509Extensions-Auflistung hinzu.
- Fügt die decodierten Attribute der ICryptAttributes-Auflistung hinzu.
- Legt die ClientId-Eigenschaft fest.
- Legt die TemplateObjectId-Eigenschaft fest.
- Verwendet die Signatur für die ursprüngliche PKCS #7-Anforderung, um ein neues ISignerCertificate-Objekt zu erstellen.
- Ruft ein IX509SignatureInformation-Objekt aus dem ISignerCertificate-Objekt ab .
- Initialisiert das neue IX509SignatureInformation-Objekt mithilfe der ursprünglichen Signatur- und Hashalgorithmen.
- Legt die PKCS #10-Anforderung als inneres Anforderungsobjekt fest.
Standardmäßig geht die InitializeDecode-Methode davon aus, dass die zu decodierte Zertifikatanforderung für einen Endbenutzer gilt. Ab Windows 8 und Windows Server 2012 können Sie dieses Standardverhalten ändern. Nachdem Sie eine instance der IX509CertificateRequestPkcs7-Schnittstelle erstellt haben, rufen Sie InitializeDecode auf, indem Sie den Parameter Encoding auf XCN_CRYPT_STRING_BINARY und den strEncodedData-Parameter auf einen der folgenden Werte festlegen:
Wert | BESCHREIBUNG |
---|---|
L"ContextMachine" | Die anforderung des codierten Zertifikats gilt für einen Computer. |
L"ContextUser" | Die anforderung des codierten Zertifikats richtet sich an einen Endbenutzer. |
L"ContextAdministratorForceMachine" | Das codierte Zertifikat wird von einem Administrator angefordert, der im Namen eines Computers handelt. |
Rufen Sie dann die InitializeDecode-Methode erneut auf, wobei das codierte Zertifikat im Argument strEncodedData festgelegt ist.
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 |
DLL | CertEnroll.dll |