Bagikan melalui


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.

Nilai Makna
CRYPT_ENCRYPT_ALG_OID_GROUP_ID
Algoritma enkripsi
CRYPT_ENHKEY_USAGE_OID_GROUP_ID
Penggunaan kunci yang disempurnakan
CRYPT_EXT_OR_ATTR_OID_GROUP_ID
Ekstensi atau atribut
CRYPT_HASH_ALG_OID_GROUP_ID
Algoritma hash
CRYPT_POLICY_OID_GROUP_ID
Kebijakan
CRYPT_PUBKEY_ALG_OID_GROUP_ID
Algoritma kunci publik
CRYPT_RDN_ATTR_OID_GROUP_ID
Atribut RDN
CRYPT_SIGN_ALG_OID_GROUP_ID
Algoritma tanda tangan

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 OID CRYPT_ENCRYPT_ALG_OID_GROUP_ID memiliki panjang bit yang ditetapkan untuk algoritma AES di anggota DWORD[0] dari anggota ExtraInfo.

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
CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG
Bendera ini tidak lagi digunakan.

Hentikan pemformatan ulang tanda tangan sebelum fungsi CryptVerifySignature dipanggil atau setelah fungsi CryptSignHash dipanggil.

CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG
Hilangkan parameter NULL saat pengodean.
CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG
Kunci publik hanya digunakan untuk enkripsi.
CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG
Kunci umum hanya digunakan untuk tanda tangan.
CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG
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.

Catatan Anggota pwszCNGAlgid hanya tersedia jika Anda menyertakan pernyataan berikut dalam kode Anda.
 
#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
Atur anggota pwszCNGAlgid ke string kosong, L"", untuk nilai dwGroupId lainnya.

Anggota pwszCNGAlgid juga dapat diatur ke nilai string yang tidak diteruskan langsung ke fungsi CNG. Tabel berikut mencantumkan nilai-nilai ini dan maknanya.

Nilai Makna
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
Algoritma kurva ECC diperoleh dari parameter algoritma OID yang dikodekan.
CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM
Algoritma pembungkus kunci diperoleh dari parameter algoritma OID yang dikodekan.
CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM
Algoritma hash diperoleh dari parameter algoritma OID yang dikodekan.
CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM
Algoritma hash pembuatan masker PKCS #1 v2.1 diperoleh dari parameter yang dikodekan dari algoritma OID.
CRYPT_OID_INFO_NO_SIGN_ALGORITHM
Algoritma kunci publik yang menunjukkan nilai tanda tangan adalah hash yang tidak ditandatangani.
CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM
Algoritma hash padding RSAES-OAEP diperoleh dari parameter yang dikodekan dari algoritma OID.

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.

Catatan Anggota ini hanya tersedia jika Anda menyertakan pernyataan berikut dalam kode Anda.
 
#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

Lihat juga

CryptFindOIDInfo

CryptRegisterOIDInfo

CryptUnregisterOIDInfo