Fungsi CryptFindOIDInfo (wincrypt.h)

Fungsi CryptFindOIDInfo mengambil struktur CRYPT_OID_INFO pertama yang telah ditentukan atau terdaftar yang cocok dengan jenis kunci dan kunci tertentu. Pencarian dapat dibatasi pada pengidentifikasi objek (OID) dalam grup OID tertentu.

Gunakan CryptEnumOIDInfo untuk mencantumkan semua atau subset struktur CRYPT_OID_INFO yang dipilih. Struktur CRYPT_OID_INFO baru dapat didaftarkan dengan menggunakan CryptRegisterOIDInfo. OID yang terdaftar pengguna dapat dihapus dari daftar OID terdaftar dengan menggunakan CryptUnregisterOIDInfo.

OID baru dapat ditempatkan dalam daftar OID terdaftar baik sebelum atau sesudah entri yang telah ditentukan sebelumnya. Karena CryptFindOIDInfo mengembalikan kunci pertama pada daftar yang cocok dengan kriteria pencarian, OID yang baru terdaftar ditempatkan sebelum entri OID yang telah ditentukan sebelumnya dengan kunci yang sama mengambil alih entri yang telah ditentukan sebelumnya.

Sintaks

PCCRYPT_OID_INFO CryptFindOIDInfo(
  [in] DWORD dwKeyType,
  [in] void  *pvKey,
  [in] DWORD dwGroupId
);

Parameter

[in] dwKeyType

Menentukan jenis kunci yang akan digunakan saat menemukan informasi OID.

Parameter ini bisa menjadi salah satu jenis kunci berikut.

CRYPT_OID_INFO_OID_KEY

pvKey adalah alamat string ANSI yang dihentikan null yang berisi string OID untuk ditemukan.

CRYPT_OID_INFO_NAME_KEY

pvKey adalah alamat string Unicode yang dihentikan null yang berisi nama untuk ditemukan.

CRYPT_OID_INFO_ALGID_KEY

pvKey adalah alamat variabel ALG_ID . ALG_IDberikut didukung:

Algoritma Hash:

Algoritma Enkripsi Simetris:

Algoritma Kunci Umum:

Algoritma yang tidak tercantum didukung dengan menggunakan Cryptography API: Next Generation (CNG) saja; sebagai gantinya, gunakan CRYPT_OID_INFO_CNG_ALGID_KEY.

CRYPT_OID_INFO_SIGN_KEY

pvKey adalah alamat array dua ALG_IDdi mana elemen pertama berisi pengidentifikasi algoritma hash dan elemen kedua berisi pengidentifikasi algoritma kunci publik.

Kombinasi ALG_ID berikut didukung.

Pengidentifikasi algoritma tanda tangan Pengidentifikasi algoritma hash
CALG_RSA_SIGN
CALG_SHA1
CALG_MD5
CALG_MD4
CALG_MD2
CALG_DSS_SIGN
CALG_SHA1
CALG_NO_SIGN
CALG_SHA1
CALG_NO_SIGN
 

Algoritma yang tidak tercantum hanya didukung melalui CNG; sebagai gantinya, gunakan CRYPT_OID_INFO_CNG_SIGN_KEY.

CRYPT_OID_INFO_CNG_ALGID_KEY

pvKey adalah alamat string Unicode null-terminated yang berisi pengidentifikasi algoritma CNG untuk ditemukan. Ini bisa menjadi salah satu Pengidentifikasi Algoritma CNG yang telah ditentukan sebelumnya atau pengidentifikasi algoritma terdaftar lainnya.

Windows Server 2003 R2 Windows Server 2003 : Jenis kunci ini tidak didukung.

CRYPT_OID_INFO_CNG_SIGN_KEY

pvKey adalah alamat array dari dua penunjuk string Unicode yang dihentikan null di mana string pertama berisi pengidentifikasi algoritma CNG hash dan string kedua berisi pengidentifikasi algoritma CNG kunci publik. Ini dapat berasal dari Pengidentifikasi Algoritma CNG yang telah ditentukan sebelumnya atau pengidentifikasi algoritma terdaftar lainnya.

