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.

Valeur Signification
CRYPT_ENCRYPT_ALG_OID_GROUP_ID
Algorithmes de chiffrement
CRYPT_ENHKEY_USAGE_OID_GROUP_ID
Utilisations améliorées des clés
CRYPT_EXT_OR_ATTR_OID_GROUP_ID
Extensions ou attributs
CRYPT_HASH_ALG_OID_GROUP_ID
Algorithmes de hachage
CRYPT_POLICY_OID_GROUP_ID
Stratégies
CRYPT_PUBKEY_ALG_OID_GROUP_ID
Algorithmes à clé publique
CRYPT_RDN_ATTR_OID_GROUP_ID
Attributs RDN
CRYPT_SIGN_ALG_OID_GROUP_ID
Algorithmes de signature

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_ENCRYPT_ALG_OID_GROUP_ID OID 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 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
CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
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 .

CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
Omettez les paramètres NULL lors de l’encodage.
CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG
La clé publique est utilisée uniquement pour le chiffrement.
CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG
La clé publique est utilisée uniquement pour les signatures.
CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG
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.

Note 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 passée directement aux fonctions CNG. Le tableau suivant répertorie ces valeurs et leurs significations.

Valeur Signification
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
L’algorithme de courbe ECC est obtenu à partir des paramètres encodé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 encodé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.

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.

Note Ce membre est disponible uniquement si vous incluez l’instruction suivante dans votre code.
 
#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

Voir aussi

CryptFindOIDInfo

CryptRegisterOIDInfo

CryptUnregisterOIDInfo