diff --git a/src/cryptsetup.h b/src/cryptsetup.h index 153c7aad..64521b2e 100644 --- a/src/cryptsetup.h +++ b/src/cryptsetup.h @@ -103,6 +103,7 @@ void tools_clear_line(void); void tools_time_progress(uint64_t device_size, uint64_t bytes, struct timeval *start_time, struct timeval *end_time); int tools_wipe_progress(uint64_t size, uint64_t offset, void *usrptr); +int tools_reencrypt_progress(uint64_t size, uint64_t offset, void *usrptr); int tools_read_mk(const char *file, char **key, int keysize); int tools_write_mk(const char *file, const char *key, int keysize); diff --git a/src/utils_tools.c b/src/utils_tools.c index 5b579c92..ef361cbd 100644 --- a/src/utils_tools.c +++ b/src/utils_tools.c @@ -592,3 +592,19 @@ int tools_is_stdin(const char *key_file) return strcmp(key_file, "-") ? 0 : 1; } + +int tools_reencrypt_progress(uint64_t size, uint64_t offset, void *usrptr) +{ + static struct timeval start_time = {}, end_time = {}; + int r = 0; + + tools_time_progress(size, offset, &start_time, &end_time); + + check_signal(&r); + if (r) { + tools_clear_line(); + log_err("\nReencrypt interrupted."); + } + + return r; +}