IX509CertificateRequestPkcs10::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] 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] 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 pengguna atau penyimpanan 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 Unicode 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.

Nilai Makna
InheritDefault
Penyedia dan pewarisan kunci tidak ditentukan.
WarisiNewDefaultKey
Membuat kunci baru tetapi mewarisi penyedia kriptografi default.
WarisiNewSimilarKey
Membuat kunci baru tetapi mewarisi penyedia kriptografi yang digunakan untuk membuat sertifikat yang ada.
InheritPrivateKey
Mewarisi kunci privat dan publik.
InheritPublicKey
Hanya mewarisi kunci publik.
 

Anda juga dapat menggunakan operasi bitwise-OR untuk menggabungkan nilai pewarisan kunci dengan kombinasi nilai berikut.

Nilai Makna
InheritRenewalCertificateFlag
Mewarisi sertifikat perpanjangan. Menentukan bendera ini mengatur properti RenewalCertificate .
InheritTemplateFlag
Mewarisi templat sertifikat.
InheritSubjectFlag
Mewarisi nama yang dibedakan subjek.
InheritExtensionsFlag
Mewarisi ekstensi yang relevan dari sertifikat.
InheritSubjectAltNameFlag
Mewarisi ekstensi SubjectAlternativeName .
InheritValidityPeriodFlag
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)

Nilai kembali

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
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
Objek permintaan sertifikat telah diinisialisasi.

Keterangan

Metode InitializeFromCertificate memvalidasi opsi yang ditentukan dalam parameter InheritOptions dan menginisialisasi objek permintaan PKCS #10 baru dengan melakukan tindakan berikut:

  • Menyalin sertifikat perpanjangan, jika ada dan Anda telah menentukan InheritRenewalCertificateFlag, dari sertifikat input ke permintaan baru.
  • Menyalin templat jika templat ditentukan dalam sertifikat yang ada dan Anda mengatur nilai InheritTemplateFlag .
  • Menyalin nama khusus subjek ke permintaan baru jika Anda menentukan InheritSubjectFlag.
  • Menyalin nama alternatif subjek ke permintaan baru jika Anda menentukan InheritSubjectAltNameFlag.
  • Salin ekstensi ke permintaan baru jika Anda menentukan InheritExtensionsFlag.

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

Lihat juga

IX509CertificateRequestPkcs10