Fungsi CertSetCRLContextProperty (wincrypt.h)

Fungsi CertSetCRLContextProperty menetapkan properti yang diperluas untuk konteks daftar pencabutan sertifikat (CRL) yang ditentukan.

Sintaks

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Parameter

[in] pCrlContext

Penunjuk ke struktur CRL_CONTEXT .

[in] dwPropId

Mengidentifikasi properti yang akan diatur. Nilai dwPropId menentukan jenis dan konten parameter pvData . Pengidentifikasi yang ditentukan saat ini dan jenis data yang akan dikembalikan dalam pvData tercantum dalam tabel berikut.

Biasanya, hanya properti berikut yang diatur:

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
Nilai Makna
CERT_ACCESS_STATE_PROP_ID
Jenis data untuk pvData: penunjuk ke DWORD

Menetapkan nilai DWORD yang menunjukkan apakah operasi tulis ke sertifikat dipertahankan. Nilai DWORD tidak diatur jika sertifikat berada di penyimpanan memori atau di penyimpanan berbasis registri yang dibuka sebagai baca-saja.

CERT_ARCHIVED_PROP_ID
Jenis data untuk pvData: NULL

Menunjukkan sertifikat dilewati selama enumerasi. Sertifikat dengan set properti ini ditemukan dengan operasi pencarian eksplisit, seperti yang digunakan untuk menemukan sertifikat dengan hash tertentu atau nomor seri. Tidak ada data dalam pvData yang terkait dengan properti ini.

CERT_AUTO_ENROLL_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur string Unicode yang dihentikan null dengan nama jenis sertifikat yang sertifikatnya telah didaftarkan secara otomatis.

CERT_CTL_USAGE_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur array byte yang berisi struktur CTL_USAGE yang dikodekan Abstract Syntax Notation One (ASN.1).

CERT_DESCRIPTION_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur properti yang ditampilkan oleh antarmuka pengguna sertifikat. Properti ini memungkinkan pengguna untuk menjelaskan penggunaan sertifikat.

CERT_ENHKEY_USAGE_PROP_ID
Jenis data untuk pvData:

Mengatur array byte yang berisi struktur CERT_ENHKEY_USAGE yang dikodekan ASN.1.

CERT_FRIENDLY_NAME_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur string karakter Unicode yang dihentikan null yang berisi nama tampilan untuk CRL.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Jenis data untuk pvData: Penunjuk ke struktur CRYPT_DATA_BLOB .

Mengatur string yang berisi satu set algoritma kunci publik L"<PUBKEY>/<BITLENGTH>" dan pasangan panjang bit. Titik koma, L";", digunakan sebagai pemisah.

Nilai <PUBKEY> mengidentifikasi algoritma kunci publik CNG. Algoritma berikut didukung:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Pasangan <PUBKEY>/<BITLENGTH> diatur untuk setiap sertifikat dalam rantai penerbit CRL tidak termasuk daun. Properti ini dapat diatur ketika respons OCSP dengan rantai penanda tangan independen dikonversi ke CRL.
Catatan Properti ini tidak boleh diatur untuk sertifikat penanda tangan OCSP yang didelegasikan. Sertifikat penanda tangan yang didelegasikan ditandatangani dengan kunci yang sama yang digunakan untuk menandatangani sertifikat subjek dan diperiksa di sana.
 
Berikut ini adalah contohnya:

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Jenis data untuk pvData: Penunjuk ke struktur CRYPT_DATA_BLOB .

Mengatur string yang berisi sekumpulan pasangan algoritma L"<SIGNATURE>/<HASH>". Titik koma, L";", digunakan sebagai pemisah di antara pasangan.

Properti ini diatur hanya ketika respons OCSP dikonversi ke CRL. Untuk sertifikat penanda tangan OCSP yang didelegasikan, hanya pasangan algoritma untuk sertifikat penanda tangan yang dikembalikan. Untuk rantai sertifikat penanda tangan OCSP independen, pasangan algoritma dikembalikan untuk setiap sertifikat dalam rantai tidak termasuk akar.

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 contohnya:
  • L"RSA/SHA256; RSA/SHA256"
Properti ini secara eksplisit diatur oleh fungsi pencabutan verifikasi.
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Jenis data untuk pvData: Penunjuk ke struktur CRYPT_DATA_BLOB .

