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.
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 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 |
---|---|
|
Questo flag non viene più usato.
Arrestare la riformattazione della firma prima della chiamata della funzione CryptVerifySignature o dopo la chiamata alla funzione CryptSignHash . |
|
Omettere i parametri NULL durante la codifica. |
|
La chiave pubblica viene usata solo per la crittografia. |
|
La chiave pubblica viene usata solo per le firme. |
|
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.
#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
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.
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.
#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 |