Metode ICEnroll::get_PVKFileName (xenroll.h)

[Properti ini tidak lagi tersedia untuk digunakan pada Windows Server 2008 dan Windows Vista.]

Properti PVKFileName mengatur atau mengambil nama file yang akan berisi kunci yang diekspor.

Properti ini pertama kali didefinisikan dalam antarmuka ICEnroll .

Properti ini bersifat baca/tulis.

Sintaks

HRESULT get_PVKFileName(
  BSTR *pbstr
);

Parameter

pbstr

Mengembalikan nilai

Tidak ada

Keterangan

Properti PVKFileName memengaruhi perilaku metode berikut:

Fungsionalitas ekspor mungkin tidak didukung oleh penyedia layanan kriptografi (CSP). Secara historis, Authenticode telah mengekspor kunci privat ke file .pvk pada disk dan menghapus kunci dari registri. Secara default, kunci privat tidak dihasilkan untuk ekspor, dan banyak penyedia layanan kriptografi tidak mendukung ekspor kunci. Namun, jika CSP mendukung ekspor kunci privat, menentukan nilai non-NULL untuk properti PVKFileName menyebabkan kunci privat dihasilkan sebagai dapat diekspor dan kunci privat dan publik ditulis ke file yang ditentukan oleh properti PVKFileName . Kunci privat dihapus dari CSP. Nama file yang ditentukan oleh properti dapat berupa file yang dapat diakses. Secara default, tidak ada file .pvk yang dihasilkan, dan kunci tidak dihasilkan sebagai dapat diekspor.

Jika file .pvk sudah ada, pengguna akan diberi tahu dan dimintai izin untuk menimpanya.

Properti GenKeyFlags juga memiliki bendera yang mengontrol apakah kunci privat dapat diekspor. Gunakan perawatan saat menggunakan properti GenKeyFlags dan properti PVKFileName bersama-sama. Jika properti PVKFileName diatur terlebih dahulu, properti GenKeyFlags secara otomatis diatur ke CRYPT_EXPORTABLE. Jika properti GenKeyFlags diatur (dengan menggunakan fungsi put_GenKeyFlags ) tanpa menyertakan bendera CRYPT_EXPORTABLE, maka GenKeyFlags tidak akan diatur ke CRYPT_EXPORTABLE, dan kunci yang dihasilkan tidak akan dapat diekspor. Prosedur berikut menunjukkan ini:

  1. Panggil put_PVKFileName untuk mengatur nama file untuk file yang akan menerima kunci yang diekspor. Properti GenKeyFlags secara otomatis diatur ke CRYPT_EXPORTABLE.
  2. Panggil put_GenKeyFlags dengan nilai yang tidak diatur ke CRYPT_EXPORTABLE, misalnya, nol.
  3. GenKeyFlags tidak lagi diatur ke CRYPT_EXPORTABLE (nilai yang secara otomatis diatur di langkah pertama).

Kunci apa pun yang dihasilkan dengan mengikuti langkah-langkah sebelumnya tidak akan dapat diekspor. Oleh karena itu, disarankan agar pengguna mengatur properti GenKeyFlags sebelum properti PVKFileName saat digunakan bersama- sama.

Atau, pengguna dapat menentukan nilai saat ini dari bit CRYPT_EXPORTABLE di properti GenKeyFlags dan kemudian melakukan operasi bitwise-OR antara nilai ini dan setiap perubahan yang dilakukan pada properti GenKeyFlags untuk memastikan bahwa bit tidak dihapuskan. Pengguna juga dapat secara khusus mengatur bit CRYPT_EXPORTABLE saat memperbarui properti GenKeyFlags.

Contoh

BSTR     bstrPVKFile = NULL;
BSTR     bstrNewPVKFile = NULL;
HRESULT  hr;

// pEnroll is previously instantiated ICEnroll interface pointer

// get the PVKFileName
hr = pEnroll->get_PVKFileName( &bstrPVKFile );
if (FAILED( hr ))
    printf("Failed get_PVKFileName - %x\n", hr );
else
    printf( "PVKFileName: %ws\n", bstrPVKFile );
// free BSTR when done
if ( NULL != bstrPVKFile )
    SysFreeString( bstrPVKFile );

// set the PVKFileName, for example, "MyKeys.pvk"
bstrNewPVKFile = SysAllocString(TEXT("FILENAMEHERE"));

hr = pEnroll->put_PVKFileName( bstrNewPVKFile );
if (FAILED( hr ))
    printf("Failed put_PVKFileName - %x\n", hr );
else
    printf( "PVKFileName set to %ws\n", bstrNewPVKFile );
// free BSTR when done
if ( NULL != bstrNewPVKFile )
    SysFreeString( bstrNewPVKFile );

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header xenroll.h
Pustaka Uuid.lib
DLL Xenroll.dll