Condividi tramite


CRYPT_OID_INFO struttura (wincrypt.h)

La struttura CRYPT_OID_INFO contiene informazioni su un identificatore di oggetto (OID). Queste strutture forniscono la relazione tra un identificatore OID, il relativo nome, il relativo gruppo e altre informazioni sull'OID. Queste strutture possono essere elencate usando la funzione CryptEnumOIDInfo . È possibile aggiungere nuovi CRYPT_OID_STRUCTURES usando la funzione CryptRegisterOIDInfo .

Sintassi

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;

Members

cbSize

Dimensione, in byte, della struttura.

pszOID

OID associato a queste informazioni OID.

pwszName

Nome visualizzato associato a un OID.

dwGroupId

Valore dell'identificatore di gruppo associato a queste informazioni OID.

Questo membro può essere uno degli identificatori di gruppo dwGroupId seguenti.

Valore Significato
CRYPT_ENCRYPT_ALG_OID_GROUP_ID
Algoritmi di crittografia
CRYPT_ENHKEY_USAGE_OID_GROUP_ID
Utilizzo avanzato delle chiavi
CRYPT_EXT_OR_ATTR_OID_GROUP_ID
Estensioni o attributi
CRYPT_HASH_ALG_OID_GROUP_ID
Algoritmi hash
CRYPT_POLICY_OID_GROUP_ID
Criteri
CRYPT_PUBKEY_ALG_OID_GROUP_ID
Algoritmi di chiave pubblica
CRYPT_RDN_ATTR_OID_GROUP_ID
Attributi RDN
CRYPT_SIGN_ALG_OID_GROUP_ID
Algoritmi di firma

DUMMYUNIONNAME

DUMMYUNIONNAME.dwValue

Valore numerico associato a queste informazioni OID. Questo membro viene usato con dwGroupId CRYPT_SIGN_ALG_OID_GROUP_ID.

DUMMYUNIONNAME.Algid

Identificatore dell'algoritmo associato a queste informazioni OID.

Questo membro si applica ai valori seguenti di 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

Questo membro non è implementato. È sempre impostato su zero.

ExtraInfo

Informazioni aggiuntive usate per trovare o registrare informazioni OID. Questo membro si applica ai valori seguenti di dwGroupId:

  • CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • CRYPT_SIGN_ALG_OID_GROUP_ID
  • CRYPT_RDN_ATTR_OID_GROUP_ID
Gli OID nel gruppo OID CRYPT_ENCRYPT_ALG_OID_GROUP_ID hanno una lunghezza di bit impostata per gli algoritmi AES nel membro DWORD[0] del membro ExtraInfo.

Gli ID nel gruppo CRYPT_PUBKEY_ALG_OID_GROUP_ID hanno un flag impostato nel membro DWORD[0] del membro ExtraInfo.

Gli OID nelle chiavi pubbliche del nome della curva ECC, ad esempio, szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), hanno un flag impostato nel membro DWORD[0] , BCRYPT_ECCKEY_BLOB un valore di campo dwMagic impostato nel membro DWORD[1] e una lunghezza bit in cui il valore cbKey BCRYPT_ECCKEY_BLOB equivale a dwBitLength / 8 + ((dwBitLength % 8) ? 1 : 0) impostato nel membro DWORD[2] del membro ExtraInfo.

Gli ID nel gruppo CRYPT_SIGN_ALG_OID_GROUP_ID hanno un identificatore dell'algoritmo di chiave pubblica impostato nel membro DWORD[0], un flag impostato nel membro DWORD[1] e un tipo di provider facoltativo impostato nel membro DWORD[2] del membro ExtraInfo.

Gli ID nel gruppo CRYPT_RDN_ATTR_OID_GROUP_ID hanno un elenco di tipi di valore dell'attributo RDN accettabili impostati in una matrice di valori DWORD nel membro ExtraInfo. Un elenco omesso implica una matrice di valori in cui il primo valore della matrice è CERT_RDN_PRINTABLE_STRING, il secondo valore della matrice è CERT_RDN_UNICODE_STRING e il terzo valore nella matrice è zero.

I valori seguenti vengono usati per i flag nel membro ExtraInfo .

Valore Significato
CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
Questo flag non viene più usato.

Arrestare la riformattazione della firma prima della chiamata della funzione CryptVerifySignature o dopo la chiamata alla funzione CryptSignHash .

CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
Omettere i parametri NULL durante la codifica.
CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG
La chiave pubblica viene usata solo per la crittografia.
CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG
La chiave pubblica viene usata solo per le firme.
CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG
Questo flag non viene più usato.

Includere i parametri dell'algoritmo di chiave pubblica nei parametri digestEncryptionAlgorithm per il messaggio PKCS #7.

pwszCNGAlgid

Stringa di identificatore dell'algoritmo passata alle funzioni CNG (le funzioni BCrypt* e NCrypt* definite in Bcrypt.h e Ncrypt.h). Le funzioni CNG usano stringhe di identificatore dell'algoritmo, ad esempio L"SHA1", anziché le costanti del tipo di dati ALG_ID , ad esempio CALG_SHA1. Windows Server 2003 e Windows XP: Questo membro non è disponibile.

Nota Il membro pwszCNGAlgid è disponibile solo se si include l'istruzione seguente nel codice.
 
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

Questo membro si applica ai valori seguenti di 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
Impostare il membro pwszCNGAlgid sulla stringa vuota, L"", per gli altri valori di dwGroupId.

Il membro pwszCNGAlgid può anche essere impostato su un valore stringa che non viene passato direttamente alle funzioni CNG. La tabella seguente elenca questi valori e i relativi significati.

Valore Significato
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
L'algoritmo di curva ECC viene ottenuto dai parametri codificati dell'algoritmo OID.
CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM
L'algoritmo di wrapping della chiave viene ottenuto dai parametri codificati dell'algoritmo OID.
CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM
L'algoritmo hash viene ottenuto dai parametri codificati dell'algoritmo OID.
CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM
L'algoritmo hash di generazione della maschera PKCS #1 v2.1 viene ottenuto dai parametri codificati dell'algoritmo OID.
CRYPT_OID_INFO_NO_SIGN_ALGORITHM
Un algoritmo di chiave pubblica che indica che il valore della firma è un hash senza segno.
CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM
L'algoritmo hash di riempimento RSAES-OAEP viene ottenuto dai parametri codificati dell'algoritmo OID.

pwszCNGExtraAlgid

Stringa di algoritmo aggiuntiva, diversa dalla stringa nel membro pwszCNGAlgid , che può essere passata alle funzioni CNG (le funzioni BCrypt* e NCrypt* definite in Bcrypt.h e Ncrypt.h).

Windows Server 2003 e Windows XP: Questo membro non è disponibile.

Nota Questo membro è disponibile solo se si include l'istruzione seguente nel codice.
 
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

Per gli algoritmi di firma (CRYPT_SIGN_ALG_OID_GROUP_ID), questo membro è la stringa dell'algoritmo di chiave pubblica da passare alle funzioni CNG.

Per le firme ECC, questo membro è il valore speciale CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM stringa.

Per le firme non firmate, questo membro è il valore speciale CRYPT_OID_INFO_NO_SIGN_ALGORITHM stringa.

Per le chiavi pubbliche del nome della curva ECC, ad esempio, szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), questo è il valore speciale CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM stringa.

Per gli altri valori di dwGroupId, impostare il membro pwszCNGExtraAlgid sulla stringa vuota L"".

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione wincrypt.h

Vedi anche

CryptFindOIDInfo

CryptRegisterOIDInfo

CryptUnregisterOIDInfo