struktur CRYPT_OID_INFO (wincrypt.h)
Struktur CRYPT_OID_INFO berisi informasi tentang pengidentifikasi objek (OID). Struktur ini memberikan hubungan antara pengidentifikasi OID, namanya, grupnya, dan informasi lain tentang OID. Struktur ini dapat dicantumkan dengan menggunakan fungsi CryptEnumOIDInfo . CRYPT_OID_STRUCTURES baru dapat ditambahkan dengan menggunakan fungsi CryptRegisterOIDInfo .
Sintaks
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;
Anggota
cbSize
Ukuran, dalam byte, dari struktur ini.
pszOID
OID yang terkait dengan informasi OID ini.
pwszName
Nama tampilan yang terkait dengan OID.
dwGroupId
Nilai pengidentifikasi grup yang terkait dengan informasi OID ini.
Anggota ini bisa menjadi salah satu pengidentifikasi grup dwGroupId berikut.
DUMMYUNIONNAME
DUMMYUNIONNAME.dwValue
Nilai numerik yang terkait dengan informasi OID ini. Anggota ini digunakan dengan dwGroupId CRYPT_SIGN_ALG_OID_GROUP_ID.
DUMMYUNIONNAME.Algid
Pengidentifikasi algoritma yang terkait dengan informasi OID ini.
Anggota ini berlaku untuk nilai dwGroupId berikut:
- 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
Anggota ini tidak diimplementasikan. Ini selalu diatur ke nol.
ExtraInfo
Informasi tambahan yang digunakan untuk menemukan atau mendaftarkan informasi OID. Anggota ini berlaku untuk nilai dwGroupId berikut:
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
- CRYPT_RDN_ATTR_OID_GROUP_ID
OID dalam grup CRYPT_PUBKEY_ALG_OID_GROUP_ID memiliki bendera yang ditetapkan di anggota DWORD[0] anggota ExtraInfo.
OID dalam nama kurva ECC kunci publik, misalnya, szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), memiliki bendera yang diatur dalam anggota DWORD[0], nilai bidang BCRYPT_ECCKEY_BLOB dwMagic yang ditetapkan dalam anggota DWORD[1], dan panjang bit di mana nilai BCRYPT_ECCKEY_BLOB cbKey sama dengan dwBitLength / 8 + ((dwBitLength % 8) ? 1 : 0) ditetapkan dalam anggota DWORD[2] anggota ExtraInfo.
OID dalam grup CRYPT_SIGN_ALG_OID_GROUP_ID memiliki pengidentifikasi algoritma kunci publik yang diatur dalam anggota DWORD[0], bendera yang diatur dalam anggota DWORD[1], dan jenis penyedia opsional yang diatur dalam anggota DWORD[2] anggota ExtraInfo.
OID dalam grup CRYPT_RDN_ATTR_OID_GROUP_ID memiliki daftar jenis nilai atribut RDN yang dapat diterima null yang ditetapkan dalam array nilai DWORD di anggota ExtraInfo. Daftar yang dihilangkan menyiratkan array nilai di mana nilai pertama dalam array adalah CERT_RDN_PRINTABLE_STRING, nilai kedua dalam array adalah CERT_RDN_UNICODE_STRING, dan nilai ketiga dalam array adalah nol.
Nilai berikut digunakan untuk bendera di anggota ExtraInfo .
Nilai | Makna |
---|---|
|
Bendera ini tidak lagi digunakan.
Hentikan pemformatan ulang tanda tangan sebelum fungsi CryptVerifySignature dipanggil atau setelah fungsi CryptSignHash dipanggil. |
|
Hilangkan parameter NULL saat pengodean. |
|
Kunci publik hanya digunakan untuk enkripsi. |
|
Kunci umum hanya digunakan untuk tanda tangan. |
|
Bendera ini tidak lagi digunakan.
Sertakan parameter algoritma kunci publik dalam parameter digestEncryptionAlgorithm untuk pesan PKCS #7. |
pwszCNGAlgid
String pengidentifikasi algoritma diteruskan ke fungsi CNG (fungsi BCrypt* dan NCrypt* yang ditentukan dalam Bcrypt.h dan Ncrypt.h). Fungsi CNG menggunakan string pengidentifikasi algoritma, seperti L"SHA1", alih-alih konstanta jenis data ALG_ID , seperti CALG_SHA1. Windows Server 2003 dan Windows XP: Anggota ini tidak tersedia.
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Anggota ini berlaku untuk nilai dwGroupId berikut:
- CRYPT_HASH_ALG_OID_GROUP_ID
- CRYPT_ENCRYPT_ALG_OID_GROUP_ID
- CRYPT_PUBKEY_ALG_OID_GROUP_ID
- CRYPT_SIGN_ALG_OID_GROUP_ID
Anggota pwszCNGAlgid juga dapat diatur ke nilai string yang tidak diteruskan langsung ke fungsi CNG. Tabel berikut mencantumkan nilai-nilai ini dan maknanya.
pwszCNGExtraAlgid
String algoritma tambahan, selain string di anggota pwszCNGAlgid , yang dapat diteruskan ke fungsi CNG (fungsi BCrypt* dan NCrypt* yang ditentukan dalam Bcrypt.h dan Ncrypt.h).
Windows Server 2003 dan Windows XP: Anggota ini tidak tersedia.
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Untuk algoritma tanda tangan (CRYPT_SIGN_ALG_OID_GROUP_ID), anggota ini adalah string algoritma kunci publik untuk diteruskan ke fungsi CNG.
Untuk tanda tangan ECC, anggota ini adalah nilai string CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM khusus.
Untuk tanda tangan yang tidak ditandatangani, anggota ini adalah nilai string CRYPT_OID_INFO_NO_SIGN_ALGORITHM khusus.
Untuk kunci publik nama kurva ECC, misalnya, szOID_ECC_CURVE_P256 ("1.2.840.10045.3.1.7"), ini adalah nilai string CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM khusus.
Untuk nilai dwGroupId lainnya, atur anggota pwszCNGExtraAlgid ke string kosong, L"".
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Header | wincrypt.h |