Freigeben über


CryptFindOIDInfo-Funktion (wincrypt.h)

Die CryptFindOIDInfo-Funktion ruft die erste vordefinierte oder registrierte CRYPT_OID_INFO-Struktur ab, die einem angegebenen Schlüsseltyp und Schlüssel entspricht. Die Suche kann auf Objektbezeichner (OIDs) innerhalb einer angegebenen OID-Gruppe beschränkt werden.

Verwenden Sie CryptEnumOIDInfo , um alle oder ausgewählte Teilmengen von CRYPT_OID_INFO Strukturen aufzulisten. Neue CRYPT_OID_INFO-Strukturen können mithilfe von CryptRegisterOIDInfo registriert werden. Benutzer registrierte OIDs können mithilfe von CryptUnregisterOIDInfo aus der Liste der registrierten OIDs entfernt werden.

Neue OIDs können vor oder nach den vordefinierten Einträgen in die Liste der registrierten OIDs aufgenommen werden. Da CryptFindOIDInfo den ersten Schlüssel in der Liste zurückgibt, der den Suchkriterien entspricht, überschreibt eine neu registrierte OID, die vor einem vordefinierten OID-Eintrag mit demselben Schlüssel platziert wird, einen vordefinierten Eintrag.

Syntax

PCCRYPT_OID_INFO CryptFindOIDInfo(
  [in] DWORD dwKeyType,
  [in] void  *pvKey,
  [in] DWORD dwGroupId
);

Parameter

[in] dwKeyType

Gibt den Schlüsseltyp an, der beim Suchen nach OID-Informationen verwendet werden soll.

Dieser Parameter kann einer der folgenden Schlüsseltypen sein.

CRYPT_OID_INFO_OID_KEY

pvKey ist die Adresse einer NULL-beendeten ANSI-Zeichenfolge, die die zu suchende OID-Zeichenfolge enthält.

CRYPT_OID_INFO_NAME_KEY

pvKey ist die Adresse einer unicode-Zeichenfolge mit NULL-Termin, die den namen enthält, der gesucht werden soll.

CRYPT_OID_INFO_ALGID_KEY

pvKey ist die Adresse einer ALG_ID Variablen. Die folgenden ALG_IDwerden unterstützt:

Hashalgorithmen:

Symmetrische Verschlüsselungsalgorithmen:

Algorithmen für öffentliche Schlüssel:

Algorithmen, die nicht aufgeführt sind, werden nur mithilfe der Kryptografie-API: Next Generation (CNG) unterstützt. Verwenden Sie stattdessen CRYPT_OID_INFO_CNG_ALGID_KEY.

CRYPT_OID_INFO_SIGN_KEY

pvKey ist die Adresse eines Arrays von zwei ALG_IDs, wobei das erste Element den Hashalgorithmusbezeichner und das zweite Element den Public Key-Algorithmusbezeichner enthält.

Die folgenden ALG_ID Kombinationen werden unterstützt.

Signaturalgorithmusbezeichner Bezeichner des Hashalgorithmus
CALG_RSA_SIGN
CALG_SHA1
CALG_MD5
CALG_MD4
CALG_MD2
CALG_DSS_SIGN
CALG_SHA1
CALG_NO_SIGN
CALG_SHA1
CALG_NO_SIGN
 

Algorithmen, die nicht aufgeführt sind, werden nur über CNG unterstützt. Verwenden Sie stattdessen CRYPT_OID_INFO_CNG_SIGN_KEY.

CRYPT_OID_INFO_CNG_ALGID_KEY

pvKey ist die Adresse einer mit NULL beendeten Unicode-Zeichenfolge, die den zu ermittelnden CNG-Algorithmusbezeichner enthält. Dies kann einer der vordefinierten CNG-Algorithmusbezeichner oder ein anderer registrierter Algorithmusbezeichner sein.

Windows Server 2003 R2 Windows Server 2003 : Dieser Schlüsseltyp wird nicht unterstützt.

CRYPT_OID_INFO_CNG_SIGN_KEY

pvKey ist die Adresse eines Arrays von zwei Null-endend-Unicode-Zeichenfolgenzeigern, wobei die erste Zeichenfolge den Bezeichner des Hash-CNG-Algorithmus und die zweite Zeichenfolge den Öffentlichen Schlüssel-CNG-Algorithmusbezeichner enthält. Diese können aus den vordefinierten CNG-Algorithmusbezeichnern oder einem anderen registrierten Algorithmusbezeichner stammen.

