Metode IX509CertificateRequestPkcs10::InitializeFromPrivateKey (certenroll.h)

Metode InitializeFromPrivateKey menginisialisasi permintaan sertifikat dengan menggunakan objek IX509PrivateKey dan, secara opsional, templat. Metode ini diaktifkan web.

Sintaks

HRESULT InitializeFromPrivateKey(
  [in]           X509CertificateEnrollmentContext Context,
  [in]           IX509PrivateKey                  *pPrivateKey,
  [in, optional] BSTR                             strTemplateName
);

Parameter

[in] Context

Nilai enumerasi X509CertificateEnrollmentContext yang menentukan apakah sertifikat yang diminta ditujukan untuk pengguna akhir, komputer, atau administrator yang bertindak atas nama komputer. Ini bisa menjadi salah satu nilai berikut. Namun, jika properti MachineContext dari kunci privat diatur, Anda harus menentukan nilai enumerasi ContextMachine .

Nilai Makna
ContextUser
Sertifikat sedang diminta untuk pengguna akhir.
ContextMachine
Sertifikat sedang diminta untuk komputer.
ContextAdministratorForceMachine
Sertifikat sedang diminta oleh administrator yang bertindak atas nama komputer.

[in] pPrivateKey

Penunjuk ke antarmuka IX509PrivateKey yang mewakili kunci privat.

[in, optional] strTemplateName

Variabel BSTR yang berisi Nama Umum (CN) templat seperti yang muncul di Direktori Aktif atau pengidentifikasi objek desimal putus-putus. Ini adalah parameter opsional.

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

Keterangan

Jika Anda menentukan templat, metode InitializeFromPrivateKey melakukan tindakan berikut:

  • Menambahkan ekstensi yang ditentukan oleh templat ke koleksi IX509Extensions .
  • Membuat koleksi IObjectIds dan mengisinya dengan pengidentifikasi objek XCN_OID_KEY_USAGE dan XCN_OID_BASIC_CONSTRAINTS2 default. Jika templat menunjukkan bahwa OID ini tidak penting, templat tersebut dihapus dari koleksi. OID yang ditandai penting oleh templat ditambahkan.
  • Mengatur properti SmimeCapabilities jika templat mendukung algoritma simetris.
  • Mengatur properti AlternateSignatureAlgorithm jika templat memerlukan OID algoritma tanda tangan diskrit.
  • Membuat objek IX509SignatureInformation .
  • Membuat algoritma hash OID jika algoritma ditentukan dalam templat dan mengaturnya pada objek IX509SignatureInformation .
  • Mengambil OID algoritma enkripsi asimetris, jika ada, dari templat dan mengaturnya pada objek IX509SignatureInformation .
  • Mengisi banyak properti IX509PrivateKey dari pengaturan templat.

Apakah Anda menentukan templat atau tidak, jika properti CSPInformations tidak ditentukan, metode membuat koleksi ICspInformations dari penyedia yang diinstal di komputer.

Tidak ada kunci privat yang dibuat pada saat ini. Jika objek IX509PrivateKey yang diteruskan ke metode tidak mewakili kunci yang ada, kunci dibuat saat metode Encode dipanggil. Kunci akan dibuat dengan menggunakan penyedia default jika tidak ada templat yang ditentukan dan properti ProviderName pada IX509PrivateKey tidak diatur. Ketika ada kunci privat, kunci tersebut diatur pada properti PrivateKey .

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