Freigeben über


IObjectId::InitializeFromAlgorithmName-Methode (certenroll.h)

Die InitializeFromAlgorithmName-Methode initialisiert das Objekt anhand eines Algorithmusnamens oder eines Objektbezeichners. Diese Methode wurde in erster Linie bereitgestellt, um es Ihnen zu ermöglichen, das Objekt über eine Kryptografie-API zu initialisieren: Name des CNG-Algorithmus (Next Generation). 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
);

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. Mögliche Werte:

  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Sie können beide Werte verwenden, um Zwischenalgorithmen wie RSA zu unterscheiden, die sowohl zum Verschlüsseln als auch zum Signieren von Nachrichten verwendet werden können. Sie müssen auch XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID im GroupId-Parameter angeben.

[in] AlgFlags

Ein AlgorithmFlags-Enumerationswert . Mögliche Werte:

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap
Wenn Sie XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID für den GroupId-Parameter angeben, können Sie die AlgorithmFlags-Enumeration verwenden, um nach einer OID zu suchen, die zum Umschließen eines Schlüssels verwendet werden kann. Beispielsweise können Sie Informationen zum AES128wrap-Algorithmus abrufen, wenn Sie eine Bitlänge von 128 angeben (siehe Abschnitt Hinweise), den StrAlgorithmName-Parameter auf AES festlegen und AlgorithmFlagsWrap angeben.

[in] strAlgorithmName

Eine BSTR-Variable , die den Namen enthält. Sie können einen Namen oder eine 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, gibt sie einen HRESULT-Wert zurück, 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
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 ist bereits initialisiert.

Hinweise

Sie können die oberen 16 Bits des GroupId-Parameters verwenden, um die Schlüsselgröße für Algorithmen anzugeben, die eine variable Bitlänge akzeptieren. Um beispielsweise ein IObjectId-Objekt aus einem 192-Bit-AES-Algorithmus zu initialisieren, geben Sie "AES" für den strAlgorithmName-Parameter an, verschieben die Länge um 16, und führen Sie eine bitweise OR-Kombination für die verschobene Bitlänge und den GroupId-Wert aus.

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

IObjectId