Freigeben über


IObjectId::InitializeFromAlgorithmName-Methode (certenroll.h)

Die InitializeFromAlgorithmName-Methode initialisiert das Objekt aus einem Algorithmusnamen oder einem Objektbezeichner. Diese Methode wurde in erster Linie bereitgestellt, damit Sie das Objekt aus einer Kryptografie-API initialisieren können: Name des Algorithmus der nächsten Generation (CNG). Sie können jedoch einen beliebigen OID-Namen angeben. Diese Methode ist webfähig.

Syntax

HRESULT InitializeFromAlgorithmName(
  [in] ObjectIdGroupId        GroupId,
  [in] ObjectIdPublicKeyFlags KeyFlags,
  [in] AlgorithmFlags         AlgFlags,
  [in] BSTR                   strAlgorithmName
);

Die Parameter

[in] GroupId

Ein ObjectIdGroupId-Enumerationswert , der die zu durchsuchende OID-Gruppe angibt. Dies kann eine der folgenden Algorithmusgruppen sein:

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
Darüber hinaus können Sie auch Gruppen angeben, die keine kryptografischen Algorithmen enthalten:
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

Ein ObjectIdPublicKeyFlags-Enumerationswert , der angibt, ob nach einer Signatur oder einem Verschlüsselungsalgorithmus gesucht werden soll. Dies kann einer der folgenden Werte sein:

  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Sie können beide Werte verwenden, um mehrdeutig zwischen Algorithmen wie RSA zu unterscheiden, die zum Verschlüsseln und Signieren von Nachrichten verwendet werden können. Sie müssen auch XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID im Parameter "GroupId " angeben.

[in] AlgFlags

Ein AlgorithmFlags-Enumerationswert . Dies kann einer der folgenden Werte sein:

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap
Wenn Sie XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID für den GroupId-Parameter angeben, können Sie mithilfe der AlgorithmFlags-Aufzählung nach einem OID suchen, das zum Umbrechen eines Schlüssels verwendet werden kann. Sie können z. B. Informationen zum AES128wrap-Algorithmus abrufen, wenn Sie eine Bitlänge von 128 angeben (siehe Abschnitt "Hinweise"), den Parameter strAlgorithmName auf AES festlegen und AlgorithmFlagsWrap angeben.

[in] strAlgorithmName

Eine BSTR-Variable , die den Namen enthält. Sie können einen Namen oder ein OID im gepunkteten Dezimalformat angeben. Die Methode überprüft, ob das Format mit dem ASN.1 X.208-Standard konsistent ist. Weitere Informationen zu CNG-Algorithmusnamen finden Sie unter CNG-Algorithmusbezeichner.

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ögliche Werte sind die Werte in der folgenden Tabelle, sind jedoch nicht beschränkt. Eine Liste allgemeiner Fehlercodes finden Sie unter "Allgemeine HRESULT-Werte".

Zurückgeben von Code/Wert Description
CERTSRV_E_PROPERTY_EMPTY
Die OID-Informationen konnten nicht gefunden werden.
CRYPT_E_UNKNOWN_ALGO
Der Algorithmusname wird nicht erkannt.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
Das Objekt wurde bereits initialisiert.

Bemerkungen

Mit den oberen 16 Bits des GroupId-Parameters können Sie die Schlüsselgröße für Algorithmen angeben, die eine variable Bitlänge akzeptieren. Wenn Sie z. B. ein IObjectId-Objekt aus einem AES-Algorithmus der 192-Bit-Version initialisieren möchten, geben Sie "AES" für den Parameter "strAlgorithmName " an, verschieben Sie die Länge nach links um 16, und führen Sie eine bitweise OR-Kombination für die verschobene Bitlänge und den GroupId-Wert aus.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows Vista [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 [Nur Desktop-Apps]
Zielplattform Fenster
Header certenroll.h
DLL CertEnroll.dll

Siehe auch

IObjectId