Windows Server 2003 R2 Windows Server 2003 : Jenis kunci ini tidak didukung.

Secara opsional, jenis kunci berikut dapat ditentukan dalam parameter dwKeyType dengan menggunakan operator OR logis (|).

Nilai Makna
CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
Lompati kunci publik di grup CRYPT_PUBKEY_ALG_OID_GROUP_ID yang secara eksplisit ditandai dengan bendera CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG.
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Lompati kunci publik dalam grup CRYPT_PUBKEY_ALG_OID_GROUP_ID yang secara eksplisit ditandai dengan bendera CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG.

[in] pvKey

Alamat buffer yang berisi informasi pencarian tambahan. Parameter ini tergantung pada nilai parameter dwKeyType . Untuk informasi selengkapnya, lihat tabel di bawah dwKeyType.

[in] dwGroupId

Pengidentifikasi grup yang akan digunakan saat menemukan informasi OID. Mengatur parameter ini ke nol mencari semua grup sesuai dengan parameter dwKeyType . Jika tidak, hanya dwGroupId yang ditunjukkan yang dicari.

Untuk informasi tentang kode yang mencantumkan informasi OID menurut pengidentifikasi grup, lihat CryptEnumOIDInfo.

Secara opsional, bendera berikut dapat ditentukan dalam parameter dwGroupId dengan menggunakan operator OR logis (|).

Nilai Makna
CRYPT_OID_DISABLE_SEARCH_DS_FLAG
Menonaktifkan pencarian server direktori.
 

Panjang bit yang digeser ke kiri 16 bit dapat ditentukan dalam parameter dwGroupId dengan menggunakan operator OR logis (|). Untuk informasi selengkapnya, lihat Keterangan.

Nilai kembali

Mengembalikan penunjuk ke struktur konstan jenis CRYPT_OID_INFO. Pointer yang dikembalikan tidak boleh dibebaskan. Ketika kunci dan grup yang ditentukan tidak ditemukan, NULL dikembalikan.

Keterangan

Fungsi CryptFindOIDInfo melakukan pencarian di direktori aktif untuk mengambil nama OID yang mudah diingat dalam kondisi berikut:

  • Jenis kunci dalam parameter dwKeyType diatur ke CRYPT_OID_INFO_OID_KEY atau CRYPT_OID_INFO_NAME_KEY.
  • Tidak ada pengidentifikasi grup yang ditentukan dalam parameter dwGroupId atau GroupID mengacu pada OID EKU, OID kebijakan, atau OID templat.
Pengambilan jaringan nama yang mudah diingat dapat ditekan dengan memanggil fungsi dengan bendera CRYPT_OID_DISABLE_SEARCH_DS_FLAG .

Panjang bit yang digeser ke kiri 16 bit dapat ditentukan dalam parameter dwGroupId dengan menggunakan operator OR logis (|). Ini hanya berlaku untuk entri grup CRYPT_ENCRYPT_ALG_OID_GROUP_ID yang memiliki panjang bit yang ditentukan dalam anggota ExtraInfo dari struktur CRYPT_OID_INFO . Saat ini, hanya algoritma enkripsi AES yang memiliki ini. Konstanta CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT dapat digunakan untuk melakukan pergeseran. Misalnya, untuk menemukan informasi OID untuk BCRYPT_AES_ALGORITHM dengan panjang bit sama dengan 192, panggil CryptFindOIDInfo sebagai berikut.


DWORD dwBitLen = 192;

PCCRYPT_OID_INFO pOIDInfo = CryptFindOIDInfo(
     CRYPT_OID_INFO_CNG_ALGID_KEY,
     (void *) BCRYPT_AES_ALGORITHM,
     CRYPT_ENCRYPT_ALG_OID_GROUP_ID |
         (dwBitLen << CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT)
     );


Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll

Lihat juga

ALG_ID

CRYPT_ALGORITHM_IDENTIFIER

CRYPT_OID_INFO

CryptRegisterOIDInfo

CryptUnregisterOIDInfo

Fungsi Dukungan OID