CRYPT_OID_INFO structure (wincrypt.h)
La structure CRYPT_OID_INFO contient des informations sur un identificateur d’objet (OID). Ces structures fournissent 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 . De nouvelles CRYPT_OID_STRUCTURES peuvent être ajoutées à 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é. Elle est toujours définie 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 CRYPT_PUBKEY_ALG_OID_GROUP_ID ont un indicateur défini dans le membre DWORD[0] du membre ExtraInfo.
Les OID de la courbe ECC nomment des clés publiques, par exemple, szOID_ECC_CURVE_P256 (« 1.2.840.10045.3.1.7 »), avoir 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 terminée par null de types de valeurs d’attribut RDN acceptables définis 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 zéro.
Les valeurs suivantes sont utilisées pour les indicateurs dans le membre ExtraInfo .
Valeur | Signification |
---|---|
|
Cet indicateur n’est plus utilisé.
Arrêtez le reformatage de la signature avant l’appel de la fonction CryptVerifySignature 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. |
pwszCNGAlgid
Chaîne d’identificateur d’algorithme passée 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.
#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
Le membre pwszCNGAlgid peut également être défini sur une valeur de chaîne qui n’est pas passée directement aux fonctions CNG. Le tableau suivant répertorie ces valeurs et leurs significations.
pwszCNGExtraAlgid
Chaîne d’algorithme supplémentaire, autre que la chaîne dans le membre pwszCNGAlgid , qui peut être passée 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 à passer aux fonctions CNG.
Pour les signatures ECC, ce membre est la valeur de chaîne de 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 nom de 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" ».
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | wincrypt.h |