summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/ncrypt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/ncrypt.rs')
-rw-r--r--vendor/winapi/src/um/ncrypt.rs88
1 files changed, 88 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/ncrypt.rs b/vendor/winapi/src/um/ncrypt.rs
new file mode 100644
index 0000000..5f5431e
--- /dev/null
+++ b/vendor/winapi/src/um/ncrypt.rs
@@ -0,0 +1,88 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{SIZE_T, ULONG_PTR};
+use shared::bcrypt::{BCRYPT_NO_KEY_VALIDATION, BCryptBufferDesc};
+use shared::minwindef::{DWORD, LPVOID, PBYTE};
+use um::winnt::{LONG, LPCWSTR, VOID};
+pub type SECURITY_STATUS = LONG;
+pub type HCRYPTPROV = ULONG_PTR;
+pub type HCRYPTKEY = ULONG_PTR;
+pub type HCRYPTHASH = ULONG_PTR;
+FN!{stdcall PFN_NCRYPT_ALLOC(
+ cbSize: SIZE_T,
+) -> LPVOID}
+FN!{stdcall PFN_NCRYPT_FREE(
+ pv: LPVOID,
+) -> VOID}
+STRUCT!{struct NCRYPT_ALLOC_PARA {
+ cbSize: DWORD,
+ pfnAlloc: PFN_NCRYPT_ALLOC,
+ pfnFree: PFN_NCRYPT_FREE,
+}}
+pub type NCryptBufferDesc = BCryptBufferDesc;
+pub type NCRYPT_HANDLE = ULONG_PTR;
+pub type NCRYPT_PROV_HANDLE = ULONG_PTR;
+pub type NCRYPT_KEY_HANDLE = ULONG_PTR;
+pub type NCRYPT_HASH_HANDLE = ULONG_PTR;
+pub type NCRYPT_SECRET_HANDLE = ULONG_PTR;
+pub const NCRYPT_NO_PADDING_FLAG: DWORD = 0x00000001;
+pub const NCRYPT_PAD_PKCS1_FLAG: DWORD = 0x00000002;
+pub const NCRYPT_PAD_OAEP_FLAG: DWORD = 0x00000004;
+pub const NCRYPT_PAD_PSS_FLAG: DWORD = 0x00000008;
+pub const NCRYPT_PAD_CIPHER_FLAG: DWORD = 0x00000010;
+pub const NCRYPT_ATTESTATION_FLAG: DWORD = 0x00000020;
+pub const NCRYPT_SEALING_FLAG: DWORD = 0x00000100;
+pub const NCRYPT_REGISTER_NOTIFY_FLAG: DWORD = 0x00000001;
+pub const NCRYPT_UNREGISTER_NOTIFY_FLAG: DWORD = 0x00000002;
+pub const NCRYPT_NO_KEY_VALIDATION: DWORD = BCRYPT_NO_KEY_VALIDATION;
+pub const NCRYPT_MACHINE_KEY_FLAG: DWORD = 0x00000020;
+pub const NCRYPT_SILENT_FLAG: DWORD = 0x00000040;
+pub const NCRYPT_OVERWRITE_KEY_FLAG: DWORD = 0x00000080;
+pub const NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG: DWORD = 0x00000200;
+pub const NCRYPT_DO_NOT_FINALIZE_FLAG: DWORD = 0x00000400;
+pub const NCRYPT_EXPORT_LEGACY_FLAG: DWORD = 0x00000800;
+pub const NCRYPT_IGNORE_DEVICE_STATE_FLAG: DWORD = 0x00001000;
+pub const NCRYPT_TREAT_NIST_AS_GENERIC_ECC_FLAG: DWORD = 0x00002000;
+pub const NCRYPT_NO_CACHED_PASSWORD: DWORD = 0x00004000;
+pub const NCRYPT_PROTECT_TO_LOCAL_SYSTEM: DWORD = 0x00008000;
+pub const NCRYPT_PERSIST_ONLY_FLAG: DWORD = 0x40000000;
+pub const NCRYPT_PERSIST_FLAG: DWORD = 0x80000000;
+pub const NCRYPT_PREFER_VIRTUAL_ISOLATION_FLAG: DWORD = 0x00010000;
+pub const NCRYPT_USE_VIRTUAL_ISOLATION_FLAG: DWORD = 0x00020000;
+pub const NCRYPT_USE_PER_BOOT_KEY_FLAG: DWORD = 0x00040000;
+extern "system" {
+ pub fn NCryptOpenStorageProvider(
+ phProvider: *mut NCRYPT_PROV_HANDLE,
+ pszProviderName: LPCWSTR,
+ dwFlags: DWORD,
+ ) -> SECURITY_STATUS;
+}
+pub const NCRYPT_ALLOW_EXPORT_FLAG: DWORD = 0x00000001;
+pub const NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG: DWORD = 0x00000002;
+pub const NCRYPT_ALLOW_ARCHIVING_FLAG: DWORD = 0x00000004;
+pub const NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG: DWORD = 0x00000008;
+extern "system" {
+ pub fn NCryptSetProperty(
+ hObject: NCRYPT_HANDLE,
+ pszProperty: LPCWSTR,
+ pbInput: PBYTE,
+ cbInput: DWORD,
+ dwFlags: DWORD,
+ ) -> SECURITY_STATUS;
+ pub fn NCryptImportKey(
+ hProvider: NCRYPT_PROV_HANDLE,
+ hImportKey: NCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ pParameterList: *const NCryptBufferDesc,
+ phKey: *mut NCRYPT_KEY_HANDLE,
+ pbData: PBYTE,
+ cbData: DWORD,
+ dwFlags: DWORD,
+ ) -> SECURITY_STATUS;
+ pub fn NCryptFreeObject(
+ hObject: NCRYPT_HANDLE,
+ ) -> SECURITY_STATUS;
+}