Freigeben über


IX509AttributeArchiveKey::InitializeEncode-Methode (certenroll.h)

Die InitializeEncode-Methode initialisiert das Attribut aus einem IX509PrivateKey-Objekt , dem Verschlüsselungszertifikat der Zertifizierungsstelle und dem Objektbezeichner des symmetrischen Verschlüsselungsalgorithmus (OID).

Syntax

HRESULT InitializeEncode(
  [in]           IX509PrivateKey *pKey,
  [in]           EncodingType    Encoding,
  [in]           BSTR            strCAXCert,
  [in, optional] IObjectId       *pAlgorithm,
  [in]           LONG            EncryptionStrength
);

Parameter

[in] pKey

Zeiger auf eine IX509PrivateKey-Schnittstelle , die den Schlüssel darstellt.

[in] Encoding

Ein EncodingType-Enumerationswert , der den Typ der Unicode-Codierung angibt, die auf die Eingabezeichenfolge angewendet wird, die den verschlüsselten Schlüssel enthält.

[in] strCAXCert

Eine BSTR-Variable , die das Verschlüsselungszertifikat der Zertifizierungsstelle enthält, das den öffentlichen Schlüssel enthält, der zum Verschlüsseln des privaten Schlüssels verwendet wird.

Ab Windows 7 und Windows Server 2008 R2 können Sie anstelle eines codierten Zertifikats einen Fingerabdruck oder eine Seriennummer angeben. Dadurch durchsucht die Funktion die entsprechenden lokalen Speicher nach dem übereinstimmenden Zertifikat. Berücksichtigen Sie dabei Folgendes:

  • Der BSTR muss eine gerade Anzahl von Hexadezimalstellen sein.
  • Leerzeichen zwischen Hexadezimalpaaren werden ignoriert.
  • Der Encoding-Parameter muss auf XCN_CRYPT_STRING_HEXRAW festgelegt werden.
  • Nur die persönlichen Speicher und die Anforderungsspeicher werden nach dem privaten Schlüssel gesucht.

[in, optional] pAlgorithm

Zeiger auf eine IObjectId-Schnittstelle , die die OID des symmetrischen Verschlüsselungsalgorithmus darstellt, der zum Verschlüsseln des privaten Schlüssels verwendet wird. Dieser Parameter ist optional. Wenn Sie keine OID angeben, wird XCN_OID_RSA_DES_EDE3_CBC (Triple DES) verwendet.

[in] EncryptionStrength

Eine LONG-Variable , die die Verschlüsselungsstärke des Algorithmus enthält, der durch den pAlgorithm-Parameter identifiziert wird. Dieser Parameter wird derzeit nicht verwendet, da das Zertifikatregistrierungs-SDK keine Algorithmen unterstützt, für die die OID nicht bereits die Stärke (Schlüssellänge) impliziert. Beispielsweise hat AES mehrere Stärken, aber die Stärke wird bereits durch die OID angegeben.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion S_OK zurück.

Wenn die Funktion fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Hinweise

Der Objektbezeichner für dieses Attribut ist XCN_OID_ARCHIVED_KEY_ATTR (1.3.6.1.4.1.311.21.13). Weitere Informationen finden Sie unter CERTENROLL_OBJECTID.

Sie müssen entweder InitializeEncode oder InitializeDecode aufrufen, bevor Sie ein IX509AttributeArchiveKey-Objekt verwenden können. Die beiden Methoden ergänzen sich. Mit der InitializeEncode-Methode können Sie eine codierte ASN.1-Struktur ( Abstract Syntax Notation One ) aus Rohdaten erstellen, und mit der InitializeDecode-Methode können Sie Rohdaten aus einer codierten ASN.1-Struktur initialisieren. Sie können die folgenden Eigenschaften aufrufen, um die Rohdaten abzurufen:

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

Weitere Informationen

IX509AttributeArchiveKey