#ifndef _LIBCRYPTSETUP_H #define _LIBCRYPTSETUP_H #ifdef __cplusplus extern "C" { #endif #include #define CRYPT_LOG_NORMAL 0 #define CRYPT_LOG_ERROR 1 struct interface_callbacks { int (*yesDialog)(char *msg); void (*log)(int class, char *msg); }; #define CRYPT_FLAG_VERIFY (1 << 0) #define CRYPT_FLAG_READONLY (1 << 1) #define CRYPT_FLAG_VERIFY_IF_POSSIBLE (1 << 2) #define CRYPT_FLAG_VERIFY_ON_DELKEY (1 << 3) #define CRYPT_FLAG_NON_EXCLUSIVE_ACCESS (1 << 4) struct crypt_options { const char *name; const char *device; const char *cipher; const char *hash; const char *passphrase; int passphrase_fd; const char *key_file; const char *new_key_file; int key_size; unsigned int flags; int key_slot; uint64_t size; uint64_t offset; uint64_t skip; uint64_t iteration_time; uint64_t timeout; uint64_t align_payload; int tries; struct interface_callbacks *icb; }; int crypt_create_device(struct crypt_options *options); int crypt_update_device(struct crypt_options *options); int crypt_resize_device(struct crypt_options *options); int crypt_query_device(struct crypt_options *options); int crypt_remove_device(struct crypt_options *options); int crypt_luksFormat(struct crypt_options *options); int crypt_luksOpen(struct crypt_options *options); int crypt_luksKillSlot(struct crypt_options *options); int crypt_luksRemoveKey(struct crypt_options *options); int crypt_luksAddKey(struct crypt_options *options); int crypt_luksUUID(struct crypt_options *options); int crypt_isLuks(struct crypt_options *options); int crypt_luksFormat(struct crypt_options *options); int crypt_luksDump(struct crypt_options *options); void crypt_get_error(char *buf, size_t size); void crypt_put_options(struct crypt_options *options); const char *crypt_get_dir(void); #ifdef __cplusplus } #endif #endif /* _LIBCRYPTSETUP_H */