Fonction CryptFindOIDInfo (wincrypt.h)
La fonction CryptFindOIDInfo récupère la première structure de CRYPT_OID_INFO prédéfinie ou inscrite qui correspond à un type de clé et à une clé spécifiés. La recherche peut être limitée aux identificateurs d’objet (OID) au sein d’un groupe d’OID spécifié.
Utilisez CryptEnumOIDInfo pour répertorier tous les sous-ensembles ou certains sous-ensembles de structures CRYPT_OID_INFO . De nouvelles structures CRYPT_OID_INFO peuvent être inscrites à l’aide de CryptRegisterOIDInfo. Les OID inscrits par l’utilisateur peuvent être supprimés de la liste des OID inscrits à l’aide de CryptUnregisterOIDInfo.
Les nouveaux OID peuvent être placés dans la liste des OID inscrits avant ou après les entrées prédéfinies. Étant donné que CryptFindOIDInfo retourne la première clé de la liste qui correspond aux critères de recherche, un OID nouvellement inscrit placé avant une entrée OID prédéfinie avec la même clé remplace une entrée prédéfinie.
Syntaxe
PCCRYPT_OID_INFO CryptFindOIDInfo(
[in] DWORD dwKeyType,
[in] void *pvKey,
[in] DWORD dwGroupId
);
Paramètres
[in] dwKeyType
Spécifie le type de clé à utiliser lors de la recherche d’informations OID.
Ce paramètre peut être l’un des types de clés suivants.
CRYPT_OID_INFO_OID_KEY
pvKey est l’adresse d’une chaîne ANSI terminée par null qui contient la chaîne OID à rechercher.
CRYPT_OID_INFO_NAME_KEY
pvKey est l’adresse d’une chaîne Unicode terminée par null qui contient le nom à rechercher.
CRYPT_OID_INFO_ALGID_KEY
pvKey est l’adresse d’une variable ALG_ID . Les ALG_IDsuivants sont pris en charge :
Algorithmes de hachage :
Algorithmes de chiffrement symétrique :
Algorithmes à clé publique :
Les algorithmes qui ne sont pas répertoriés sont pris en charge à l’aide de l’API de chiffrement : Nouvelle génération (CNG) uniquement ; utilisez plutôt CRYPT_OID_INFO_CNG_ALGID_KEY.
CRYPT_OID_INFO_SIGN_KEY
pvKey est l’adresse d’un tableau de deux ALG_IDoù le premier élément contient l’identificateur de l’algorithme de hachage et le deuxième élément contient l’identificateur d’algorithme de clé publique.
Les combinaisons de ALG_ID suivantes sont prises en charge.
Identificateur d’algorithme de signature | Identificateur de l’algorithme de hachage |
---|---|
CALG_RSA_SIGN |
|
CALG_DSS_SIGN |
|
CALG_NO_SIGN |
|
Les algorithmes qui ne sont pas répertoriés sont pris en charge par le biais de CNG uniquement ; utilisez plutôt CRYPT_OID_INFO_CNG_SIGN_KEY.
CRYPT_OID_INFO_CNG_ALGID_KEY
pvKey est l’adresse d’une chaîne Unicode terminée par null qui contient l’identificateur de l’algorithme CNG à rechercher. Il peut s’agir de l’un des identificateurs d’algorithme CNG prédéfinis ou d’un autre identificateur d’algorithme inscrit.
Windows Server 2003 R2 Windows Server 2003 : Ce type de clé n’est pas pris en charge.CRYPT_OID_INFO_CNG_SIGN_KEY
pvKey est l’adresse d’un tableau de deux pointeurs de chaîne Unicode terminés par une valeur Null où la première chaîne contient l’identificateur d’algorithme CNG de hachage et la deuxième chaîne contient l’identificateur d’algorithme CNG de clé publique. Ceux-ci peuvent provenir des identificateurs d’algorithme CNG prédéfinis ou d’un autre identificateur d’algorithme inscrit.
Windows Server 2003 R2 Windows Server 2003 : Ce type de clé n’est pas pris en charge.Si vous le souhaitez, les types de clés suivants peuvent être spécifiés dans le paramètre dwKeyType à l’aide de l’opérateur LOGIQUE OR (|).
[in] pvKey
Adresse d’une mémoire tampon qui contient des informations de recherche supplémentaires. Ce paramètre dépend de la valeur du paramètre dwKeyType . Pour plus d’informations, consultez le tableau sous dwKeyType.
[in] dwGroupId
Identificateur de groupe à utiliser lors de la recherche d’informations OID. La définition de ce paramètre sur zéro recherche tous les groupes en fonction du paramètre dwKeyType . Sinon, seul le dwGroupId indiqué fait l’objet d’une recherche.
Pour plus d’informations sur le code qui répertorie les informations OID par identificateur de groupe, consultez CryptEnumOIDInfo.
Si vous le souhaitez, l’indicateur suivant peut être spécifié dans le paramètre dwGroupId à l’aide de l’opérateur LOGIQUE OR (|).
Valeur | Signification |
---|---|
|
Désactive la recherche sur le serveur d’annuaire. |
La longueur de bits décalée de 16 bits vers la gauche peut être spécifiée dans le paramètre dwGroupId à l’aide de l’opérateur LOGIQUE OR (|). Pour plus d'informations, consultez la section Notes.
Valeur retournée
Retourne un pointeur vers une structure constante de type CRYPT_OID_INFO. Le pointeur retourné ne doit pas être libéré. Lorsque la clé et le groupe spécifiés sont introuvables, null est retourné.
Remarques
La fonction CryptFindOIDInfo effectue une recherche dans active directory pour récupérer les noms conviviaux des OID dans les conditions suivantes :
- Le type de clé dans le paramètre dwKeyType est défini sur CRYPT_OID_INFO_OID_KEY ou CRYPT_OID_INFO_NAME_KEY.
- Aucun identificateur de groupe n’est spécifié dans le paramètre dwGroupId ou le GroupID fait référence à des OID de référence EKU, des OID de stratégie ou des OID de modèle.
La longueur de bits décalée de 16 bits vers la gauche peut être spécifiée dans le paramètre dwGroupId à l’aide de l’opérateur LOGIQUE OR (|). Cela s’applique uniquement aux entrées de groupe CRYPT_ENCRYPT_ALG_OID_GROUP_ID dont la longueur de bits est spécifiée dans le membre ExtraInfo de la structure CRYPT_OID_INFO . Actuellement, seuls les algorithmes de chiffrement AES l’ont. La constante CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT peut être utilisée pour effectuer le décalage. Par exemple, pour rechercher les informations OID pour BCRYPT_AES_ALGORITHM dont la longueur de bits est égale à 192, appelez CryptFindOIDInfo comme suit.
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)
);
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |