Bagikan melalui


Impor dan Ekspor Kunci

Anda dapat mengimpor dan mengekspor kunci konten dan kunci asimetris dengan CNG. Dan Anda dapat menggunakan fungsionalitas ekspor dan impor utama untuk memindahkan kunci antar komputer.

Kunci konten

Untuk mengimpor atau mengekspor kunci simetris (atau sesi) di mana kunci yang sama digunakan untuk mengenkripsi dan mendekripsi beberapa data, Anda dapat menggunakan fungsi BCryptImportKey dan BCryptExportKey . Biasanya, Anda terlebih dahulu mengekspor kunci dengan menggunakan fungsi BCryptExportKey sebelum mengimpor dengan menggunakan fungsi BCryptImportKey . Fungsi ini dirancang untuk mengaktifkan enkripsi kunci yang diekspor dan diimpor dengan menggunakan parameter hExportKey dan hImportKey ; namun, implementasi Microsoft dari fungsi-fungsi ini tidak mendukung enkripsi kunci yang diekspor dan diimpor.

Kunci asimetris

Untuk mengimpor pasangan kunci asimetris (atau publik/privat) di mana satu kunci digunakan untuk mengenkripsi dan yang lain digunakan untuk mendekripsi beberapa data, Anda dapat menggunakan salah satu fungsi BCryptImportKeyPair atau NCryptImportKey . Penyedia CNG harus mengodekan pasangan kunci dengan menggunakan jenis BLOB kunci yang didukung. BCryptExportKey dapat digunakan untuk membuat BLOB kunci yang dikodekan. Struktur CNG menjelaskan jenis dan struktur BLOB utama yang didukung Penyedia Penyimpanan Kunci Microsoft.

Agar BCryptExportKey membuat pasangan kunci yang bertahan, BLOB kunci input harus berisi kunci privat. Kunci publik tidak dipertahankan.

Nama kunci dan kebijakan ekspor bukan bagian dari struktur BLOB yang ditentukan dalam Struktur CNG. Namun, jika BLOB adalah jenis BLOB buram (seperti gambar memori status kunci internal), BLOB mungkin berisi nama kunci dan properti kebijakan ekspor.

Prosedur berikut menjelaskan cara mengimpor kunci privat yang bertahan dengan propertinya.

Untuk mengimpor kunci yang bertahan

  1. Buat kunci yang bertahan dengan menggunakan fungsi NCryptCreatePersistedKey .
  2. Atur properti yang diinginkan pada objek kunci dengan menggunakan fungsi NCryptSetProperty .
  3. Atur BLOB kunci impor sebagai properti pada kunci, dengan jenis BLOB sebagai nama properti.
  4. Selesaikan impor kunci yang bertahan dengan menggunakan fungsi NCryptFinalizeKey .