cryptsetup API
Public cryptsetup API
libcryptsetup.h
Go to the documentation of this file.
1 /*
2  * libcryptsetup - cryptsetup library
3  *
4  * Copyright (C) 2004 Jana Saout <jana@saout.de>
5  * Copyright (C) 2004-2007 Clemens Fruhwirth <clemens@endorphin.org>
6  * Copyright (C) 2009-2021 Red Hat, Inc. All rights reserved.
7  * Copyright (C) 2009-2021 Milan Broz
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation; either version 2
12  * of the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22  */
23 
32 #ifndef _LIBCRYPTSETUP_H
33 #define _LIBCRYPTSETUP_H
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 #include <stddef.h>
39 #include <stdint.h>
40 
48 struct crypt_device; /* crypt device handle */
49 
65 int crypt_init(struct crypt_device **cd, const char *device);
66 
80 int crypt_init_data_device(struct crypt_device **cd,
81  const char *device,
82  const char *data_device);
83 
103 int crypt_init_by_name_and_header(struct crypt_device **cd,
104  const char *name,
105  const char *header_device);
106 
113 int crypt_init_by_name(struct crypt_device **cd, const char *name);
114 
120 void crypt_free(struct crypt_device *cd);
121 
139 void crypt_set_confirm_callback(struct crypt_device *cd,
140  int (*confirm)(const char *msg, void *usrptr),
141  void *usrptr);
142 
153 int crypt_set_data_device(struct crypt_device *cd, const char *device);
154 
172 int crypt_set_data_offset(struct crypt_device *cd, uint64_t data_offset);
173 
185 #define CRYPT_LOG_NORMAL 0
187 #define CRYPT_LOG_ERROR 1
189 #define CRYPT_LOG_VERBOSE 2
191 #define CRYPT_LOG_DEBUG -1
193 #define CRYPT_LOG_DEBUG_JSON -2
194 
204 void crypt_set_log_callback(struct crypt_device *cd,
205  void (*log)(int level, const char *msg, void *usrptr),
206  void *usrptr);
207 
217 void crypt_log(struct crypt_device *cd, int level, const char *msg);
218 
226 void crypt_logf(struct crypt_device *cd, int level, const char *format, ...);
236 #define CRYPT_RNG_URANDOM 0
238 #define CRYPT_RNG_RANDOM 1
239 
247 void crypt_set_rng_type(struct crypt_device *cd, int rng_type);
248 
256 int crypt_get_rng_type(struct crypt_device *cd);
257 
262  const char *type;
263  const char *hash;
264  uint32_t time_ms;
265  uint32_t iterations;
266  uint32_t max_memory_kb;
268  uint32_t flags;
269 };
270 
272 #define CRYPT_PBKDF_ITER_TIME_SET (1 << 0)
274 #define CRYPT_PBKDF_NO_BENCHMARK (1 << 1)
275 
277 #define CRYPT_KDF_PBKDF2 "pbkdf2"
279 #define CRYPT_KDF_ARGON2I "argon2i"
281 #define CRYPT_KDF_ARGON2ID "argon2id"
282 
295 int crypt_set_pbkdf_type(struct crypt_device *cd,
296  const struct crypt_pbkdf_type *pbkdf);
297 
306 const struct crypt_pbkdf_type *crypt_get_pbkdf_type_params(const char *pbkdf_type);
307 
317 const struct crypt_pbkdf_type *crypt_get_pbkdf_default(const char *type);
318 
328 const struct crypt_pbkdf_type *crypt_get_pbkdf_type(struct crypt_device *cd);
329 
341 void crypt_set_iteration_time(struct crypt_device *cd, uint64_t iteration_time_ms);
342 
354 int crypt_memory_lock(struct crypt_device *cd, int lock);
355 
368 int crypt_metadata_locking(struct crypt_device *cd, int enable);
369 
384 int crypt_set_metadata_size(struct crypt_device *cd,
385  uint64_t metadata_size,
386  uint64_t keyslots_size);
387 
398 int crypt_get_metadata_size(struct crypt_device *cd,
399  uint64_t *metadata_size,
400  uint64_t *keyslots_size);
401 
413 #define CRYPT_PLAIN "PLAIN"
415 #define CRYPT_LUKS1 "LUKS1"
417 #define CRYPT_LUKS2 "LUKS2"
419 #define CRYPT_LOOPAES "LOOPAES"
421 #define CRYPT_VERITY "VERITY"
423 #define CRYPT_TCRYPT "TCRYPT"
425 #define CRYPT_INTEGRITY "INTEGRITY"
427 #define CRYPT_BITLK "BITLK"
428 
430 #define CRYPT_LUKS NULL
431 
438 const char *crypt_get_type(struct crypt_device *cd);
439 
445 const char *crypt_get_default_type(void);
446 
454  const char *hash;
455  uint64_t offset;
456  uint64_t skip;
457  uint64_t size;
458  uint32_t sector_size;
459 };
460 
471  const char *hash;
472  size_t data_alignment;
473  const char *data_device;
474 };
475 
484  const char *hash;
485  uint64_t offset;
486  uint64_t skip;
487 };
488 
497  const char *hash_name;
498  const char *data_device;
499  const char *hash_device;
500  const char *fec_device;
501  const char *salt;
502  uint32_t salt_size;
503  uint32_t hash_type;
504  uint32_t data_block_size;
505  uint32_t hash_block_size;
506  uint64_t data_size;
507  uint64_t hash_area_offset;
508  uint64_t fec_area_offset;
509  uint32_t fec_roots;
510  uint32_t flags;
511 };
512 
514 #define CRYPT_VERITY_NO_HEADER (1 << 0)
516 #define CRYPT_VERITY_CHECK_HASH (1 << 1)
518 #define CRYPT_VERITY_CREATE_HASH (1 << 2)
520 #define CRYPT_VERITY_ROOT_HASH_SIGNATURE (1 << 3)
521 
530  const char *passphrase;
532  const char **keyfiles;
533  unsigned int keyfiles_count;
534  const char *hash_name;
535  const char *cipher;
536  const char *mode;
537  size_t key_size;
538  uint32_t flags;
539  uint32_t veracrypt_pim;
540 };
541 
543 #define CRYPT_TCRYPT_LEGACY_MODES (1 << 0)
545 #define CRYPT_TCRYPT_HIDDEN_HEADER (1 << 1)
547 #define CRYPT_TCRYPT_BACKUP_HEADER (1 << 2)
549 #define CRYPT_TCRYPT_SYSTEM_HEADER (1 << 3)
554 #define CRYPT_TCRYPT_VERA_MODES (1 << 4)
555 
568  uint64_t journal_size;
569  unsigned int journal_watermark;
570  unsigned int journal_commit_time;
572  uint32_t tag_size;
573  uint32_t sector_size;
574  uint32_t buffer_sectors;
575  const char *integrity;
578  const char *journal_integrity;
579  const char *journal_integrity_key;
582  const char *journal_crypt;
583  const char *journal_crypt_key;
585 };
586 
597  const struct crypt_pbkdf_type *pbkdf;
598  const char *integrity;
600  size_t data_alignment;
601  const char *data_device;
602  uint32_t sector_size;
603  const char *label;
604  const char *subsystem;
605 };
636 int crypt_format(struct crypt_device *cd,
637  const char *type,
638  const char *cipher,
639  const char *cipher_mode,
640  const char *uuid,
641  const char *volume_key,
642  size_t volume_key_size,
643  void *params);
644 
651 void crypt_set_compatibility(struct crypt_device *cd, uint32_t flags);
652 
660 uint32_t crypt_get_compatibility(struct crypt_device *cd);
661 
663 #define CRYPT_COMPAT_LEGACY_INTEGRITY_PADDING (1 << 0)
665 #define CRYPT_COMPAT_LEGACY_INTEGRITY_HMAC (1 << 1)
667 #define CRYPT_COMPAT_LEGACY_INTEGRITY_RECALC (1 << 2)
668 
687 int crypt_convert(struct crypt_device *cd,
688  const char *type,
689  void *params);
690 
701 int crypt_set_uuid(struct crypt_device *cd,
702  const char *uuid);
703 
715 int crypt_set_label(struct crypt_device *cd,
716  const char *label,
717  const char *subsystem);
718 
736 int crypt_volume_key_keyring(struct crypt_device *cd, int enable);
737 
753 int crypt_load(struct crypt_device *cd,
754  const char *requested_type,
755  void *params);
756 
772 int crypt_repair(struct crypt_device *cd,
773  const char *requested_type,
774  void *params);
775 
793 int crypt_resize(struct crypt_device *cd,
794  const char *name,
795  uint64_t new_size);
796 
808 int crypt_suspend(struct crypt_device *cd,
809  const char *name);
810 
825 int crypt_resume_by_passphrase(struct crypt_device *cd,
826  const char *name,
827  int keyslot,
828  const char *passphrase,
829  size_t passphrase_size);
830 
843 int crypt_resume_by_keyfile_device_offset(struct crypt_device *cd,
844  const char *name,
845  int keyslot,
846  const char *keyfile,
847  size_t keyfile_size,
848  uint64_t keyfile_offset);
849 
853 int crypt_resume_by_keyfile_offset(struct crypt_device *cd,
854  const char *name,
855  int keyslot,
856  const char *keyfile,
857  size_t keyfile_size,
858  size_t keyfile_offset);
859 
863 int crypt_resume_by_keyfile(struct crypt_device *cd,
864  const char *name,
865  int keyslot,
866  const char *keyfile,
867  size_t keyfile_size);
878 int crypt_resume_by_volume_key(struct crypt_device *cd,
879  const char *name,
880  const char *volume_key,
881  size_t volume_key_size);
891 #define CRYPT_ANY_SLOT -1
892 
907 int crypt_keyslot_add_by_passphrase(struct crypt_device *cd,
908  int keyslot,
909  const char *passphrase,
910  size_t passphrase_size,
911  const char *new_passphrase,
912  size_t new_passphrase_size);
913 
929 int crypt_keyslot_change_by_passphrase(struct crypt_device *cd,
930  int keyslot_old,
931  int keyslot_new,
932  const char *passphrase,
933  size_t passphrase_size,
934  const char *new_passphrase,
935  size_t new_passphrase_size);
936 
953 int crypt_keyslot_add_by_keyfile_device_offset(struct crypt_device *cd,
954  int keyslot,
955  const char *keyfile,
956  size_t keyfile_size,
957  uint64_t keyfile_offset,
958  const char *new_keyfile,
959  size_t new_keyfile_size,
960  uint64_t new_keyfile_offset);
961 
965 int crypt_keyslot_add_by_keyfile_offset(struct crypt_device *cd,
966  int keyslot,
967  const char *keyfile,
968  size_t keyfile_size,
969  size_t keyfile_offset,
970  const char *new_keyfile,
971  size_t new_keyfile_size,
972  size_t new_keyfile_offset);
973 
977 int crypt_keyslot_add_by_keyfile(struct crypt_device *cd,
978  int keyslot,
979  const char *keyfile,
980  size_t keyfile_size,
981  const char *new_keyfile,
982  size_t new_keyfile_size);
983 
998 int crypt_keyslot_add_by_volume_key(struct crypt_device *cd,
999  int keyslot,
1000  const char *volume_key,
1001  size_t volume_key_size,
1002  const char *passphrase,
1003  size_t passphrase_size);
1004 
1006 #define CRYPT_VOLUME_KEY_NO_SEGMENT (1 << 0)
1007 
1009 #define CRYPT_VOLUME_KEY_SET (1 << 1)
1010 
1012 #define CRYPT_VOLUME_KEY_DIGEST_REUSE (1 << 2)
1013 
1043 int crypt_keyslot_add_by_key(struct crypt_device *cd,
1044  int keyslot,
1045  const char *volume_key,
1046  size_t volume_key_size,
1047  const char *passphrase,
1048  size_t passphrase_size,
1049  uint32_t flags);
1050 
1063 int crypt_keyslot_destroy(struct crypt_device *cd, int keyslot);
1074 #define CRYPT_ACTIVATE_READONLY (1 << 0)
1076 #define CRYPT_ACTIVATE_NO_UUID (1 << 1)
1078 #define CRYPT_ACTIVATE_SHARED (1 << 2)
1080 #define CRYPT_ACTIVATE_ALLOW_DISCARDS (1 << 3)
1082 #define CRYPT_ACTIVATE_PRIVATE (1 << 4)
1084 #define CRYPT_ACTIVATE_CORRUPTED (1 << 5)
1086 #define CRYPT_ACTIVATE_SAME_CPU_CRYPT (1 << 6)
1088 #define CRYPT_ACTIVATE_SUBMIT_FROM_CRYPT_CPUS (1 << 7)
1090 #define CRYPT_ACTIVATE_IGNORE_CORRUPTION (1 << 8)
1092 #define CRYPT_ACTIVATE_RESTART_ON_CORRUPTION (1 << 9)
1094 #define CRYPT_ACTIVATE_IGNORE_ZERO_BLOCKS (1 << 10)
1096 #define CRYPT_ACTIVATE_KEYRING_KEY (1 << 11)
1098 #define CRYPT_ACTIVATE_NO_JOURNAL (1 << 12)
1100 #define CRYPT_ACTIVATE_RECOVERY (1 << 13)
1102 #define CRYPT_ACTIVATE_IGNORE_PERSISTENT (1 << 14)
1104 #define CRYPT_ACTIVATE_CHECK_AT_MOST_ONCE (1 << 15)
1106 #define CRYPT_ACTIVATE_ALLOW_UNBOUND_KEY (1 << 16)
1108 #define CRYPT_ACTIVATE_RECALCULATE (1 << 17)
1110 #define CRYPT_ACTIVATE_REFRESH (1 << 18)
1112 #define CRYPT_ACTIVATE_SERIALIZE_MEMORY_HARD_PBKDF (1 << 19)
1114 #define CRYPT_ACTIVATE_NO_JOURNAL_BITMAP (1 << 20)
1116 #define CRYPT_ACTIVATE_SUSPENDED (1 << 21)
1118 #define CRYPT_ACTIVATE_IV_LARGE_SECTORS (1 << 22)
1120 #define CRYPT_ACTIVATE_PANIC_ON_CORRUPTION (1 << 23)
1122 #define CRYPT_ACTIVATE_NO_READ_WORKQUEUE (1 << 24)
1124 #define CRYPT_ACTIVATE_NO_WRITE_WORKQUEUE (1 << 25)
1126 #define CRYPT_ACTIVATE_RECALCULATE_RESET (1 << 26)
1127 
1132  uint64_t offset;
1133  uint64_t iv_offset;
1134  uint64_t size;
1135  uint32_t flags;
1136 };
1137 
1148 int crypt_get_active_device(struct crypt_device *cd,
1149  const char *name,
1150  struct crypt_active_device *cad);
1151 
1161 uint64_t crypt_get_active_integrity_failures(struct crypt_device *cd,
1162  const char *name);
1175 #define CRYPT_REQUIREMENT_OFFLINE_REENCRYPT (1 << 0)
1177 #define CRYPT_REQUIREMENT_ONLINE_REENCRYPT (1 << 1)
1179 #define CRYPT_REQUIREMENT_UNKNOWN (1 << 31)
1180 
1184 typedef enum {
1188 
1207 int crypt_persistent_flags_set(struct crypt_device *cd,
1208  crypt_flags_type type,
1209  uint32_t flags);
1210 
1220 int crypt_persistent_flags_get(struct crypt_device *cd,
1221  crypt_flags_type type,
1222  uint32_t *flags);
1243 int crypt_activate_by_passphrase(struct crypt_device *cd,
1244  const char *name,
1245  int keyslot,
1246  const char *passphrase,
1247  size_t passphrase_size,
1248  uint32_t flags);
1249 
1263 int crypt_activate_by_keyfile_device_offset(struct crypt_device *cd,
1264  const char *name,
1265  int keyslot,
1266  const char *keyfile,
1267  size_t keyfile_size,
1268  uint64_t keyfile_offset,
1269  uint32_t flags);
1270 
1274 int crypt_activate_by_keyfile_offset(struct crypt_device *cd,
1275  const char *name,
1276  int keyslot,
1277  const char *keyfile,
1278  size_t keyfile_size,
1279  size_t keyfile_offset,
1280  uint32_t flags);
1281 
1285 int crypt_activate_by_keyfile(struct crypt_device *cd,
1286  const char *name,
1287  int keyslot,
1288  const char *keyfile,
1289  size_t keyfile_size,
1290  uint32_t flags);
1291 
1312 int crypt_activate_by_volume_key(struct crypt_device *cd,
1313  const char *name,
1314  const char *volume_key,
1315  size_t volume_key_size,
1316  uint32_t flags);
1317 
1335 int crypt_activate_by_signed_key(struct crypt_device *cd,
1336  const char *name,
1337  const char *volume_key,
1338  size_t volume_key_size,
1339  const char *signature,
1340  size_t signature_size,
1341  uint32_t flags);
1342 
1359 int crypt_activate_by_keyring(struct crypt_device *cd,
1360  const char *name,
1361  const char *key_description,
1362  int keyslot,
1363  uint32_t flags);
1364 
1366 #define CRYPT_DEACTIVATE_DEFERRED (1 << 0)
1368 #define CRYPT_DEACTIVATE_FORCE (1 << 1)
1370 #define CRYPT_DEACTIVATE_DEFERRED_CANCEL (1 << 2)
1371 
1384 int crypt_deactivate_by_name(struct crypt_device *cd,
1385  const char *name,
1386  uint32_t flags);
1387 
1391 int crypt_deactivate(struct crypt_device *cd, const char *name);
1417 int crypt_volume_key_get(struct crypt_device *cd,
1418  int keyslot,
1419  char *volume_key,
1420  size_t *volume_key_size,
1421  const char *passphrase,
1422  size_t passphrase_size);
1423 
1433 int crypt_volume_key_verify(struct crypt_device *cd,
1434  const char *volume_key,
1435  size_t volume_key_size);
1447 typedef enum {
1451  CRYPT_BUSY
1453 
1463 crypt_status_info crypt_status(struct crypt_device *cd, const char *name);
1464 
1472 int crypt_dump(struct crypt_device *cd);
1473 
1483 int crypt_dump_json(struct crypt_device *cd, const char **json, uint32_t flags);
1484 
1493 const char *crypt_get_cipher(struct crypt_device *cd);
1494 
1503 const char *crypt_get_cipher_mode(struct crypt_device *cd);
1504 
1513 const char *crypt_get_uuid(struct crypt_device *cd);
1514 
1523 const char *crypt_get_device_name(struct crypt_device *cd);
1524 
1533 const char *crypt_get_metadata_device_name(struct crypt_device *cd);
1534 
1543 uint64_t crypt_get_data_offset(struct crypt_device *cd);
1544 
1553 uint64_t crypt_get_iv_offset(struct crypt_device *cd);
1554 
1565 int crypt_get_volume_key_size(struct crypt_device *cd);
1566 
1575 int crypt_get_sector_size(struct crypt_device *cd);
1576 
1590 int crypt_header_is_detached(struct crypt_device *cd);
1591 
1601 int crypt_get_verity_info(struct crypt_device *cd,
1602  struct crypt_params_verity *vp);
1603 
1613 int crypt_get_integrity_info(struct crypt_device *cd,
1614  struct crypt_params_integrity *ip);
1641 int crypt_benchmark(struct crypt_device *cd,
1642  const char *cipher,
1643  const char *cipher_mode,
1644  size_t volume_key_size,
1645  size_t iv_size,
1646  size_t buffer_size,
1647  double *encryption_mbs,
1648  double *decryption_mbs);
1649 
1665 int crypt_benchmark_pbkdf(struct crypt_device *cd,
1666  struct crypt_pbkdf_type *pbkdf,
1667  const char *password,
1668  size_t password_size,
1669  const char *salt,
1670  size_t salt_size,
1671  size_t volume_key_size,
1672  int (*progress)(uint32_t time_ms, void *usrptr),
1673  void *usrptr);
1684 typedef enum {
1693 
1703 crypt_keyslot_info crypt_keyslot_status(struct crypt_device *cd, int keyslot);
1704 
1708 typedef enum {
1714 
1723 crypt_keyslot_priority crypt_keyslot_get_priority(struct crypt_device *cd, int keyslot);
1724 
1734 int crypt_keyslot_set_priority(struct crypt_device *cd, int keyslot, crypt_keyslot_priority priority);
1735 
1744 int crypt_keyslot_max(const char *type);
1745 
1757 int crypt_keyslot_area(struct crypt_device *cd,
1758  int keyslot,
1759  uint64_t *offset,
1760  uint64_t *length);
1761 
1772 int crypt_keyslot_get_key_size(struct crypt_device *cd, int keyslot);
1773 
1787 const char *crypt_keyslot_get_encryption(struct crypt_device *cd, int keyslot, size_t *key_size);
1788 
1798 int crypt_keyslot_get_pbkdf(struct crypt_device *cd, int keyslot, struct crypt_pbkdf_type *pbkdf);
1799 
1814 int crypt_keyslot_set_encryption(struct crypt_device *cd,
1815  const char *cipher,
1816  size_t key_size);
1817 
1823 const char *crypt_get_dir(void);
1824 
1842 int crypt_header_backup(struct crypt_device *cd,
1843  const char *requested_type,
1844  const char *backup_file);
1845 
1856 int crypt_header_restore(struct crypt_device *cd,
1857  const char *requested_type,
1858  const char *backup_file);
1869 #define CRYPT_DEBUG_ALL -1
1871 #define CRYPT_DEBUG_JSON -2
1873 #define CRYPT_DEBUG_NONE 0
1874 
1881 void crypt_set_debug_level(int level);
1906 int crypt_keyfile_device_read(struct crypt_device *cd,
1907  const char *keyfile,
1908  char **key, size_t *key_size_read,
1909  uint64_t keyfile_offset,
1910  size_t key_size,
1911  uint32_t flags);
1912 
1916 int crypt_keyfile_read(struct crypt_device *cd,
1917  const char *keyfile,
1918  char **key, size_t *key_size_read,
1919  size_t keyfile_offset,
1920  size_t key_size,
1921  uint32_t flags);
1922 
1924 #define CRYPT_KEYFILE_STOP_EOL (1 << 0)
1935 typedef enum {
1941 
1962 int crypt_wipe(struct crypt_device *cd,
1963  const char *dev_path, /* if null, use data device */
1964  crypt_wipe_pattern pattern,
1965  uint64_t offset,
1966  uint64_t length,
1967  size_t wipe_block_size,
1968  uint32_t flags,
1969  int (*progress)(uint64_t size, uint64_t offset, void *usrptr),
1970  void *usrptr
1971 );
1972 
1974 #define CRYPT_WIPE_NO_DIRECT_IO (1 << 0)
2000 int crypt_token_max(const char *type);
2001 
2003 #define CRYPT_ANY_TOKEN -1
2004 
2014 int crypt_token_json_get(struct crypt_device *cd,
2015  int token,
2016  const char **json);
2017 
2031 int crypt_token_json_set(struct crypt_device *cd,
2032  int token,
2033  const char *json);
2034 
2038 typedef enum {
2046 
2061 crypt_token_info crypt_token_status(struct crypt_device *cd, int token, const char **type);
2062 
2070  const char *key_description;
2071 };
2072 
2083 int crypt_token_luks2_keyring_set(struct crypt_device *cd,
2084  int token,
2085  const struct crypt_token_params_luks2_keyring *params);
2086 
2099 int crypt_token_luks2_keyring_get(struct crypt_device *cd,
2100  int token,
2101  struct crypt_token_params_luks2_keyring *params);
2102 
2114 int crypt_token_assign_keyslot(struct crypt_device *cd,
2115  int token,
2116  int keyslot);
2117 
2129 int crypt_token_unassign_keyslot(struct crypt_device *cd,
2130  int token,
2131  int keyslot);
2132 
2144 int crypt_token_is_assigned(struct crypt_device *cd,
2145  int token,
2146  int keyslot);
2147 
2169 typedef int (*crypt_token_open_func) (
2170  struct crypt_device *cd,
2171  int token,
2172  char **buffer,
2173  size_t *buffer_len,
2174  void *usrptr);
2175 
2200  struct crypt_device *cd,
2201  int token,
2202  const char *pin,
2203  size_t pin_size,
2204  char **buffer,
2205  size_t *buffer_len,
2206  void *usrptr);
2207 
2217 typedef void (*crypt_token_buffer_free_func) (void *buffer, size_t buffer_len);
2218 
2230 typedef int (*crypt_token_validate_func) (struct crypt_device *cd, const char *json);
2231 
2243 typedef void (*crypt_token_dump_func) (struct crypt_device *cd, const char *json);
2244 
2253 typedef const char * (*crypt_token_version_func) (void);
2254 
2258 typedef struct {
2259  const char *name;
2265 
2274 
2280 const char *crypt_token_external_path(void);
2281 
2287 
2289 #define CRYPT_TOKEN_ABI_VERSION1 "CRYPTSETUP_TOKEN_1.0"
2290 
2292 #define CRYPT_TOKEN_ABI_OPEN "cryptsetup_token_open" /* mandatory */
2293 #define CRYPT_TOKEN_ABI_OPEN_PIN "cryptsetup_token_open_pin"
2294 #define CRYPT_TOKEN_ABI_BUFFER_FREE "cryptsetup_token_buffer_free"
2295 #define CRYPT_TOKEN_ABI_VALIDATE "cryptsetup_token_validate"
2296 #define CRYPT_TOKEN_ABI_DUMP "cryptsetup_token_dump"
2297 #define CRYPT_TOKEN_ABI_VERSION "cryptsetup_token_version"
2298 
2328 int crypt_activate_by_token(struct crypt_device *cd,
2329  const char *name,
2330  int token,
2331  void *usrptr,
2332  uint32_t flags);
2333 
2366 int crypt_activate_by_token_pin(struct crypt_device *cd,
2367  const char *name,
2368  const char *type,
2369  int token,
2370  const char *pin,
2371  size_t pin_size,
2372  void *usrptr,
2373  uint32_t flags);
2386 #define CRYPT_REENCRYPT_INITIALIZE_ONLY (1 << 0)
2388 #define CRYPT_REENCRYPT_MOVE_FIRST_SEGMENT (1 << 1)
2390 #define CRYPT_REENCRYPT_RESUME_ONLY (1 << 2)
2392 #define CRYPT_REENCRYPT_RECOVERY (1 << 3)
2393 
2397 typedef enum {
2401 
2405 typedef enum {
2410 
2417  const char *resilience;
2418  const char *hash;
2419  uint64_t data_shift;
2420  uint64_t max_hotzone_size;
2421  uint64_t device_size;
2422  const struct crypt_params_luks2 *luks2;
2423  uint32_t flags;
2424 };
2425 
2446 int crypt_reencrypt_init_by_passphrase(struct crypt_device *cd,
2447  const char *name,
2448  const char *passphrase,
2449  size_t passphrase_size,
2450  int keyslot_old,
2451  int keyslot_new,
2452  const char *cipher,
2453  const char *cipher_mode,
2454  const struct crypt_params_reencrypt *params);
2455 
2475 int crypt_reencrypt_init_by_keyring(struct crypt_device *cd,
2476  const char *name,
2477  const char *key_description,
2478  int keyslot_old,
2479  int keyslot_new,
2480  const char *cipher,
2481  const char *cipher_mode,
2482  const struct crypt_params_reencrypt *params);
2483 
2495 int crypt_reencrypt(struct crypt_device *cd,
2496  int (*progress)(uint64_t size, uint64_t offset, void *usrptr))
2497 __attribute__((deprecated));
2498 
2509 int crypt_reencrypt_run(struct crypt_device *cd,
2510  int (*progress)(uint64_t size, uint64_t offset, void *usrptr),
2511  void *usrptr);
2512 
2516 typedef enum {
2522 
2532  struct crypt_params_reencrypt *params);
2548 void *crypt_safe_alloc(size_t size);
2549 
2556 void crypt_safe_free(void *data);
2557 
2566 void *crypt_safe_realloc(void *data, size_t size);
2567 
2574 void crypt_safe_memzero(void *data, size_t size);
2575 
2578 #ifdef __cplusplus
2579 }
2580 #endif
2581 #endif /* _LIBCRYPTSETUP_H */
int crypt_suspend(struct crypt_device *cd, const char *name)
int crypt_resize(struct crypt_device *cd, const char *name, uint64_t new_size)
void crypt_set_compatibility(struct crypt_device *cd, uint32_t flags)
int crypt_set_uuid(struct crypt_device *cd, const char *uuid)
int crypt_resume_by_keyfile_device_offset(struct crypt_device *cd, const char *name, int keyslot, const char *keyfile, size_t keyfile_size, uint64_t keyfile_offset)
int crypt_resume_by_volume_key(struct crypt_device *cd, const char *name, const char *volume_key, size_t volume_key_size)
int crypt_volume_key_keyring(struct crypt_device *cd, int enable)
int crypt_format(struct crypt_device *cd, const char *type, const char *cipher, const char *cipher_mode, const char *uuid, const char *volume_key, size_t volume_key_size, void *params)
int crypt_load(struct crypt_device *cd, const char *requested_type, void *params)
int crypt_resume_by_keyfile_offset(struct crypt_device *cd, const char *name, int keyslot, const char *keyfile, size_t keyfile_size, size_t keyfile_offset)
int crypt_repair(struct crypt_device *cd, const char *requested_type, void *params)
uint32_t crypt_get_compatibility(struct crypt_device *cd)
int crypt_convert(struct crypt_device *cd, const char *type, void *params)
int crypt_resume_by_passphrase(struct crypt_device *cd, const char *name, int keyslot, const char *passphrase, size_t passphrase_size)
int crypt_set_label(struct crypt_device *cd, const char *label, const char *subsystem)
int crypt_resume_by_keyfile(struct crypt_device *cd, const char *name, int keyslot, const char *keyfile, size_t keyfile_size)
int crypt_deactivate_by_name(struct crypt_device *cd, const char *name, uint32_t flags)
int crypt_activate_by_passphrase(struct crypt_device *cd, const char *name, int keyslot, const char *passphrase, size_t passphrase_size, uint32_t flags)
int crypt_activate_by_signed_key(struct crypt_device *cd, const char *name, const char *volume_key, size_t volume_key_size, const char *signature, size_t signature_size, uint32_t flags)
int crypt_deactivate(struct crypt_device *cd, const char *name)
int crypt_activate_by_keyfile_device_offset(struct crypt_device *cd, const char *name, int keyslot, const char *keyfile, size_t keyfile_size, uint64_t keyfile_offset, uint32_t flags)
int crypt_activate_by_volume_key(struct crypt_device *cd, const char *name, const char *volume_key, size_t volume_key_size, uint32_t flags)
int crypt_activate_by_keyfile_offset(struct crypt_device *cd, const char *name, int keyslot, const char *keyfile, size_t keyfile_size, size_t keyfile_offset, uint32_t flags)
int crypt_activate_by_keyfile(struct crypt_device *cd, const char *name, int keyslot, const char *keyfile, size_t keyfile_size, uint32_t flags)
int crypt_activate_by_keyring(struct crypt_device *cd, const char *name, const char *key_description, int keyslot, uint32_t flags)
uint64_t crypt_get_active_integrity_failures(struct crypt_device *cd, const char *name)
int crypt_get_active_device(struct crypt_device *cd, const char *name, struct crypt_active_device *cad)
int crypt_header_backup(struct crypt_device *cd, const char *requested_type, const char *backup_file)
int crypt_header_restore(struct crypt_device *cd, const char *requested_type, const char *backup_file)
int crypt_benchmark(struct crypt_device *cd, const char *cipher, const char *cipher_mode, size_t volume_key_size, size_t iv_size, size_t buffer_size, double *encryption_mbs, double *decryption_mbs)
int crypt_benchmark_pbkdf(struct crypt_device *cd, struct crypt_pbkdf_type *pbkdf, const char *password, size_t password_size, const char *salt, size_t salt_size, size_t volume_key_size, int(*progress)(uint32_t time_ms, void *usrptr), void *usrptr)
void crypt_set_debug_level(int level)
int crypt_dump(struct crypt_device *cd)
const char * crypt_get_uuid(struct crypt_device *cd)
int crypt_get_verity_info(struct crypt_device *cd, struct crypt_params_verity *vp)
int crypt_header_is_detached(struct crypt_device *cd)
uint64_t crypt_get_data_offset(struct crypt_device *cd)
int crypt_get_volume_key_size(struct crypt_device *cd)
int crypt_dump_json(struct crypt_device *cd, const char **json, uint32_t flags)
int crypt_get_sector_size(struct crypt_device *cd)
const char * crypt_get_metadata_device_name(struct crypt_device *cd)
crypt_status_info
Definition: libcryptsetup.h:1447
uint64_t crypt_get_iv_offset(struct crypt_device *cd)
crypt_status_info crypt_status(struct crypt_device *cd, const char *name)
int crypt_get_integrity_info(struct crypt_device *cd, struct crypt_params_integrity *ip)
const char * crypt_get_cipher(struct crypt_device *cd)
const char * crypt_get_cipher_mode(struct crypt_device *cd)
const char * crypt_get_device_name(struct crypt_device *cd)
@ CRYPT_INVALID
Definition: libcryptsetup.h:1448
@ CRYPT_ACTIVE
Definition: libcryptsetup.h:1450
@ CRYPT_INACTIVE
Definition: libcryptsetup.h:1449
@ CRYPT_BUSY
Definition: libcryptsetup.h:1451
int crypt_init_by_name(struct crypt_device **cd, const char *name)
void crypt_free(struct crypt_device *cd)
int crypt_init_data_device(struct crypt_device **cd, const char *device, const char *data_device)
int crypt_set_data_offset(struct crypt_device *cd, uint64_t data_offset)
int crypt_init_by_name_and_header(struct crypt_device **cd, const char *name, const char *header_device)
int crypt_init(struct crypt_device **cd, const char *device)
void crypt_set_confirm_callback(struct crypt_device *cd, int(*confirm)(const char *msg, void *usrptr), void *usrptr)
int crypt_set_data_device(struct crypt_device *cd, const char *device)
int crypt_volume_key_verify(struct crypt_device *cd, const char *volume_key, size_t volume_key_size)
int crypt_volume_key_get(struct crypt_device *cd, int keyslot, char *volume_key, size_t *volume_key_size, const char *passphrase, size_t passphrase_size)
int crypt_keyfile_device_read(struct crypt_device *cd, const char *keyfile, char **key, size_t *key_size_read, uint64_t keyfile_offset, size_t key_size, uint32_t flags)
int crypt_keyfile_read(struct crypt_device *cd, const char *keyfile, char **key, size_t *key_size_read, size_t keyfile_offset, size_t key_size, uint32_t flags)
crypt_keyslot_info
Definition: libcryptsetup.h:1684
int crypt_keyslot_area(struct crypt_device *cd, int keyslot, uint64_t *offset, uint64_t *length)
int crypt_keyslot_set_encryption(struct crypt_device *cd, const char *cipher, size_t key_size)
int crypt_keyslot_add_by_keyfile(struct crypt_device *cd, int keyslot, const char *keyfile, size_t keyfile_size, const char *new_keyfile, size_t new_keyfile_size)
crypt_keyslot_priority
Definition: libcryptsetup.h:1708
const char * crypt_keyslot_get_encryption(struct crypt_device *cd, int keyslot, size_t *key_size)
int crypt_keyslot_add_by_passphrase(struct crypt_device *cd, int keyslot, const char *passphrase, size_t passphrase_size, const char *new_passphrase, size_t new_passphrase_size)
int crypt_keyslot_change_by_passphrase(struct crypt_device *cd, int keyslot_old, int keyslot_new, const char *passphrase, size_t passphrase_size, const char *new_passphrase, size_t new_passphrase_size)
int crypt_keyslot_add_by_keyfile_device_offset(struct crypt_device *cd, int keyslot, const char *keyfile, size_t keyfile_size, uint64_t keyfile_offset, const char *new_keyfile, size_t new_keyfile_size, uint64_t new_keyfile_offset)
int crypt_keyslot_add_by_key(struct crypt_device *cd, int keyslot, const char *volume_key, size_t volume_key_size, const char *passphrase, size_t passphrase_size, uint32_t flags)
const char * crypt_get_dir(void)
int crypt_keyslot_set_priority(struct crypt_device *cd, int keyslot, crypt_keyslot_priority priority)
int crypt_keyslot_add_by_keyfile_offset(struct crypt_device *cd, int keyslot, const char *keyfile, size_t keyfile_size, size_t keyfile_offset, const char *new_keyfile, size_t new_keyfile_size, size_t new_keyfile_offset)
int crypt_keyslot_add_by_volume_key(struct crypt_device *cd, int keyslot, const char *volume_key, size_t volume_key_size, const char *passphrase, size_t passphrase_size)
int crypt_keyslot_destroy(struct crypt_device *cd, int keyslot)
int crypt_keyslot_get_pbkdf(struct crypt_device *cd, int keyslot, struct crypt_pbkdf_type *pbkdf)
crypt_keyslot_priority crypt_keyslot_get_priority(struct crypt_device *cd, int keyslot)
crypt_keyslot_info crypt_keyslot_status(struct crypt_device *cd, int keyslot)
int crypt_keyslot_max(const char *type)
int crypt_keyslot_get_key_size(struct crypt_device *cd, int keyslot)
@ CRYPT_SLOT_UNBOUND
Definition: libcryptsetup.h:1690
@ CRYPT_SLOT_ACTIVE_LAST
Definition: libcryptsetup.h:1688
@ CRYPT_SLOT_INACTIVE
Definition: libcryptsetup.h:1686
@ CRYPT_SLOT_ACTIVE
Definition: libcryptsetup.h:1687
@ CRYPT_SLOT_INVALID
Definition: libcryptsetup.h:1685
@ CRYPT_SLOT_PRIORITY_IGNORE
Definition: libcryptsetup.h:1710
@ CRYPT_SLOT_PRIORITY_INVALID
Definition: libcryptsetup.h:1709
@ CRYPT_SLOT_PRIORITY_NORMAL
Definition: libcryptsetup.h:1711
@ CRYPT_SLOT_PRIORITY_PREFER
Definition: libcryptsetup.h:1712
void crypt_logf(struct crypt_device *cd, int level, const char *format,...)
void crypt_set_log_callback(struct crypt_device *cd, void(*log)(int level, const char *msg, void *usrptr), void *usrptr)
void crypt_log(struct crypt_device *cd, int level, const char *msg)
void crypt_safe_free(void *data)
void * crypt_safe_alloc(size_t size)
void crypt_safe_memzero(void *data, size_t size)
void * crypt_safe_realloc(void *data, size_t size)
int crypt_persistent_flags_get(struct crypt_device *cd, crypt_flags_type type, uint32_t *flags)
crypt_flags_type
Definition: libcryptsetup.h:1184
int crypt_persistent_flags_set(struct crypt_device *cd, crypt_flags_type type, uint32_t flags)
@ CRYPT_FLAGS_REQUIREMENTS
Definition: libcryptsetup.h:1186
@ CRYPT_FLAGS_ACTIVATION
Definition: libcryptsetup.h:1185
int crypt_reencrypt_init_by_keyring(struct crypt_device *cd, const char *name, const char *key_description, int keyslot_old, int keyslot_new, const char *cipher, const char *cipher_mode, const struct crypt_params_reencrypt *params)
crypt_reencrypt_mode_info
Definition: libcryptsetup.h:2405
int crypt_reencrypt_run(struct crypt_device *cd, int(*progress)(uint64_t size, uint64_t offset, void *usrptr), void *usrptr)
crypt_reencrypt_info
Definition: libcryptsetup.h:2516
int crypt_reencrypt_init_by_passphrase(struct crypt_device *cd, const char *name, const char *passphrase, size_t passphrase_size, int keyslot_old, int keyslot_new, const char *cipher, const char *cipher_mode, const struct crypt_params_reencrypt *params)
crypt_reencrypt_info crypt_reencrypt_status(struct crypt_device *cd, struct crypt_params_reencrypt *params)
int crypt_reencrypt(struct crypt_device *cd, int(*progress)(uint64_t size, uint64_t offset, void *usrptr)) __attribute__((deprecated))
crypt_reencrypt_direction_info
Definition: libcryptsetup.h:2397
@ CRYPT_REENCRYPT_ENCRYPT
Definition: libcryptsetup.h:2407
@ CRYPT_REENCRYPT_DECRYPT
Definition: libcryptsetup.h:2408
@ CRYPT_REENCRYPT_REENCRYPT
Definition: libcryptsetup.h:2406
@ CRYPT_REENCRYPT_INVALID
Definition: libcryptsetup.h:2520
@ CRYPT_REENCRYPT_NONE
Definition: libcryptsetup.h:2517
@ CRYPT_REENCRYPT_CLEAN
Definition: libcryptsetup.h:2518
@ CRYPT_REENCRYPT_CRASH
Definition: libcryptsetup.h:2519
@ CRYPT_REENCRYPT_BACKWARD
Definition: libcryptsetup.h:2399
@ CRYPT_REENCRYPT_FORWARD
Definition: libcryptsetup.h:2398
const struct crypt_pbkdf_type * crypt_get_pbkdf_default(const char *type)
const struct crypt_pbkdf_type * crypt_get_pbkdf_type(struct crypt_device *cd)
int crypt_get_metadata_size(struct crypt_device *cd, uint64_t *metadata_size, uint64_t *keyslots_size)
const struct crypt_pbkdf_type * crypt_get_pbkdf_type_params(const char *pbkdf_type)
void crypt_set_rng_type(struct crypt_device *cd, int rng_type)
void crypt_set_iteration_time(struct crypt_device *cd, uint64_t iteration_time_ms)
int crypt_metadata_locking(struct crypt_device *cd, int enable)
int crypt_set_metadata_size(struct crypt_device *cd, uint64_t metadata_size, uint64_t keyslots_size)
int crypt_get_rng_type(struct crypt_device *cd)
int crypt_memory_lock(struct crypt_device *cd, int lock)
int crypt_set_pbkdf_type(struct crypt_device *cd, const struct crypt_pbkdf_type *pbkdf)
int(* crypt_token_open_func)(struct crypt_device *cd, int token, char **buffer, size_t *buffer_len, void *usrptr)
Definition: libcryptsetup.h:2169
int crypt_token_assign_keyslot(struct crypt_device *cd, int token, int keyslot)
const char * crypt_token_external_path(void)
void(* crypt_token_dump_func)(struct crypt_device *cd, const char *json)
Definition: libcryptsetup.h:2243
int crypt_token_luks2_keyring_set(struct crypt_device *cd, int token, const struct crypt_token_params_luks2_keyring *params)
void crypt_token_external_disable(void)
int crypt_token_json_set(struct crypt_device *cd, int token, const char *json)
int crypt_token_luks2_keyring_get(struct crypt_device *cd, int token, struct crypt_token_params_luks2_keyring *params)
crypt_token_info
Definition: libcryptsetup.h:2038
int crypt_token_unassign_keyslot(struct crypt_device *cd, int token, int keyslot)
int crypt_token_register(const crypt_token_handler *handler)
int crypt_token_max(const char *type)
int(* crypt_token_open_pin_func)(struct crypt_device *cd, int token, const char *pin, size_t pin_size, char **buffer, size_t *buffer_len, void *usrptr)
Definition: libcryptsetup.h:2199
crypt_token_info crypt_token_status(struct crypt_device *cd, int token, const char **type)
int crypt_token_is_assigned(struct crypt_device *cd, int token, int keyslot)
int(* crypt_token_validate_func)(struct crypt_device *cd, const char *json)
Definition: libcryptsetup.h:2230
int crypt_token_json_get(struct crypt_device *cd, int token, const char **json)
int crypt_activate_by_token_pin(struct crypt_device *cd, const char *name, const char *type, int token, const char *pin, size_t pin_size, void *usrptr, uint32_t flags)
void(* crypt_token_buffer_free_func)(void *buffer, size_t buffer_len)
Definition: libcryptsetup.h:2217
int crypt_activate_by_token(struct crypt_device *cd, const char *name, int token, void *usrptr, uint32_t flags)
@ CRYPT_TOKEN_INTERNAL_UNKNOWN
Definition: libcryptsetup.h:2042
@ CRYPT_TOKEN_EXTERNAL_UNKNOWN
Definition: libcryptsetup.h:2044
@ CRYPT_TOKEN_EXTERNAL
Definition: libcryptsetup.h:2043
@ CRYPT_TOKEN_INACTIVE
Definition: libcryptsetup.h:2040
@ CRYPT_TOKEN_INTERNAL
Definition: libcryptsetup.h:2041
@ CRYPT_TOKEN_INVALID
Definition: libcryptsetup.h:2039
const char * crypt_get_default_type(void)
const char * crypt_get_type(struct crypt_device *cd)
int crypt_wipe(struct crypt_device *cd, const char *dev_path, crypt_wipe_pattern pattern, uint64_t offset, uint64_t length, size_t wipe_block_size, uint32_t flags, int(*progress)(uint64_t size, uint64_t offset, void *usrptr), void *usrptr)
crypt_wipe_pattern
Definition: libcryptsetup.h:1935
@ CRYPT_WIPE_ZERO
Definition: libcryptsetup.h:1936
@ CRYPT_WIPE_RANDOM
Definition: libcryptsetup.h:1937
@ CRYPT_WIPE_SPECIAL
Definition: libcryptsetup.h:1939
@ CRYPT_WIPE_ENCRYPTED_ZERO
Definition: libcryptsetup.h:1938
Definition: libcryptsetup.h:1131
uint64_t offset
Definition: libcryptsetup.h:1132
uint64_t iv_offset
Definition: libcryptsetup.h:1133
uint64_t size
Definition: libcryptsetup.h:1134
uint32_t flags
Definition: libcryptsetup.h:1135
Definition: libcryptsetup.h:567
uint32_t sector_size
Definition: libcryptsetup.h:573
uint32_t journal_integrity_key_size
Definition: libcryptsetup.h:580
unsigned int journal_commit_time
Definition: libcryptsetup.h:570
uint32_t journal_crypt_key_size
Definition: libcryptsetup.h:584
uint32_t integrity_key_size
Definition: libcryptsetup.h:576
uint32_t interleave_sectors
Definition: libcryptsetup.h:571
const char * journal_integrity
Definition: libcryptsetup.h:578
uint64_t journal_size
Definition: libcryptsetup.h:568
const char * integrity
Definition: libcryptsetup.h:575
const char * journal_crypt_key
Definition: libcryptsetup.h:583
const char * journal_crypt
Definition: libcryptsetup.h:582
uint32_t buffer_sectors
Definition: libcryptsetup.h:574
unsigned int journal_watermark
Definition: libcryptsetup.h:569
const char * journal_integrity_key
Definition: libcryptsetup.h:579
uint32_t tag_size
Definition: libcryptsetup.h:572
Definition: libcryptsetup.h:483
uint64_t skip
Definition: libcryptsetup.h:486
const char * hash
Definition: libcryptsetup.h:484
uint64_t offset
Definition: libcryptsetup.h:485
Definition: libcryptsetup.h:470
const char * hash
Definition: libcryptsetup.h:471
const char * data_device
Definition: libcryptsetup.h:473
size_t data_alignment
Definition: libcryptsetup.h:472
Definition: libcryptsetup.h:596
const struct crypt_params_integrity * integrity_params
Definition: libcryptsetup.h:599
const char * label
Definition: libcryptsetup.h:603
size_t data_alignment
Definition: libcryptsetup.h:600
const struct crypt_pbkdf_type * pbkdf
Definition: libcryptsetup.h:597
const char * subsystem
Definition: libcryptsetup.h:604
uint32_t sector_size
Definition: libcryptsetup.h:602
const char * data_device
Definition: libcryptsetup.h:601
const char * integrity
Definition: libcryptsetup.h:598
Definition: libcryptsetup.h:453
uint32_t sector_size
Definition: libcryptsetup.h:458
uint64_t offset
Definition: libcryptsetup.h:455
const char * hash
Definition: libcryptsetup.h:454
uint64_t size
Definition: libcryptsetup.h:457
uint64_t skip
Definition: libcryptsetup.h:456
Definition: libcryptsetup.h:2414
const char * hash
Definition: libcryptsetup.h:2418
crypt_reencrypt_direction_info direction
Definition: libcryptsetup.h:2416
const char * resilience
Definition: libcryptsetup.h:2417
uint64_t data_shift
Definition: libcryptsetup.h:2419
uint64_t max_hotzone_size
Definition: libcryptsetup.h:2420
crypt_reencrypt_mode_info mode
Definition: libcryptsetup.h:2415
uint64_t device_size
Definition: libcryptsetup.h:2421
const struct crypt_params_luks2 * luks2
Definition: libcryptsetup.h:2422
uint32_t flags
Definition: libcryptsetup.h:2423
Definition: libcryptsetup.h:529
const char ** keyfiles
Definition: libcryptsetup.h:532
const char * passphrase
Definition: libcryptsetup.h:530
size_t key_size
Definition: libcryptsetup.h:537
const char * mode
Definition: libcryptsetup.h:536
unsigned int keyfiles_count
Definition: libcryptsetup.h:533
uint32_t flags
Definition: libcryptsetup.h:538
const char * hash_name
Definition: libcryptsetup.h:534
size_t passphrase_size
Definition: libcryptsetup.h:531
const char * cipher
Definition: libcryptsetup.h:535
uint32_t veracrypt_pim
Definition: libcryptsetup.h:539
Definition: libcryptsetup.h:496
uint32_t fec_roots
Definition: libcryptsetup.h:509
const char * data_device
Definition: libcryptsetup.h:498
uint64_t data_size
Definition: libcryptsetup.h:506
const char * fec_device
Definition: libcryptsetup.h:500
const char * hash_name
Definition: libcryptsetup.h:497
uint32_t flags
Definition: libcryptsetup.h:510
uint32_t data_block_size
Definition: libcryptsetup.h:504
uint32_t salt_size
Definition: libcryptsetup.h:502
uint32_t hash_type
Definition: libcryptsetup.h:503
uint64_t hash_area_offset
Definition: libcryptsetup.h:507
const char * salt
Definition: libcryptsetup.h:501
uint32_t hash_block_size
Definition: libcryptsetup.h:505
const char * hash_device
Definition: libcryptsetup.h:499
uint64_t fec_area_offset
Definition: libcryptsetup.h:508
Definition: libcryptsetup.h:261
const char * type
Definition: libcryptsetup.h:262
uint32_t time_ms
Definition: libcryptsetup.h:264
const char * hash
Definition: libcryptsetup.h:263
uint32_t flags
Definition: libcryptsetup.h:268
uint32_t max_memory_kb
Definition: libcryptsetup.h:266
uint32_t iterations
Definition: libcryptsetup.h:265
uint32_t parallel_threads
Definition: libcryptsetup.h:267
Definition: libcryptsetup.h:2258
crypt_token_dump_func dump
Definition: libcryptsetup.h:2263
crypt_token_validate_func validate
Definition: libcryptsetup.h:2262
const char * name
Definition: libcryptsetup.h:2259
crypt_token_buffer_free_func buffer_free
Definition: libcryptsetup.h:2261
crypt_token_open_func open
Definition: libcryptsetup.h:2260
Definition: libcryptsetup.h:2069
const char * key_description
Definition: libcryptsetup.h:2070