Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La structure CRYPT_OID_INFO contient des informations sur un identificateur d’objet (OID). Ces structures donnent la relation entre un identificateur OID, son nom, son groupe et d’autres informations sur l’OID. Ces structures peuvent être répertoriées à l’aide de la fonction CryptEnumOIDInfo . Vous pouvez ajouter de nouvelles CRYPT_OID_STRUCTURES à l’aide de la fonction CryptRegisterOIDInfo .
Syntaxe
typedef struct _CRYPT_OID_INFO {
DWORD cbSize;
LPCSTR pszOID;
LPCWSTR pwszName;
DWORD dwGroupId;
union {
DWORD dwValue;
ALG_ID Algid;
DWORD dwLength;
} DUMMYUNIONNAME;
CRYPT_DATA_BLOB ExtraInfo;
LPCWSTR pwszCNGAlgid;
LPCWSTR pwszCNGExtraAlgid;
} CRYPT_OID_INFO, *PCRYPT_OID_INFO;
Membres
cbSize
Taille, en octets, de cette structure.
pszOID
OID associé à ces informations OID.
pwszName
Nom complet associé à un OID.
dwGroupId
Valeur d’identificateur de groupe associée à ces informations OID.
Ce membre peut être l’un des identificateurs de groupe dwGroupId suivants.
DUMMYUNIONNAME
DUMMYUNIONNAME.dwValue
Valeur numérique associée à ces informations OID. Ce membre est utilisé avec dwGroupId CRYPT_SIGN_ALG_OID_GROUP_ID.
DUMMYUNIONNAME.Algid
Identificateur d’algorithme associé à ces informations OID.
Ce membre s’applique aux valeurs suivantes de dwGroupId :
- CRYPT_HASH_ALG_OID_GROUP_ID
- CRYPT_ENCRYPT_ALG_OID_GROUP_ID
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
DUMMYUNIONNAME.dwLength
Ce membre n’est pas implémenté. Il est toujours défini sur zéro.
ExtraInfo
Informations supplémentaires utilisées pour rechercher ou inscrire des informations OID. Ce membre s’applique aux valeurs suivantes de dwGroupId :
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
- CRYPT_RDN_ATTR_OID_GROUP_ID
Les OID du groupe OID CRYPT_ENCRYPT_ALG_OID_GROUP_ID ont une longueur de bits définie pour les algorithmes AES dans le membre DWORD[0] du membre ExtraInfo.
Les OID du groupe CRYPT_PUBKEY_ALG_OID_GROUP_ID ont un indicateur défini dans le membre DWORD[0] du membre ExtraInfo.
Les OID dans les clés publiques de la courbe ECC, par exemple, szOID_ECC_CURVE_P256 (« 1.2.840.10045.3.1.7 »), avez un indicateur défini dans le membre DWORD[0], une valeur de champ BCRYPT_ECCKEY_BLOB dwMagic définie dans le membre DWORD[1] et une longueur de bits où la valeur cbKey BCRYPT_ECCKEY_BLOB est égale à dwBitLength / 8 + ((dwBitLength % 8) ? 1 : 0) défini dans le membre DWORD[2] du membre ExtraInfo.
Les OID du groupe CRYPT_SIGN_ALG_OID_GROUP_ID ont un identificateur d’algorithme de clé publique défini dans le membre DWORD[0], un indicateur défini dans le membre DWORD[1] et un type de fournisseur facultatif défini dans le membre DWORD[2] du membre ExtraInfo.
Les OID du groupe CRYPT_RDN_ATTR_OID_GROUP_ID ont une liste de types de valeurs d’attribut RDN acceptables définies dans un tableau de valeurs DWORD dans le membre ExtraInfo. Une liste omise implique un tableau de valeurs où la première valeur du tableau est CERT_RDN_PRINTABLE_STRING, la deuxième valeur du tableau est CERT_RDN_UNICODE_STRING, et la troisième valeur du tableau est égale à zéro.
Les valeurs suivantes sont utilisées pour les indicateurs du membre ExtraInfo .
| Valeur | Sens |
|---|---|
|
Cet indicateur n’est plus utilisé.
Arrêtez la reformatage de la signature avant que la fonction CryptVerifySignature soit appelée ou après l’appel de la fonction CryptSignHash . |
|
Omettez les paramètres NULL lors de l’encodage. |
|
La clé publique est utilisée uniquement pour le chiffrement. |
|
La clé publique est utilisée uniquement pour les signatures. |
|
Cet indicateur n’est plus utilisé.
Incluez les paramètres de l’algorithme de clé publique dans les paramètres digestEncryptionAlgorithm pour le message PKCS #7. |
Utilisation post-quantique
CRYPT_PUBKEY_ALG_OID_GROUP_ID a les champs ExtraInfo suivants lorsqu’ils sont utilisés avec des OID (ci-dessus) :
| Terrain | Descriptif |
|---|---|
| DWORD[0] | Drapeaux |
| DWORD[1] | Magic public (par exemple , BCRYPT_MLDSA_PUBLIC_MAGIC) |
| DWORD[2] | Private Magic (par exemple , BCRYPT_MLDSA_PRIVATE_SEED_MAGIC) |
| DWORD[4] | Longueur d’octet de clé publique |
| DWORD[5] | Longueur d’octet de clé privée |
| DWORD[6] | Longueur d’octet de signature |
CRYPT_SIGN_ALG_OID_GROUP_ID possède les champs ExtraInfo suivants lorsqu’ils sont utilisés avec des OID PQ :
| Terrain | Descriptif |
|---|---|
| DWORD[0] | Drapeaux |
| DWORD[1] | Longueur d’octet de signature |
CRYPT_HASH_ALG_OID_GROUP_ID pouvez être défini sur L« NoHash » pour indiquer aucun hachage avant la signature, et la clé PQ signe directement les octets ToBeSigned .
pwszCNGAlgid
Chaîne d’identificateur d’algorithme transmise aux fonctions CNG (fonctions BCrypt* et NCrypt* définies dans Bcrypt.h et Ncrypt.h). Les fonctions CNG utilisent des chaînes d’identificateur d’algorithme, telles que L"SHA1 », au lieu des constantes de type de données ALG_ID , telles que CALG_SHA1. Windows Server 2003 et Windows XP : Ce membre n’est pas disponible.
Remarque
Le membre pwszCNGAlgid est disponible uniquement si vous incluez l’instruction suivante dans votre code.
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Ce membre s’applique aux valeurs suivantes de dwGroupId :
- CRYPT_HASH_ALG_OID_GROUP_ID
- CRYPT_ENCRYPT_ALG_OID_GROUP_ID
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
Définissez le membre pwszCNGAlgid sur la chaîne vide, L" », pour les autres valeurs de dwGroupId.
Le membre pwszCNGAlgid peut également être défini sur une valeur de chaîne qui n’est pas transmise directement aux fonctions CNG. Le tableau suivant répertorie ces valeurs et leurs significations :
| Valeur | Sens |
|---|---|
| CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM | L’algorithme de courbe ECC est obtenu à partir des paramètres codés de l’algorithme OID. |
| CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM | L’algorithme d’habillage de clé est obtenu à partir des paramètres encodés de l’algorithme OID. |
| CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM | L’algorithme de hachage est obtenu à partir des paramètres codés de l’algorithme OID. |
| CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM | L’algorithme de hachage de génération de masque PKCS #1 v2.1 est obtenu à partir des paramètres encodés de l’algorithme OID. |
| CRYPT_OID_INFO_NO_SIGN_ALGORITHM | Algorithme de clé publique qui indique que la valeur de signature est un hachage non signé. |
| CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM | L’algorithme de hachage de remplissage RSAES-OAEP est obtenu à partir des paramètres encodés de l’algorithme OID. |
CRYPT32_MLDSA_44_ALGORITHML"ML-DSA:44" |
L’algorithme ML-DSA combine le nom de l’algorithme CNG pour ML-DSA et le jeu de paramètres CNG 44 (catégorie de sécurité NIST 2). |
CRYPT32_MLDSA_65_ALGORITHML"ML-DSA:65" |
L’algorithme ML-DSA combine le nom de l’algorithme CNG pour ML-DSA et le jeu de paramètres CNG 65(NIST security category 3). |
CRYPT32_MLDSA_87_ALGORITHML"ML-DSA:87" |
L’algorithme ML-DSA combine le nom de l’algorithme CNG pour ML-DSA et le jeu de paramètres CNG 87 (catégorie de sécurité NIST 5). |
CRYPT_OID_INFO_NO_HASH_ALGORITHML"NoHash" |
Pour les signatures numériques PQ, indique qu’il n’y a pas de hachage avant la signature, et que la clé PQ signe directement les octets ToBeSigned. |
pwszCNGExtraAlgid
Chaîne d’algorithme supplémentaire, autre que la chaîne du membre pwszCNGAlgid , qui peut être transmise aux fonctions CNG (les fonctions BCrypt* et NCrypt* définies dans Bcrypt.h et Ncrypt.h).
Windows Server 2003 et Windows XP : Ce membre n’est pas disponible.
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Pour les algorithmes de signature (CRYPT_SIGN_ALG_OID_GROUP_ID), ce membre est la chaîne d’algorithme de clé publique à transmettre aux fonctions CNG.
Pour les signatures ECC, ce membre est la valeur de chaîne CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM spéciale.
Pour les signatures non signées, ce membre est la valeur de chaîne CRYPT_OID_INFO_NO_SIGN_ALGORITHM spéciale.
Pour les clés publiques de la courbe ECC, par exemple, szOID_ECC_CURVE_P256 (« 1.2.840.10045.3.1.7 »), il s’agit de la valeur de chaîne CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM spéciale.
Pour les autres valeurs de dwGroupId, définissez le membre pwszCNGExtraAlgid sur la chaîne vide, L" ».
Spécifications
| Besoin | Valeur |
|---|---|
| Client minimum requis | Windows XP [applications de bureau uniquement] |
| Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
| En-tête | wincrypt.h |