Fungsi CertGetCertificateContextProperty (wincrypt.h)
Fungsi CertGetCertificateContextProperty mengambil informasi yang terkandung dalam properti yang diperluas dari konteks sertifikat .
Sintaksis
BOOL CertGetCertificateContextProperty(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwPropId,
[out] void *pvData,
[in, out] DWORD *pcbData
);
Parameter
[in] pCertContext
Penunjuk ke struktur
[in] dwPropId
Properti yang akan diambil. Pengidentifikasi yang saat ini ditentukan dan jenis data yang akan dikembalikan dalam pvData
CERT_ACCESS_STATE_PROP_ID
Jenis data
Mengembalikan nilai DWORD
CERT_AIA_URL_RETRIEVED_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_ARCHIVED_KEY_HASH_PROP_ID
Jenis data
Mengembalikan kunci terenkripsi yang disimpan sebelumnya hash untuk konteks sertifikat.
CERT_ARCHIVED_PROP_ID
Jenis data
Menunjukkan sertifikat dilewati selama enumerasi. Sertifikat dengan kumpulan properti ini ditemukan dengan operasi pencarian eksplisit, seperti yang digunakan untuk menemukan sertifikat dengan hash tertentu atau nomor seri. Tidak ada data dalam pvData
CERT_AUTHORITY_INFO_ACCESS_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_AUTO_ENROLL_PROP_ID
Jenis data
Mengembalikan string Unicode null-terminated yang menamai jenis sertifikat yang sertifikatnya telah didaftarkan secara otomatis.
CERT_AUTO_ENROLL_RETRY_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_BACKED_UP_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_CA_DISABLE_CRL_PROP_ID
Jenis data
Menonaktifkan
CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Jenis data
Berisi daftar URL protokol status sertifikat online (OCSP)
CERT_CROSS_CERT_DIST_POINTS_PROP_ID
Jenis data
Lokasi sertifikat silang. Saat ini, pengidentifikasi ini hanya berlaku untuk sertifikat dan bukan untuk CRL atau daftar kepercayaan sertifikat (CTL).
Array BYTE
CERT_CTL_USAGE_PROP_ID
Jenis data
Mengembalikan array byte yang berisi struktur CTL_USAGE yang dikodekan ASN.1.
CERT_DATE_STAMP_PROP_ID
Jenis datapvData
Waktu ketika sertifikat ditambahkan ke penyimpanan.
CERT_DESCRIPTION_PROP_ID
Jenis data
Mengembalikan properti yang ditampilkan oleh UI sertifikat. Properti ini memungkinkan pengguna untuk menjelaskan penggunaan sertifikat.
CERT_EFS_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_ENHKEY_USAGE_PROP_ID
Jenis data
Mengembalikan array byte yang berisi struktur CERT_ENHKEY_USAGE yang dikodekan ASN.1. Struktur ini berisi array pengidentifikasi objek Penggunaan Kunci yang Ditingkatkan (OID), yang masing-masing menentukan penggunaan sertifikat yang valid.
CERT_ENROLLMENT_PROP_ID
Jenis data
Informasi pendaftaran permintaan tertunda yang berisi RequestID, CADNSName, CAName, dan DisplayName. Format data didefinisikan sebagai berikut:
Byte | Isi |
---|---|
4 byte pertama | ID permintaan tertunda |
4 byte berikutnya | Ukuran CADNSName, dalam karakter, termasuk karakter null yang mengakhiri, diikuti oleh string CADNSName dengan mengakhiri karakter null |
4 byte berikutnya | Ukuran CAName, dalam karakter, termasuk karakter null yang dihentikan, diikuti oleh string CAName dengan mengakhiri karakter null |
4 byte berikutnya | Ukuran DisplayName, dalam karakter, termasuk karakter null yang mengakhiri, diikuti dengan string DisplayName dengan mengakhiri karakter null |
CERT_EXTENDED_ERROR_INFO_PROP_ID
Jenis data
Mengembalikan string karakter Unicode yang dihentikan null yang berisi informasi kesalahan yang diperluas untuk konteks sertifikat.
CERT_FORTEZZA_DATA_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_FRIENDLY_NAME_PROP_ID
Jenis data
Mengembalikan string karakter Unicode null-terminated yang berisi nama tampilan untuk sertifikat.
CERT_HASH_PROP_ID
Jenis data
Mengembalikan hash SHA1. Jika hash tidak ada, hash dihitung dengan menggunakan fungsi
CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID
Jenis data
Mengembalikan HCRYPTPROV
CERT_HCRYPTPROV_TRANSFER_PROP_ID
Mengembalikan handel kunci API Kriptografi (CAPI) yang terkait dengan sertifikat. Pemanggil bertanggung jawab untuk membebaskan handel. Ini tidak akan dibebaskan ketika konteks dibebaskan. Nilai properti dihapus setelah dikembalikan. Jika Anda memanggil properti ini pada konteks yang memiliki kunci CNG, CRYPT_E_NOT_FOUND dikembalikan.
CERT_IE30_RESERVED_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
Jenis data
Hash MD5 dari kunci umum
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
Jenis data
Hash MD5 dari nama penerbit dan nomor seri dari sertifikat ini.
CERT_KEY_CONTEXT_PROP_ID
Jenis data pvData : Penunjuk ke struktur CERT_KEY_CONTEXT.
Mengembalikan struktur CERT_KEY_CONTEXT.
CERT_KEY_IDENTIFIER_PROP_ID
Jenis data
Jika tidak ada, cari ekstensi szOID_SUBJECT_KEY_IDENTIFIER. Jika gagal, hash SHA1 dilakukan pada subjectPublicKeyInfo sertifikat anggota untuk menghasilkan nilai pengidentifikasi.
CERT_KEY_PROV_HANDLE_PROP_ID
Jenis data
Mengembalikan handel penyedia yang diperoleh dari CERT_KEY_CONTEXT_PROP_ID.
CERT_KEY_PROV_INFO_PROP_ID
Jenis data pvData: Penunjuk ke struktur CRYPT_KEY_PROV_INFO.
Mengembalikan penunjuk ke struktur CRYPT_KEY_PROV_INFO.
CERT_KEY_SPEC_PROP_ID
Jenis data
Mengembalikan nilai DWORD
CERT_MD5_HASH_PROP_ID
Jenis data
Mengembalikan hash MD5. Jika hash tidak ada, hash dihitung dengan menggunakan fungsi
CERT_NCRYPT_KEY_HANDLE_PROP_ID
Jenis data pvData: Penunjuk ke jenis data NCRYPT_KEY_HANDLE.
Mengembalikan pilihan CERT_NCRYPT_KEY_SPEC jika berlaku.
CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID
Mengembalikan handel kunci CNG yang terkait dengan sertifikat. Pemanggil bertanggung jawab untuk membebaskan handel. Ini tidak akan dibebaskan ketika konteks dibebaskan. Nilai properti dihapus setelah dikembalikan. Jika Anda memanggil properti ini pada konteks yang memiliki kunci warisan (CAPI), CRYPT_E_NOT_FOUND dikembalikan.
CERT_NEW_KEY_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_NEXT_UPDATE_LOCATION_PROP_ID
Jenis data
Mengembalikan struktur CERT_ALT_NAME_INFO yang dikodekan ASN.1.
CERT_NEXT_UPDATE_LOCATION_PROP_ID saat ini hanya digunakan dengan CTL.
CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_OCSP_CACHE_PREFIX_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_OCSP_RESPONSE_PROP_ID
Jenis data
Mengembalikan respons OCSP yang dikodekan untuk sertifikat ini.
CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Jenis datapvData
Mengembalikan string L"<PUBKEY><BITLENGTH>"
yang mewakili algoritma kunci publik sertifikat dan panjang bit. Algoritma <PUBKEY>
berikut didukung:
- L"RSA" (BCRYPT_RSA_ALGORITHM)
- L"DSA" (BCRYPT_DSA_ALGORITHM)
- L"ECDSA" (SSL_ECDSA_ALGORITHM)
Windows 8 dan Windows Server 2012: Dukungan untuk properti ini dimulai.
CERT_PUBKEY_ALG_PARA_PROP_ID
Jenis data
Untuk kunci publik yang mendukung pewarisan parameter algoritma, mengembalikan parameter Algoritma PublicKey yang dikodekan ASN.1. Untuk Standar Tanda Tangan Digital (DSS)
CERT_PUBKEY_HASH_RESERVED_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_PVK_FILE_PROP_ID
Jenis data
Mengembalikan string karakter lebar Unicode null-terminated yang berisi nama file yang berisi kunci privat yang terkait dengan kunci umum sertifikat.
CERT_RENEWAL_PROP_ID
Jenis data
Mengembalikan hash sertifikat yang diperbarui.
CERT_REQUEST_ORIGINATOR_PROP_ID
Jenis data
Mengembalikan string Unicode null-terminated yang berisi nama komputer DNS untuk asal permintaan konteks sertifikat.
CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID
Jenis data
Mengembalikan penunjuk ke struktur CERT_POLICIES_INFO yang dikodekan yang berisi kebijakan aplikasi sertifikat akar untuk konteks. Properti ini dapat didekodekan dengan menggunakan fungsi
CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_SHA1_HASH_PROP_ID
Jenis data
Mengembalikan hash SHA1. Jika hash tidak ada, hash dihitung dengan menggunakan fungsi
CERT_SHA1_SHA256_HASH_PROP_ID
Jenis data
Mengembalikan kombinasi hash SHA1 dan hash SHA256. Jika hash tidak ada, hash dihitung dengan menggunakan fungsi
CERT_SHA256_HASH_PROP_ID
Jenis data
Mengembalikan hash SHA256. Jika hash tidak ada, hash dihitung dengan menggunakan fungsi
CERT_SIGN_HASH_CNG_ALG_PROP_ID
Jenis datapvData
Mengembalikan string L"<SIGNATURE>/<HASH>"
yang mewakili tanda tangan sertifikat. Nilai <SIGNATURE>
mengidentifikasi algoritma kunci publik CNG. Algoritma berikut didukung:
- L"RSA" (BCRYPT_RSA_ALGORITHM)
- L"DSA" (BCRYPT_DSA_ALGORITHM)
- L"ECDSA" (SSL_ECDSA_ALGORITHM)
Nilai <HASH>
mengidentifikasi algoritma hash CNG. Algoritma berikut didukung:
- L"MD5" (BCRYPT_MD5_ALGORITHM)
- L"SHA1" (BCRYPT_SHA1_ALGORITHM)
- L"SHA256" (BCRYPT_SHA256_ALGORITHM)
- L"SHA384" (BCRYPT_SHA384_ALGORITHM)
- L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Berikut ini adalah contoh umum:
- L"RSA/SHA1"
- L"RSA/SHA256"
- L"ECDSA/SHA256"
Windows 7 dan Windows Server 2008 R2: Dukungan untuk properti ini dimulai.
CERT_SIGNATURE_HASH_PROP_ID
Jenis data
Mengembalikan hash tanda tangan. Jika hash tidak ada, hash dihitung dengan menggunakan fungsi
CERT_SMART_CARD_DATA_PROP_ID
Jenis data
Mengembalikan penunjuk ke data kartu pintar yang dikodekan. Sebelum memanggil CertGetCertificateContextProperty, Anda dapat menggunakan konstanta ini untuk mengambil sertifikat kartu pintar dengan menggunakan fungsi CertFindCertificateInStore dengan parameter pvFindPara diatur ke CERT_SMART_CARD_DATA_PROP_ID dan parameter dwFindType diatur ke CERT_FIND_PROPERTY.
CERT_SMART_CARD_ROOT_INFO_PROP_ID
Jenis data
Mengembalikan penunjuk ke struktur CRYPT_SMART_CARD_ROOT_INFO yang dikodekan.
CERT_SOURCE_LOCATION_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_SOURCE_URL_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_SUBJECT_DISABLE_CRL_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_SUBJECT_INFO_ACCESS_PROP_ID
Jenis data
Mengembalikan ekstensi akses informasi subjek dari konteks sertifikat sebagai struktur CERT_SUBJECT_INFO_ACCESS yang dikodekan.
CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
Jenis data
Mengembalikan hash MD5 dari nama subjek yang dikodekan dari konteks sertifikat.
CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID
Pengidentifikasi ini dicadangkan.
CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID
Jenis data
Mengembalikan panjang, dalam bit, dari kunci publik dalam sertifikat.
Windows 8 dan Windows Server 2012: Dukungan untuk properti ini dimulai.
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
Jenis data
Mengembalikan hash MD5 dari kunci umum sertifikat ini.
Untuk semua pengidentifikasi properti yang ditentukan pengguna,
Untuk informasi selengkapnya tentang setiap pengidentifikasi properti, lihat dokumentasi tentang parameter dwPropId
[out] pvData
Pointer ke buffer untuk menerima data seperti yang ditentukan oleh dwPropId. Struktur yang ditujukkan oleh anggota struktur yang dikembalikan juga dikembalikan mengikuti struktur dasar. Oleh karena itu, ukuran yang terkandung dalam pcbData sering melebihi ukuran struktur dasar.
Parameter ini dapat NULL untuk mengatur ukuran informasi untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil DataPanjang Tidak Diketahui .
[in, out] pcbData
Penunjuk ke nilai DWORD
Untuk mendapatkan ukuran buffer yang diperlukan pada waktu proses, teruskan
Nota
Saat memproses data yang dikembalikan dalam buffer, aplikasi harus menggunakan ukuran aktual data yang dikembalikan. Ukuran aktual bisa sedikit lebih kecil dari ukuran buffer yang ditentukan pada input. (Pada input, ukuran buffer biasanya ditentukan cukup besar untuk memastikan bahwa data output terbesar yang mungkin cocok dalam buffer.) Pada output, variabel yang diacu oleh parameter ini diperbarui untuk mencerminkan ukuran aktual data yang disalin ke buffer.
Mengembalikan nilai
Jika fungsi berhasil, fungsi mengembalikan TRUE.
Jika fungsi gagal, fungsi mengembalikan FALSE. Untuk informasi kesalahan yang diperluas, panggil GetLastError.
Beberapa kemungkinan kode kesalahan berikut:
Mengembalikan kode | Deskripsi |
---|---|
CRYPT_E_NOT_FOUND | Sertifikat tidak memiliki properti yang ditentukan. |
ERROR_MORE_DATA | Jika buffer yang ditentukan oleh parameter |
Kesalahan dari fungsi yang disebut CryptHashCertificate dapat disebarluaskan ke fungsi ini.
Komentar
Properti tidak disimpan di dalam sertifikat. Biasanya, sertifikat dikaitkan dengan sertifikat setelah respons sertifikat diterima lalu disimpan dengan sertifikat di penyimpanan. Untuk alasan keamanan, kami sarankan Anda memvalidasi nilai properti sebelum menyimpannya dan Anda hanya menyimpan properti informasi seperti nilai CERT_FRIENDLY_NAME_PROP_ID di penyimpanan pengguna. Semua tipe properti lainnya harus disimpan di penyimpanan komputer lokal.
Kode Anda dapat menggunakan makro untuk mengevaluasi kelas hash untuk konteks sertifikat. Untuk informasi selengkapnya, lihat CertSetCertificateContextProperty.
Contoh
Untuk contoh yang menggunakan fungsi ini, lihat Contoh Program C: Mendapatkan dan Mengatur Properti Sertifikat dan Contoh Program C: Mencantumkan Sertifikat di Toko.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Platform Target |
Windows |
Header |
wincrypt.h |
Pustaka |
Crypt32.lib |
DLL |
Crypt32.dll |
Lihat juga
CertSetCertificateContextProperty
Fungsi Properti