Fungsi PFXExportCertStoreEx (wincrypt.h)

Fungsi PFXExportCertStoreEx mengekspor sertifikat dan, jika tersedia, kunci privat terkait dari penyimpanan sertifikat yang dirujuk. Fungsi ini menggantikan fungsi PfxExportCertStore yang lebih lama. Ini harus digunakan untuk keamanan kunci privat yang ditingkatkan. BLOB PFX yang dibuat oleh fungsi ini dilindungi oleh kata sandi.

Sintaks

BOOL PFXExportCertStoreEx(
  [in]      HCERTSTORE      hStore,
  [in, out] CRYPT_DATA_BLOB *pPFX,
  [in]      LPCWSTR         szPassword,
  [in]      void            *pvPara,
  [in]      DWORD           dwFlags
);

Parameter

[in] hStore

Menangani penyimpanan sertifikat yang berisi sertifikat yang akan diekspor.

[in, out] pPFX

Penunjuk ke struktur CRYPT_DATA_BLOB untuk berisi paket PFX dengan sertifikat dan kunci yang diekspor. Jika pPFX-pbData>adalah NULL, fungsi menghitung jumlah byte yang diperlukan untuk BLOB yang dikodekan dan mengembalikannya dalam pPFX-cbData.> Ketika fungsi dipanggil dengan pPFX-pbData> menunjuk ke buffer yang dialokasikan dari ukuran yang diperlukan, fungsi menyalin byte yang dikodekan ke dalam buffer dan memperbaruipPFX-cbData> dengan panjang byte enkode.

[in] szPassword

Kata sandi string yang digunakan untuk mengenkripsi dan memverifikasi paket PFX. Setelah Anda selesai menggunakan kata sandi, hapus kata sandi dari memori dengan memanggil fungsi SecureZeroMemory . Untuk informasi selengkapnya tentang melindungi kata sandi, lihat Menangani Kata Sandi.

[in] pvPara

Parameter ini harus NULL jika parameter dwFlags tidak berisi PKCS12_PROTECT_TO_DOMAIN_SIDS atau PKCS12_EXPORT_PBES2_PARAMS. Sebelum Windows 8 dan Windows Server 2012, oleh karena itu, parameter ini harus NULL.

Dimulai dengan Windows 8 dan Windows Server 2012, jika parameter dwFlags berisi PKCS12_PROTECT_TO_DOMAIN_SIDS, Anda dapat mengatur parameter pvPara untuk menunjuk ke nilai NCRYPT_DESCRIPTOR_HANDLE untuk mengidentifikasi perwakilan Direktori Aktif mana yang akan dilindungi kata sandi PFX ke dalam BLOB PFX. Saat ini, kata sandi dapat dilindungi ke pengguna, komputer, atau grup Direktori Aktif. Untuk informasi selengkapnya tentang deskriptor perlindungan, lihat NCryptCreateProtectionDescriptor.

Dimulai dengan Windows 10 1709 (pembaruan Fall Creators) dan Windows Server 2019, jika parameter dwFlags berisi PKCS12_EXPORT_PBES2_PARAMS, Anda harus mengatur pvPara ke nilai PKCS12_EXPORT_PBES2_PARAMS untuk memilih algoritma enkripsi berbasis kata sandi untuk digunakan.

[in] dwFlags

Nilai bendera dapat diatur ke kombinasi apa pun dari berikut ini.

Nilai Makna
EXPORT_PRIVATE_KEYS
0x0004
Kunci privat diekspor serta sertifikat.
REPORT_NO_PRIVATE_KEY
0x0001
Jika sertifikat ditemukan yang tidak memiliki kunci privat terkait, fungsi mengembalikan FALSE dengan kesalahan terakhir yang diatur ke CRYPT_E_NOT_FOUND atau NTE_NO_KEY.
REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY
0x0002
Jika sertifikat ditemukan yang memiliki kunci privat yang tidak dapat diekspor, fungsi mengembalikan FALSE dan kesalahan terakhir diatur ke NTE_BAD_KEY, NTE_BAD_KEY_STATE, atau NTE_PERM.
PKCS12_INCLUDE_EXTENDED_PROPERTIES
0x0010
Ekspor semua properti yang diperluas pada sertifikat.

Windows Server 2003 dan Windows XP: Nilai ini tidak didukung.

PKCS12_PROTECT_TO_DOMAIN_SIDS
0x0020
BLOB PFX berisi kata sandi tersemat yang akan dilindungi ke deskriptor perlindungan Direktori Aktif (AD) yang ditunjukkan oleh parameter pvPara . Jika parameter szPassword bukan NULL atau kosong, kata sandi yang ditentukan dilindungi. Namun, jika parameter szPassword adalah NULL atau string kosong, kata sandi karakter empat puluh (40) acak dibuat dan dilindungi.

PFXImportCertStore menggunakan deskriptor perlindungan yang ditentukan untuk mendekripsi kata sandi yang disematkan, baik yang ditentukan oleh pengguna atau dihasilkan secara acak, lalu menggunakan kata sandi untuk mendekripsi BLOB PFX.

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

PKCS12_EXPORT_PBES2_PARAMS
0x0080
Ekspor menggunakan algoritma enkripsi berbasis passowrd yang ditentukan oleh nilai PKCS12_EXPORT_PBES2_PARAMS yang diteruskan sebagai pvPara.

Windows 10 1709 (pembaruan Fall Creators) dan Windows Server 2019: Dukungan untuk bendera ini dimulai.

Nilai kembali

Mengembalikan TRUE (bukan nol) jika fungsi berhasil, dan FALSE (nol) jika fungsi gagal. Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Dimulai dengan Windows 8 dan Windows Server 2012, Anda dapat melindungi kata sandi PFX ke pengguna, komputer, atau grup Direktori Aktif. Jika Anda memilih untuk melakukannya tetapi jangan membuat kata sandi, kata sandi sementara akan dipilih secara acak. Kata sandi dienkripsi dengan menggunakan perwakilan Direktori Aktif lalu disematkan dalam BLOB PFX. Untuk informasi selengkapnya, lihat parameter pvPara dan bendera PKCS12_PROTECT_TO_DOMAIN_SIDS .

Dimulai dengan Windows 10 1709 (pembaruan Fall Creators) dan Windows Server 2019, Anda dapat mengontrol jumlah iterasi fungsi hash melalui kata sandi yang dilakukan oleh fungsi PFXExportCertStoreEx menggunakan kunci registri berikut. Nilai dalam kunci ini berjenis REG_DWORD.

\ HKEY_LOCAL_MACHINEPerangkat lunak\Microsoft\Windows\CurrentVersion\PFX\PasswordIterationCount

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

PFXExportCertStore

PFXImportCertStore