Funzione CryptFindOIDInfo (wincrypt.h)
La funzione CryptFindOIDInfo recupera la prima struttura predefinita o registrata CRYPT_OID_INFO che corrisponde a un tipo di chiave e una chiave specificati. La ricerca può essere limitata agli identificatori di oggetto (OID) all'interno di un gruppo OID specificato.
Usare CryptEnumOIDInfo per elencare tutti o i subset selezionati di strutture CRYPT_OID_INFO . È possibile registrare nuove strutture CRYPT_OID_INFO usando CryptRegisterOIDInfo. Gli IDE registrati dall'utente possono essere rimossi dall'elenco di IDE registrati usando CryptUnregisterOIDInfo.
I nuovi OID possono essere inseriti nell'elenco degli URI registrati prima o dopo le voci predefinite. Poiché CryptFindOIDInfo restituisce la prima chiave nell'elenco che corrisponde ai criteri di ricerca, un OID appena registrato posizionato prima di una voce OID predefinita con la stessa chiave esegue l'override di una voce predefinita.
Sintassi
PCCRYPT_OID_INFO CryptFindOIDInfo(
[in] DWORD dwKeyType,
[in] void *pvKey,
[in] DWORD dwGroupId
);
Parametri
[in] dwKeyType
Specifica il tipo di chiave da utilizzare per la ricerca di informazioni OID.
Questo parametro può essere uno dei tipi di chiave seguenti.
CRYPT_OID_INFO_OID_KEY
pvKey è l'indirizzo di una stringa ANSI con terminazione Null che contiene la stringa OID da trovare.
CRYPT_OID_INFO_NAME_KEY
pvKey è l'indirizzo di una stringa Unicode con terminazione Null che contiene il nome da trovare.
CRYPT_OID_INFO_ALGID_KEY
pvKey è l'indirizzo di una variabile ALG_ID . Sono supportati i ALG_IDseguenti:
Algoritmi hash:
Algoritmi di crittografia simmetrica:
Algoritmi a chiave pubblica:
Gli algoritmi non elencati sono supportati tramite l'API di crittografia: solo CNG (Next Generation ); usare invece CRYPT_OID_INFO_CNG_ALGID_KEY.
CRYPT_OID_INFO_SIGN_KEY
pvKey è l'indirizzo di una matrice di due ALG_IDin cui il primo elemento contiene l'identificatore dell'algoritmo hash e il secondo elemento contiene l'identificatore dell'algoritmo di chiave pubblica.
Sono supportate le combinazioni di ALG_ID seguenti.
Identificatore dell'algoritmo di firma | Identificatore dell'algoritmo hash |
---|---|
CALG_RSA_SIGN |
|
CALG_DSS_SIGN |
|
CALG_NO_SIGN |
|
Gli algoritmi non elencati sono supportati solo tramite CNG; usare invece CRYPT_OID_INFO_CNG_SIGN_KEY.
CRYPT_OID_INFO_CNG_ALGID_KEY
pvKey è l'indirizzo di una stringa Unicode con terminazione Null che contiene l'identificatore dell'algoritmo CNG da trovare. Può trattarsi di uno degli identificatori di algoritmo CNG predefiniti o di un altro identificatore di algoritmo registrato.
Windows Server 2003 R2 Windows Server 2003 : Questo tipo di chiave non è supportato.CRYPT_OID_INFO_CNG_SIGN_KEY
pvKey è l'indirizzo di una matrice di due puntatori di stringa Unicode con terminazione Null in cui la prima stringa contiene l'identificatore dell'algoritmo hash CNG e la seconda stringa contiene l'identificatore dell'algoritmo CNG a chiave pubblica. Possono essere provenienti dagli identificatori di algoritmo CNG predefiniti o da un altro identificatore di algoritmo registrato.
Windows Server 2003 R2 Windows Server 2003 : Questo tipo di chiave non è supportato.Facoltativamente, è possibile specificare i tipi di chiave seguenti nel parametro dwKeyType usando l'operatore LOGICO OR (|).
[in] pvKey
Indirizzo di un buffer che contiene informazioni di ricerca aggiuntive. Questo parametro dipende dal valore del parametro dwKeyType . Per altre informazioni, vedere la tabella in dwKeyType.
[in] dwGroupId
Identificatore del gruppo da utilizzare per la ricerca di informazioni OID. L'impostazione di questo parametro su zero esegue la ricerca in tutti i gruppi in base al parametro dwKeyType . In caso contrario, viene eseguita la ricerca solo nell'elemento dwGroupId indicato.
Per informazioni sul codice che elenca le informazioni OID in base all'identificatore del gruppo, vedere CryptEnumOIDInfo.
Facoltativamente, è possibile specificare il flag seguente nel parametro dwGroupId usando l'operatore LOGICO OR (|).
Valore | Significato |
---|---|
|
Disabilita la ricerca nel server di directory. |
La lunghezza del bit spostata a sinistra a 16 bit può essere specificata nel parametro dwGroupId usando l'operatore OR logico (|). Per altre informazioni, vedere la sezione Osservazioni.
Valore restituito
Restituisce un puntatore a una struttura costante di tipo CRYPT_OID_INFO. Il puntatore restituito non deve essere liberato. Quando la chiave e il gruppo specificati non vengono trovati, viene restituito NULL .
Commenti
La funzione CryptFindOIDInfo esegue una ricerca in Active Directory per recuperare i nomi descrittivi degli OID nelle condizioni seguenti:
- Il tipo di chiave nel parametro dwKeyType è impostato su CRYPT_OID_INFO_OID_KEY o CRYPT_OID_INFO_NAME_KEY.
- Nessun identificatore di gruppo specificato nel parametro dwGroupId o groupID fa riferimento agli OID EKU, agli OID dei criteri o agli ID modello.
La lunghezza del bit spostata a sinistra a 16 bit può essere specificata nel parametro dwGroupId usando l'operatore OR logico (|). Questa opzione è applicabile solo alle voci del gruppo di CRYPT_ENCRYPT_ALG_OID_GROUP_ID con una lunghezza di bit specificata nel membro ExtraInfo della struttura CRYPT_OID_INFO . Attualmente sono disponibili solo gli algoritmi di crittografia AES. La costante CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT può essere utilizzata per eseguire lo spostamento. Ad esempio, per trovare le informazioni OID per BCRYPT_AES_ALGORITHM con lunghezza di bit uguale a 192, chiamare CryptFindOIDInfo come indicato di seguito.
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)
);
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |