Bagikan melalui


Fungsi NCryptDecrypt (ncrypt.h)

Fungsi NCryptDecrypt mendekripsi blok data terenkripsi.

Sintaks

SECURITY_STATUS NCryptDecrypt(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in]           PBYTE             pbInput,
  [in]           DWORD             cbInput,
  [in, optional] VOID              *pPaddingInfo,
  [out]          PBYTE             pbOutput,
  [in]           DWORD             cbOutput,
  [out]          DWORD             *pcbResult,
  [in]           DWORD             dwFlags
);

Parameter

[in] hKey

Handel kunci yang digunakan untuk mendekripsi data.

[in] pbInput

Alamat buffer yang berisi data yang akan didekripsi. Parameter cbInput berisi ukuran data yang akan didekripsi. Untuk informasi selengkapnya, lihat Keterangan.

[in] cbInput

Jumlah byte dalam buffer pbInput untuk didekripsi.

[in, optional] pPaddingInfo

Penunjuk ke struktur yang berisi informasi padding. Jenis struktur aktual yang menunjuk parameter ini tergantung pada nilai parameter dwFlags . Parameter ini hanya digunakan dengan kunci asimetris dan harus NULL sebaliknya.

[out] pbOutput

Alamat buffer yang akan menerima data terdekripsi yang dihasilkan oleh fungsi ini. Parameter cbOutput berisi ukuran buffer ini. Untuk informasi selengkapnya, lihat Keterangan.

Jika parameter ini NULL, fungsi ini akan menghitung ukuran yang diperlukan untuk data yang didekripsi dan mengembalikan ukuran di lokasi yang ditunjukkan oleh parameter pcbResult .

[in] cbOutput

Ukuran, dalam byte, dari buffer pbOutput . Parameter ini diabaikan jika parameter pbOutput adalah NULL.

[out] pcbResult

Penunjuk ke variabel DWORD yang menerima jumlah byte yang disalin ke buffer pbOutput . Jika pbOutputNULL, ini menerima ukuran, dalam byte, diperlukan untuk data yang didekripsi.

[in] dwFlags

Bendera yang mengubah perilaku fungsi. Kumpulan bendera yang diizinkan tergantung pada jenis kunci yang ditentukan oleh parameter hKey .

Jika kuncinya adalah kunci asimetris, ini bisa menjadi salah satu nilai berikut.

Nilai Makna
NCRYPT_NO_PADDING_FLAG
Tidak ada padding yang digunakan saat data dienkripsi. Parameter pPaddingInfo tidak digunakan.
NCRYPT_PAD_OAEP_FLAG
Skema Padding Enkripsi Asimetris Optimal (OAEP) digunakan saat data dienkripsi. Parameter pPaddingInfo adalah penunjuk ke struktur BCRYPT_OAEP_PADDING_INFO .
NCRYPT_PAD_PKCS1_FLAG
Data diisi dengan angka acak untuk membulatkan ukuran blok saat data dienkripsi. Parameter pPaddingInfo tidak digunakan.
 

Nilai berikut dapat digunakan untuk kunci apa pun.

Nilai Makna
NCRYPT_SILENT_FLAG
Meminta agar penyedia layanan utama (KSP) tidak menampilkan antarmuka pengguna apa pun. Jika penyedia harus menampilkan UI untuk beroperasi, panggilan gagal dan KSP harus mengatur kode kesalahan NTE_SILENT_CONTEXT sebagai kesalahan terakhir.

Nilai kembali

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.

Menampilkan kode Deskripsi
ERROR_SUCCESS
Fungsi berhasil.
NTE_BAD_FLAGS
Parameter dwFlags berisi nilai yang tidak valid.
NTE_BUFFER_TOO_SMALL
Ukuran yang ditentukan oleh parameter cbOutput tidak cukup besar untuk menyimpan data yang didekripsi.
NTE_INVALID_HANDLE
Parameter hKey tidak valid.
NTE_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.
NTE_PERM
Kunci yang diidentifikasi oleh parameter hKey tidak dapat digunakan untuk dekripsi.

Keterangan

Parameter pbInput dan pbOutput dapat menunjuk ke buffer yang sama. Dalam hal ini, fungsi ini akan melakukan dekripsi di tempat.

Layanan tidak boleh memanggil fungsi ini dari Fungsi StartService-nya. Jika layanan memanggil fungsi ini dari fungsi StartService-nya, kebuntuan dapat terjadi, dan layanan mungkin berhenti merespons.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header ncrypt.h
Pustaka Ncrypt.lib
DLL Ncrypt.dll

Lihat juga

NCryptEncrypt