Mengatur panjang, dalam bit, dari kunci publik dalam sertifikat penerbit CRL. Properti ini juga berlaku untuk OCSP yang telah dikonversi ke CRL.

Properti ini secara eksplisit diatur oleh fungsi pencabutan verifikasi.

Windows 8 dan Windows Server 2012: Dukungan untuk properti ini dimulai.

CERT_KEY_CONTEXT_PROP_ID
Jenis data untuk pvData: penunjuk ke CERT_KEY_CONTEXT

Mengatur struktur CERT_KEY_CONTEXT .

CERT_KEY_IDENTIFIER_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE
CERT_KEY_PROV_HANDLE_PROP_ID
Jenis data untuk pvData: pointer ke HCRYPTPROV

Mengatur handel penyedia yang diperoleh dari CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Jenis data untuk pvData: pointer ke CRYPT_KEY_PROV_INFO

Mengatur penunjuk ke struktur CRYPT_KEY_PROV_INFO .

CERT_KEY_SPEC_PROP_ID
Jenis data untuk pvData: penunjuk ke DWORD

Mengatur nilai DWORD yang menentukan kunci privat yang diperoleh dari properti CERT_KEY_CONTEXT_PROP_ID jika ada. Jika tidak, jika CERT_KEY_PROV_INFO_PROP_ID ada, itu adalah sumber dwKeySpec.

CERT_MD5_HASH_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur hash MD5. Anda dapat menghitung hash dengan menggunakan fungsi CryptHashCertificate .

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur struktur CERT_ALT_NAME_INFO yang dikodekan ASN.1 pada CTL.

CERT_PVK_FILE_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur Unicode yang dihentikan null, string karakter lebar yang menentukan nama file yang berisi kunci privat yang terkait dengan kunci umum sertifikat.

CERT_SHA1_HASH_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur hash SHA1. Anda dapat menghitung hash dengan menggunakan CryptHashCertificate.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Jenis data pvData: Penunjuk ke struktur CRYPT_DATA_BLOB .

Mengatur 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"
Properti ini juga berlaku untuk respons OCSP yang telah dikonversi ke CRL.

Properti ini secara eksplisit diatur oleh fungsi pencabutan verifikasi.

Windows 8 dan Windows Server 2012: Dukungan untuk properti ini dimulai.

CERT_SIGNATURE_HASH_PROP_ID
Jenis data untuk pvData: penunjuk ke array BYTE

Mengatur hash tanda tangan. Jika hash tidak ada, hash dihitung dengan CryptHashToBeSigned. Panjang hash adalah 20 byte untuk SHA dan 16 untuk MD5.

 

Pengguna dapat menentukan jenis dwPropId tambahan dengan menggunakan nilai DWORD dari CERT_FIRST_USER_PROP_ID ke CERT_LAST_USER_PROP_ID. Untuk semua jenis dwPropId yang ditentukan pengguna, pvData menunjuk ke CRYPT_DATA_BLOB yang dikodekan.

Untuk semua pengidentifikasi properti lainnya, pvData menunjuk ke struktur CRYPT_DATA_BLOB yang dikodekan.

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAG dapat diatur untuk properti dwPropId CERT_KEY_PROV_HANDLE_PROP_ID atau CERT_KEY_CONTEXT_PROP_ID.

Jika nilai CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG diatur, kesalahan penulisan penyedia apa pun diabaikan dan properti konteks yang di-cache selalu diatur.

Jika CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG diatur, kumpulan properti apa pun tidak akan bertahan.

[in] pvData

Penunjuk ke jenis data yang ditentukan oleh nilai yang diteruskan dalam dwPropId.

Catatan Untuk dwPropId apa pun, mengatur pvData ke NULL akan menghapus properti .
 

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.

Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Salah satu kemungkinan kode kesalahan adalah sebagai berikut.

Menampilkan kode Deskripsi
E_INVALIDARG
Properti tidak valid. Pengidentifikasi yang ditentukan lebih besar dari 0x0000FFFF, atau, untuk properti CERT_KEY_CONTEXT_PROP_ID, anggota cbSize yang tidak valid ditentukan dalam struktur CERT_KEY_CONTEXT .

Keterangan

Jika properti sudah ada, nilai lamanya diganti.

Contoh

Untuk contoh yang menggunakan fungsi ini, lihat Contoh Program C: Mendapatkan dan Mengatur Properti Sertifikat.

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

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBesigned

Fungsi Properti yang Diperluas