Skip to main content

libcryptsetup_rs/consts/
flags.rs

1// This Source Code Form is subject to the terms of the Mozilla Public
2// License, v. 2.0. If a copy of the MPL was not distributed with this
3// file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
5use bitflags::bitflags;
6
7bitflags! {
8    /// Crypt device activation flags.
9    pub struct CryptActivate: u32 {
10        const READONLY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_READONLY;
11        const NO_UUID = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_UUID;
12        const SHARED = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SHARED;
13        const ALLOW_DISCARDS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_ALLOW_DISCARDS;
14        const PRIVATE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_PRIVATE;
15        const CORRUPTED = libcryptsetup_rs_sys::CRYPT_ACTIVATE_CORRUPTED;
16        const SAME_CPU_CRYPT = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SAME_CPU_CRYPT;
17        const SUBMIT_FROM_CRYPT_CPUS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SUBMIT_FROM_CRYPT_CPUS;
18        const IGNORE_CORRUPTION = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IGNORE_CORRUPTION;
19        const RESTART_ON_CORRUPTION = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RESTART_ON_CORRUPTION;
20        const IGNORE_ZERO_BLOCKS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IGNORE_ZERO_BLOCKS;
21        const KEYRING_KEY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_KEYRING_KEY;
22        const NO_JOURNAL = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_JOURNAL;
23        const RECOVERY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RECOVERY;
24        const IGNORE_PERSISTENT = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IGNORE_PERSISTENT;
25        const CHECK_AT_MOST_ONCE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_CHECK_AT_MOST_ONCE;
26        const ALLOW_UNBOUND_KEY = libcryptsetup_rs_sys::CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY;
27        const RECALCULATE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RECALCULATE;
28        const REFRESH = libcryptsetup_rs_sys::CRYPT_ACTIVATE_REFRESH;
29        const SERIALIZE_MEMORY_HARD_PBKDF = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SERIALIZE_MEMORY_HARD_PBKDF;
30        const NO_JOURNAL_BITMAP = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_JOURNAL_BITMAP;
31        #[cfg(cryptsetup23supported)]
32        const SUSPENDED = libcryptsetup_rs_sys::CRYPT_ACTIVATE_SUSPENDED;
33        #[cfg(cryptsetup24supported)]
34        const IV_LARGE_SECTORS = libcryptsetup_rs_sys::CRYPT_ACTIVATE_IV_LARGE_SECTORS;
35        #[cfg(cryptsetup24supported)]
36        const PANIC_ON_CORRUPTION = libcryptsetup_rs_sys::CRYPT_ACTIVATE_PANIC_ON_CORRUPTION;
37        #[cfg(cryptsetup24supported)]
38        const NO_READ_WORKQUEUE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_READ_WORKQUEUE;
39        #[cfg(cryptsetup24supported)]
40        const NO_WRITE_WORKQUEUE = libcryptsetup_rs_sys::CRYPT_ACTIVATE_NO_WRITE_WORKQUEUE;
41        #[cfg(cryptsetup24supported)]
42        const RECALCULATE_RESET = libcryptsetup_rs_sys::CRYPT_ACTIVATE_RECALCULATE_RESET;
43    }
44}
45
46bitflags! {
47    /// Flags for crypt deactivate operations
48    pub struct CryptDeactivate: u32 {
49        const DEFERRED = libcryptsetup_rs_sys::CRYPT_DEACTIVATE_DEFERRED;
50        const FORCE = libcryptsetup_rs_sys::CRYPT_DEACTIVATE_FORCE;
51    }
52}
53
54bitflags! {
55    /// Verity format flags
56    pub struct CryptVerity: u32 {
57        const NO_HEADER = libcryptsetup_rs_sys::CRYPT_VERITY_NO_HEADER;
58        const CHECK_HASH = libcryptsetup_rs_sys::CRYPT_VERITY_CHECK_HASH;
59        const CREATE_HASH = libcryptsetup_rs_sys::CRYPT_VERITY_CREATE_HASH;
60    }
61}
62
63bitflags! {
64    /// tcrypt format flags
65    pub struct CryptTcrypt: u32 {
66        const LEGACY_MODES = libcryptsetup_rs_sys::CRYPT_TCRYPT_LEGACY_MODES;
67        const HIDDEN_HEADER = libcryptsetup_rs_sys::CRYPT_TCRYPT_HIDDEN_HEADER;
68        const BACKUP_HEADER = libcryptsetup_rs_sys::CRYPT_TCRYPT_BACKUP_HEADER;
69        const SYSTEM_HEADER = libcryptsetup_rs_sys::CRYPT_TCRYPT_SYSTEM_HEADER;
70        const VERA_MODES = libcryptsetup_rs_sys::CRYPT_TCRYPT_VERA_MODES;
71    }
72}
73
74bitflags! {
75    /// Flags for reading keyfiles
76    pub struct CryptKeyfile: u32 {
77        const STOP_EOL = libcryptsetup_rs_sys::CRYPT_KEYFILE_STOP_EOL;
78    }
79}
80
81bitflags! {
82    /// Flags for tunable options when operating with volume keys
83    pub struct CryptVolumeKey: u32 {
84        const NO_SEGMENT = libcryptsetup_rs_sys::CRYPT_VOLUME_KEY_NO_SEGMENT;
85        const SET = libcryptsetup_rs_sys::CRYPT_VOLUME_KEY_SET;
86        const DIGEST_REUSE = libcryptsetup_rs_sys::CRYPT_VOLUME_KEY_DIGEST_REUSE;
87    }
88}
89
90bitflags! {
91    /// Requirement flags
92    pub struct CryptRequirement: u32 {
93        const OFFLINE_REENCRYPT = libcryptsetup_rs_sys::CRYPT_REQUIREMENT_OFFLINE_REENCRYPT;
94        const ONLINE_REENCRYPT = libcryptsetup_rs_sys::CRYPT_REQUIREMENT_ONLINE_REENCRYPT;
95        const UNKNOWN = libcryptsetup_rs_sys::CRYPT_REQUIREMENT_UNKNOWN;
96    }
97}
98
99bitflags! {
100    /// Reencryption flags
101    pub struct CryptReencrypt: u32 {
102        const INITIALIZE_ONLY = libcryptsetup_rs_sys::CRYPT_REENCRYPT_INITIALIZE_ONLY;
103        const MOVE_FIRST_SEGMENT = libcryptsetup_rs_sys::CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT;
104        const RESUME_ONLY = libcryptsetup_rs_sys::CRYPT_REENCRYPT_RESUME_ONLY;
105        const RECOVERY = libcryptsetup_rs_sys::CRYPT_REENCRYPT_RECOVERY;
106    }
107}
108
109bitflags! {
110    /// PBKDF flags
111    pub struct CryptPbkdf: u32 {
112        const ITER_TIME_SET = libcryptsetup_rs_sys::CRYPT_PBKDF_ITER_TIME_SET;
113        const NO_BENCHMARK = libcryptsetup_rs_sys::CRYPT_PBKDF_NO_BENCHMARK;
114    }
115}
116
117bitflags! {
118    /// Flags for crypt wipe operations
119    pub struct CryptWipe: u32 {
120        const NO_DIRECT_IO = libcryptsetup_rs_sys::CRYPT_WIPE_NO_DIRECT_IO;
121    }
122}