1 #ifndef _LIBCRYPTSETUP_H
2 #define _LIBCRYPTSETUP_H
9 struct crypt_device; /* crypt device handle */
11 #define CRYPT_ANY_SLOT -1
13 typedef enum { SLOT_INVALID, SLOT_INACTIVE, SLOT_ACTIVE, SLOT_ACTIVE_LAST } crypt_keyslot_info;
15 #define CRYPT_LOG_NORMAL 0
16 #define CRYPT_LOG_ERROR 1
17 #define CRYPT_LOG_DEBUG -1 /* always on stdout */
19 struct interface_callbacks {
20 int (*yesDialog)(char *msg);
21 void (*log)(int class, char *msg);
24 #define CRYPT_FLAG_VERIFY (1 << 0)
25 #define CRYPT_FLAG_READONLY (1 << 1)
26 #define CRYPT_FLAG_VERIFY_IF_POSSIBLE (1 << 2)
27 #define CRYPT_FLAG_VERIFY_ON_DELKEY (1 << 3)
28 #define CRYPT_FLAG_NON_EXCLUSIVE_ACCESS (1 << 4)
30 struct crypt_options {
37 const char *passphrase;
40 const char *new_key_file;
49 uint64_t iteration_time;
52 uint64_t align_payload;
55 struct interface_callbacks *icb;
58 int crypt_create_device(struct crypt_options *options);
59 int crypt_update_device(struct crypt_options *options);
60 int crypt_resize_device(struct crypt_options *options);
61 int crypt_query_device(struct crypt_options *options);
62 int crypt_remove_device(struct crypt_options *options);
63 int crypt_luksFormat(struct crypt_options *options);
64 int crypt_luksOpen(struct crypt_options *options);
65 int crypt_luksKillSlot(struct crypt_options *options);
66 int crypt_luksRemoveKey(struct crypt_options *options);
67 int crypt_luksAddKey(struct crypt_options *options);
68 int crypt_luksUUID(struct crypt_options *options);
69 int crypt_isLuks(struct crypt_options *options);
70 int crypt_luksDump(struct crypt_options *options);
72 void crypt_get_error(char *buf, size_t size);
73 void crypt_put_options(struct crypt_options *options);
74 const char *crypt_get_dir(void);
79 #endif /* _LIBCRYPTSETUP_H */