IX509CertificateRequestPkcs7::InitializeFromCertificate method (certenroll.h)
Metode InitializeFromCertificate menginisialisasi permintaan sertifikat dengan menggunakan sertifikat yang ada. Sertifikat terkandung dalam array byte yang dikodekan dengan menggunakan Distinguished Encoding Rules (DER) sebagaimana didefinisikan oleh standar Abstract Syntax Notation One (ASN.1). Array byte yang dikodekan DER diwakili oleh string yang merupakan urutan biner murni atau dikodekan Unicode.
Sintaks
HRESULT InitializeFromCertificate(
[in] X509CertificateEnrollmentContext Context,
[in] VARIANT_BOOL RenewalRequest,
[in] BSTR strCertificate,
[in] EncodingType Encoding,
[in] X509RequestInheritOptions InheritOptions
);
Parameter
[in] Context
Nilai enumerasi X509CertificateEnrollmentContext yang menentukan apakah sertifikat yang diminta ditujukan untuk pengguna akhir, komputer, atau administrator yang bertindak atas nama komputer.
[in] RenewalRequest
VARIANT_BOOL yang menunjukkan apakah entitas akhir meminta agar sertifikat yang diidentifikasi oleh parameter strCertificate diperbarui.
[in] strCertificate
Variabel BSTR yang berisi sertifikat yang dikodekan DER.
Dimulai dengan Windows 7 dan Windows Server 2008 R2, Anda dapat menentukan cetak jempol sertifikat atau nomor seri daripada sertifikat yang dikodekan. Melakukannya menyebabkan fungsi mencari penyimpanan lokal yang sesuai untuk sertifikat yang cocok. Perlu diingat poin-poin berikut:
- BSTR harus berupa jumlah digit heksadesimal yang merata.
- Spasi putih antara pasangan heksadesimal diabaikan.
- Parameter Pengodean harus diatur ke XCN_CRYPT_STRING_HEXRAW.
- Parameter Konteks menentukan apakah penyimpanan lokal atau komputer atau keduanya dicari.
- Jika kunci privat diperlukan, hanya penyimpanan pribadi dan permintaan yang dicari.
- Jika kunci privat tidak diperlukan, penyimpanan OS akar dan menengah juga dicari.
[in] Encoding
Nilai enumerasi EncodingType yang menentukan jenis pengodean yang diterapkan ke sertifikat yang dikodekan DER. Nilai defaultnya adalah XCN_CRYPT_STRING_BASE64.
[in] InheritOptions
Nilai enumerasi X509RequestInheritOptions yang menentukan cara membuat objek permintaan sertifikat dari sertifikat yang ada. Anda dapat menentukan cara mewarisi kunci dengan memilih salah satu nilai berikut. Nilai defaultnya adalah InheritDefault.
Anda juga dapat menggunakan operasi bitwise-AND untuk menggabungkan nilai pewarisan kunci dengan kombinasi nilai berikut.
Nilai | Makna |
---|---|
|
Mewarisi sertifikat perpanjangan. Menentukan bendera ini menetapkan nilai ICertPropertyRenewal . |
|
Mewarisi templat sertifikat. |
|
Mewarisi nama yang dibedakan subjek. |
|
Mewarisi ekstensi yang relevan dari sertifikat. |
|
Mewarisi ekstensi SubjectAlternativeName . |
|
Mewarisi periode validitas. |
Anda juga dapat menentukan InheritNone untuk mencegah salah satu bendera dalam tabel sebelumnya (bendera yang tidak terkait dengan pewarisan kunci) diimplementasikan secara default. Jika Anda menentukan InheritNone tetapi juga menentukan bendera yang tidak terkait dengan pewarisan kunci, metode mengembalikan E_INVALIDARG.
Jika Anda mengatur parameter InheritOptions ke nol (0) atau menentukan InheritDefault dan tidak menentukan nilai pewarisan kunci, InheritNewSimilarKey digunakan secara default.
Jika Anda mengatur parameter InheritOptions ke nol (0) atau menentukan InheritDefault dan tidak menentukan nilai apa pun yang tidak terkait dengan pewarisan kunci, bendera berikut diatur secara default:
- InheritSubjectFlag
- InheritExtensionsFlag
- InheritValidityPeriodFlag
- InheritTemplateFlag (jika sertifikat berisi ekstensi templat)
- InheritRenewalCertificateFlag (jika klien memperbarui sertifikat)
Mengembalikan nilai
Jika fungsi berhasil, fungsi akan mengembalikan S_OK.
Jika fungsi gagal, fungsi mengembalikan nilai HRESULT yang menunjukkan kesalahan. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.
Menampilkan kode | Deskripsi |
---|---|
|
Objek permintaan sertifikat telah diinisialisasi. |
Keterangan
Metode InitializeFromCertificate memvalidasi opsi yang ditentukan dalam parameter InheritOptions dan menginisialisasi objek permintaan PKCS #7 baru dengan melakukan tindakan berikut:
- Membuat objek permintaan PKCS #10 dari sertifikat, konteks pendaftaran, dan mewarisi opsi yang ditentukan pada input. Objek PKCS #10 mewarisi:
- Templat jika ada di sertifikat asli dan Anda mengatur nilai InheritTemplateFlag .
- Nama pembeda subjek jika Anda menentukan InheritSubjectFlag.
- Nama alternatif subjek jika Anda menentukan InheritSubjectAltNameFlag.
- Ekstensi jika Anda menentukan InheritExtensionsFlag.
- Menyalin sertifikat asli, jika akan diperbarui, ke properti RenewalCertificate pada permintaan PKCS #10 baru.
- Membuat ISignerCertificate dari sertifikat asli, jika akan diperbarui, dan mengaturnya pada properti SignerCertificate .
- Mengatur permintaan PKCS #10 sebagai objek permintaan dalam.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |