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_DSS_SIGN |
|
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.
[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 |
---|---|
|
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.
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 |