Fungsi EnclaveUnsealData (winenclaveapi.h)

Mendekripsi objek besar biner terenkripsi (blob).

Sintaks

HRESULT EnclaveUnsealData(
  [in]            const VOID       *ProtectedBlob,
  [in]            UINT32           ProtectedBlobSize,
  [out]           PVOID            DecryptedData,
  [in]            UINT32           BufferSize,
  [out]           UINT32           *DecryptedDataSize,
  [out, optional] ENCLAVE_IDENTITY *SealingIdentity,
  [out, optional] UINT32           *UnsealingFlags
);

Parameter

[in] ProtectedBlob

Penunjuk ke data yang disegel untuk tidak disegel. Data ini dapat disimpan baik dalam rentang alamat enklave atau dalam ruang alamat proses host

[in] ProtectedBlobSize

Ukuran data yang disegel ke unseal, dalam byte.

[out] DecryptedData

Penunjuk ke buffer tempat data yang tidak terenkripsi harus ditempatkan. Data ini dapat disimpan baik dalam rentang alamat enklave atau dalam ruang alamat proses host. Jika parameter ini adalah NULL, hanya ukuran data yang didekripsi yang dihitung.

[in] BufferSize

Ukuran buffer tempat parameter DecryptedData menunjuk, dalam byte. Jika DecryptedData adalah NULL, BufferSize harus nol. Jika DecryptedData bukan NULL, dan jika ukuran data yang didekripsi lebih besar dari nilai ini, kesalahan akan dikembalikan.

[out] DecryptedDataSize

Penunjuk ke variabel yang menerima ukuran aktual data yang didekripsi, dalam byte.

[out, optional] SealingIdentity

Penunjuk opsional ke buffer yang harus diisi dengan identitas enklave yang menyegel data. Jika pointer ini adalah NULL, identitas enklave penyegelan tidak dikembalikan.

[out, optional] UnsealingFlags

Penunjuk opsional ke variabel yang menerima nol atau lebih dari bendera berikut yang menjelaskan objek besar biner terenkripsi.

Nilai Makna
ENCLAVE_UNSEAL_FLAG_STALE_KEY
1
Data dienkripsi dengan kunci kedaluarsa. Kunci penyegelan diputar saat diperlukan untuk keamanan, dan sistem hanya dapat mempertahankan sejumlah kunci tetap yang baru-baru ini diketahui. Enklave yang menentukan bahwa data dienkripsi dengan kunci basi harus mengenkripsi ulang data dengan kunci saat ini untuk meminimalkan kemungkinan kunci yang digunakan untuk mengenkripsi data tidak lagi dipertahankan dalam daftar kunci.

Nilai kembali

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Enklave yang memanggil EnclaveUnsealData harus memenuhi kriteria yang sesuai dengan nilai ENCLAVE_SEALING_IDENTITY_POLICY yang ditentukan oleh enklave yang menyegel data dengan memanggil EnclaveSealData.

EnclaveUnsealData harus dipanggil dari dalam enklave, dan hanya didukung dalam enklave yang memiliki jenis enklave ENCLAVE_TYPE_VBS .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, versi 1709 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2016 [hanya aplikasi desktop]
Target Platform Windows
Header winenclaveapi.h
Pustaka Vertdll.lib
DLL Vertdll.dll

Lihat juga

Fungsi Enklave

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveSealData

API Vertdll tersedia di enklave VBS