Metode IX509CertificateRequestPkcs10::GetCspStatuses (certenroll.h)

Metode GetCspStatuses mengambil koleksi ICspStatuses yang berisi semua pasangan penyedia/algoritma yang konsisten dengan penggunaan kunci privat yang dimaksudkan seperti yang ditentukan oleh pemanggil.

Sintaks

HRESULT GetCspStatuses(
  [in]  X509KeySpec  KeySpec,
  [out] ICspStatuses **ppCspStatuses
);

Parameter

[in] KeySpec

Nilai enumerasi X509KeySpec yang menentukan penggunaan kunci yang dimaksudkan. Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
XCN_AT_NONE
Hanya PENYEDIA Cryptography API: Next Generation (CNG) yang dipilih.
XCN_AT_KEYEXCHANGE
Hanya penyedia layanan kriptografi (CSP) CryptoAPI dengan algoritma enkripsi (termasuk pertukaran kunci) yang dipilih.
XCN_AT_SIGNATURE
Hanya CSP CryptoAPI dengan algoritma tanda tangan yang dipilih.

[out] ppCspStatuses

Alamat variabel yang menerima penunjuk ke antarmuka ICspStatuses yang mewakili koleksi.

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
CERTSRV_E_PROPERTY_EMPTY
Kunci privat tidak dapat ditemukan.
OLE_E_BLANK
Objek tidak diinisialisasi.

Keterangan

Metode ini mengambil kumpulan objek ICspStatus . Setiap objek mewakili satu pasangan penyedia/algoritma. Jika Anda menentukan templat saat menginisialisasi objek permintaan IX509CertificateRequestPkcs10 , atribut templat seperti pKIDefaultCSPs dan pKIDefaultKeySpec memengaruhi pasangan mana yang awalnya diaktifkan. Anda dapat memanggil properti berikut pada setiap objek ICspStatus untuk mengambil informasi tentang sepasang:

Koleksi yang diambil oleh metode ini disimpan secara internal pada objek permintaan. Hingga tiga koleksi, satu untuk setiap nilai KeySpec , dapat dibuat dan disimpan. Ini dilakukan untuk mempertahankan status pemilihan pasangan penyedia/algoritma sehingga halaman properti yang relevan dapat ditampilkan secara akurat dan cepat beberapa kali dan sehingga metode Encode dapat mengidentifikasi penyedia dan algoritma mana yang dipilih jika kunci privat harus dibuat. Jika status pemilihan pasangan penyedia/algoritma dimodifikasi, perubahan disimpan ke koleksi yang sesuai. Perubahan yang dilakukan pada anggota dari satu koleksi tidak memengaruhi anggota koleksi lain. Koleksi ada selama objek PKCS #10 terus ada.

Misalnya, metode ini dipanggil dengan parameter KeySpec diatur ke XCN_AT_SIGNATURE dan templat digunakan untuk menginisialisasi permintaan. Pernyataan berikut akan benar:

  • Kumpulan objek ICspStatus dibuat dan disimpan pada objek IX509CertificateRequestPkcs10 . Koleksi berisi semua pasangan penyedia/algoritma yang valid yang terinstal pada komputer.
  • Karena parameter KeySpec tidak diatur ke XCN_AT_NONE, properti Terpilih diatur ke SelectedNo untuk setiap API Kriptografi: pasangan penyedia/algoritma Generasi Berikutnya (CNG) dalam koleksi.
  • Karena parameter KeySpec tidak diatur ke XCN_AT_KEYEXCHANGE, properti Terpilih diatur ke SelectedNo untuk setiap pasangan CSP/algoritma CryptoAPI dalam koleksi tempat algoritma dapat digunakan untuk mengenkripsi data atau mengarsipkan kunci.
  • Untuk setiap penyedia yang direferensikan oleh templat atau kunci privat tetapi tidak didukung di komputer, objek ICspStatus tempat penampung dibuat dan ditambahkan ke koleksi dan properti Dipilih diatur ke SelectedNo.
  • Properti Dipilih diatur ke SelectedYes untuk setiap pasangan CSP/algoritma CryptoAPI di mana algoritma hanya dapat digunakan untuk menandatangani data.
  • Properti Ordinal diatur untuk mencerminkan urutan CSP, jika ada, yang diidentifikasi oleh atribut templat pKIDefaultCSPs . CSP yang dicantumkan pertama kali oleh atribut diurutkan terlebih dahulu dalam koleksi. Properti ini digunakan selama pendaftaran jika kunci privat harus dibuat. Pasangan CSP/algoritma pertama yang dipilih digunakan untuk membuat kunci, tetapi jika operasi gagal, pasangan yang dipilih berikutnya akan dicoba.
  • Memanggil metode ini lagi dengan parameter KeySpec yang sama mengambil penunjuk ke koleksi yang ada yang dibuat sebelumnya untuk nilai parameter tersebut.
  • Memanggil metode ini lagi dengan parameter KeySpec yang berbeda tidak akan memengaruhi koleksi yang dibuat untuk nilai keySpec XCN_AT_SIGNATURE. Selanjutnya, mengubah properti Terpilih pada setiap anggota koleksi baru tidak memengaruhi anggota koleksi sebelumnya.

Metode GetCspStatuses berbeda dari properti CspStatuses dengan menggunakan parameter KeySpec . Metode ini memungkinkan pengguna untuk menentukan nilai ini, tetapi properti menggunakan nilai yang ditetapkan pada kunci privat yang terkait dengan objek permintaan.

Anda harus menginisialisasi objek IX509CertificateRequestPkcs10 sebelum memanggil metode ini. Untuk informasi selengkapnya, lihat salah satu metode berikut:

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