Windows Server 2003 R2 Windows Server 2003 : Dieser Schlüsseltyp wird nicht unterstützt.

Optional können die folgenden Schlüsseltypen im dwKeyType-Parameter mithilfe des logischen OR-Operators (|) angegeben werden.

Wert Bedeutung
CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
Überspringt öffentliche Schlüssel in der gruppe CRYPT_PUBKEY_ALG_OID_GROUP_ID, die explizit mit dem flag CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG gekennzeichnet sind.
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Überspringt öffentliche Schlüssel in der gruppe CRYPT_PUBKEY_ALG_OID_GROUP_ID, die explizit mit dem flag CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG gekennzeichnet sind.

[in] pvKey

Die Adresse eines Puffers, der zusätzliche Suchinformationen enthält. Dieser Parameter hängt vom Wert des dwKeyType-Parameters ab. Weitere Informationen finden Sie in der Tabelle unter dwKeyType.

[in] dwGroupId

Der Gruppenbezeichner, der beim Suchen von OID-Informationen verwendet werden soll. Wenn Sie diesen Parameter auf 0 festlegen, werden alle Gruppen gemäß dem dwKeyType-Parameter durchsucht. Andernfalls wird nur die angegebene dwGroupId durchsucht.

Informationen zu Code, der die OID-Informationen nach Gruppenbezeichner auflistet, finden Sie unter CryptEnumOIDInfo.

Optional kann das folgende Flag im dwGroupId-Parameter mithilfe des logischen OR-Operators (|) angegeben werden.

Wert Bedeutung
CRYPT_OID_DISABLE_SEARCH_DS_FLAG
Deaktiviert die Suche auf dem Verzeichnisserver.
 

Die nach links verschobene Bitlänge um 16 Bit kann im dwGroupId-Parameter mithilfe des logischen OR-Operators (|) angegeben werden. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Gibt einen Zeiger auf eine konstante Struktur vom Typ CRYPT_OID_INFO zurück. Der zurückgegebene Zeiger darf nicht freigegeben werden. Wenn der angegebene Schlüssel und die angegebene Gruppe nicht gefunden werden, wird NULL zurückgegeben.

Hinweise

Die CryptFindOIDInfo-Funktion führt eine Suche im Active Directory durch, um die Anzeigenamen von OIDs unter den folgenden Bedingungen abzurufen:

  • Der Schlüsseltyp im dwKeyType-Parameter ist auf CRYPT_OID_INFO_OID_KEY oder CRYPT_OID_INFO_NAME_KEY festgelegt.
  • Im dwGroupId-Parameter wird kein Gruppenbezeichner angegeben, oder die GroupID bezieht sich auf EKU-OIDs, Richtlinien-OIDs oder Vorlagen-OIDs.
Der Netzwerkabruf des Anzeigenamens kann unterdrückt werden, indem die Funktion mit dem flag CRYPT_OID_DISABLE_SEARCH_DS_FLAG aufgerufen wird.

Die nach links verschobene Bitlänge um 16 Bit kann im dwGroupId-Parameter mithilfe des logischen OR-Operators (|) angegeben werden. Dies gilt nur für die CRYPT_ENCRYPT_ALG_OID_GROUP_ID Gruppeneinträge, deren Bitlänge im ExtraInfo-Element der CRYPT_OID_INFO-Struktur angegeben ist. Derzeit verfügen nur die AES-Verschlüsselungsalgorithmen über diese. Die konstante CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT kann für die Verschiebung verwendet werden. Um beispielsweise die OID-Informationen für BCRYPT_AES_ALGORITHM mit der Bitlänge gleich 192 zu finden, rufen Sie CryptFindOIDInfo wie folgt auf.


DWORD dwBitLen = 192;

PCCRYPT_OID_INFO pOIDInfo = CryptFindOIDInfo(
     CRYPT_OID_INFO_CNG_ALGID_KEY,
     (void *) BCRYPT_AES_ALGORITHM,
     CRYPT_ENCRYPT_ALG_OID_GROUP_ID |
         (dwBitLen << CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT)
     );


Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

ALG_ID

CRYPT_ALGORITHM_IDENTIFIER

CRYPT_OID_INFO

CryptRegisterOIDInfo

CryptUnregisterOIDInfo

OID-Unterstützungsfunktionen