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}