]> git.proxmox.com Git - rustc.git/blame - src/vendor/winapi/src/um/ncrypt.rs
New upstream version 1.31.0~beta.4+dfsg1
[rustc.git] / src / vendor / winapi / src / um / ncrypt.rs
CommitLineData
ff7c6d11
XL
1// Copyright © 2016-2017 winapi-rs developers
2// Licensed under the Apache License, Version 2.0
3// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
4// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
5// All files in the project carrying such notice may not be copied, modified, or distributed
6// except according to those terms.
0bf4aa26
XL
7use shared::basetsd::{SIZE_T, ULONG_PTR};
8use shared::bcrypt::{BCRYPT_NO_KEY_VALIDATION, BCryptBufferDesc};
9use shared::minwindef::{DWORD, LPVOID, PBYTE};
10use um::winnt::{LONG, LPCWSTR, VOID};
11pub type SECURITY_STATUS = LONG;
12pub type HCRYPTPROV = ULONG_PTR;
13pub type HCRYPTKEY = ULONG_PTR;
14pub type HCRYPTHASH = ULONG_PTR;
15FN!{stdcall PFN_NCRYPT_ALLOC(
16 cbSize: SIZE_T,
17) -> LPVOID}
18FN!{stdcall PFN_NCRYPT_FREE(
19 pv: LPVOID,
20) -> VOID}
21STRUCT!{struct NCRYPT_ALLOC_PARA {
22 cbSize: DWORD,
23 pfnAlloc: PFN_NCRYPT_ALLOC,
24 pfnFree: PFN_NCRYPT_FREE,
25}}
26pub type NCryptBufferDesc = BCryptBufferDesc;
ff7c6d11
XL
27pub type NCRYPT_HANDLE = ULONG_PTR;
28pub type NCRYPT_PROV_HANDLE = ULONG_PTR;
29pub type NCRYPT_KEY_HANDLE = ULONG_PTR;
30pub type NCRYPT_HASH_HANDLE = ULONG_PTR;
31pub type NCRYPT_SECRET_HANDLE = ULONG_PTR;
0bf4aa26
XL
32pub const NCRYPT_NO_PADDING_FLAG: DWORD = 0x00000001;
33pub const NCRYPT_PAD_PKCS1_FLAG: DWORD = 0x00000002;
34pub const NCRYPT_PAD_OAEP_FLAG: DWORD = 0x00000004;
35pub const NCRYPT_PAD_PSS_FLAG: DWORD = 0x00000008;
36pub const NCRYPT_PAD_CIPHER_FLAG: DWORD = 0x00000010;
37pub const NCRYPT_ATTESTATION_FLAG: DWORD = 0x00000020;
38pub const NCRYPT_SEALING_FLAG: DWORD = 0x00000100;
39pub const NCRYPT_REGISTER_NOTIFY_FLAG: DWORD = 0x00000001;
40pub const NCRYPT_UNREGISTER_NOTIFY_FLAG: DWORD = 0x00000002;
41pub const NCRYPT_NO_KEY_VALIDATION: DWORD = BCRYPT_NO_KEY_VALIDATION;
42pub const NCRYPT_MACHINE_KEY_FLAG: DWORD = 0x00000020;
43pub const NCRYPT_SILENT_FLAG: DWORD = 0x00000040;
44pub const NCRYPT_OVERWRITE_KEY_FLAG: DWORD = 0x00000080;
45pub const NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG: DWORD = 0x00000200;
46pub const NCRYPT_DO_NOT_FINALIZE_FLAG: DWORD = 0x00000400;
47pub const NCRYPT_EXPORT_LEGACY_FLAG: DWORD = 0x00000800;
48pub const NCRYPT_IGNORE_DEVICE_STATE_FLAG: DWORD = 0x00001000;
49pub const NCRYPT_TREAT_NIST_AS_GENERIC_ECC_FLAG: DWORD = 0x00002000;
50pub const NCRYPT_NO_CACHED_PASSWORD: DWORD = 0x00004000;
51pub const NCRYPT_PROTECT_TO_LOCAL_SYSTEM: DWORD = 0x00008000;
52pub const NCRYPT_PERSIST_ONLY_FLAG: DWORD = 0x40000000;
53pub const NCRYPT_PERSIST_FLAG: DWORD = 0x80000000;
54pub const NCRYPT_PREFER_VIRTUAL_ISOLATION_FLAG: DWORD = 0x00010000;
55pub const NCRYPT_USE_VIRTUAL_ISOLATION_FLAG: DWORD = 0x00020000;
56pub const NCRYPT_USE_PER_BOOT_KEY_FLAG: DWORD = 0x00040000;
ff7c6d11 57extern "system" {
0bf4aa26
XL
58 pub fn NCryptOpenStorageProvider(
59 phProvider: *mut NCRYPT_PROV_HANDLE,
60 pszProviderName: LPCWSTR,
61 dwFlags: DWORD,
62 ) -> SECURITY_STATUS;
63}
64pub const NCRYPT_ALLOW_EXPORT_FLAG: DWORD = 0x00000001;
65pub const NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG: DWORD = 0x00000002;
66pub const NCRYPT_ALLOW_ARCHIVING_FLAG: DWORD = 0x00000004;
67pub const NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG: DWORD = 0x00000008;
68extern "system" {
69 pub fn NCryptSetProperty(
70 hObject: NCRYPT_HANDLE,
71 pszProperty: LPCWSTR,
72 pbInput: PBYTE,
73 cbInput: DWORD,
74 dwFlags: DWORD,
75 ) -> SECURITY_STATUS;
76 pub fn NCryptImportKey(
77 hProvider: NCRYPT_PROV_HANDLE,
78 hImportKey: NCRYPT_KEY_HANDLE,
79 pszBlobType: LPCWSTR,
80 pParameterList: *const NCryptBufferDesc,
81 phKey: *mut NCRYPT_KEY_HANDLE,
82 pbData: PBYTE,
83 cbData: DWORD,
84 dwFlags: DWORD,
85 ) -> SECURITY_STATUS;
ff7c6d11
XL
86 pub fn NCryptFreeObject(
87 hObject: NCRYPT_HANDLE,
88 ) -> SECURITY_STATUS;
89}