log_setup_service();
- crypt_set_log_callback(NULL, cryptsetup_log_glue, NULL);
- if (DEBUG_LOGGING)
- /* libcryptsetup won't even consider debug messages by default */
- crypt_set_debug_level(CRYPT_DEBUG_ALL);
+ cryptsetup_enable_logging(cd);
umask(0022);
if (r < 0)
return log_error_errno(r, "crypt_init() failed: %m");
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
status = crypt_status(cd, argv[2]);
if (IN_SET(status, CRYPT_ACTIVE, CRYPT_BUSY)) {
if (r < 0)
return log_error_errno(r, "crypt_init_by_name() failed: %m");
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_deactivate(cd, argv[2]);
if (r < 0)
if (r < 0)
return log_error_errno(r, "Failed to allocate libcryptsetup context: %m");
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_load(cd, CRYPT_LUKS2, NULL);
if (r < 0)
if (r < 0)
return log_error_errno(r, "Failed to initialize cryptsetup context for %s: %m", dm_name);
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_load(cd, CRYPT_LUKS2, NULL);
if (r < 0)
else {
log_info("Discovered used LUKS device %s.", dm_node);
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_deactivate(cd, dm_name);
if (IN_SET(r, -ENODEV, -EINVAL, -ENOENT)) {
if (r < 0)
return log_error_errno(r, "Failed to allocate libcryptsetup context: %m");
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
/* Normally we'd, just leave volume key generation to libcryptsetup. However, we can't, since we
* can't extract the volume key from the library again, but we need it in order to encrypt the JSON
return log_error_errno(r, "Failed to initialize cryptsetup context for %s: %m", dm_name);
log_info("Discovered used LUKS device %s.", dm_node);
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
if (syncfs(root_fd) < 0) /* Snake oil, but let's better be safe than sorry */
return log_error_errno(errno, "Failed to synchronize file system %s: %m", p);
return log_error_errno(r, "Failed to initialize cryptsetup context for %s: %m", dm_name);
log_info("Discovered used LUKS device %s.", dm_node);
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = -ENOKEY;
FOREACH_POINTER(list, cache->pkcs11_passwords, cache->fido2_passwords, h->password) {
if (r < 0)
return log_error_errno(r, "crypt_init(\"%s\") failed: %m", devpath);
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_load(cd, CRYPT_LUKS, NULL);
if (r < 0)
int r;
#if HAVE_LIBCRYPTSETUP
- crypt_set_log_callback(NULL, cryptsetup_log_glue, NULL);
- if (DEBUG_LOGGING)
- crypt_set_debug_level(CRYPT_DEBUG_ALL);
+ cryptsetup_enable_logging(NULL);
#endif
r = get_block_device_harder(mountpath, &devno);
#include "crypt-util.h"
#include "log.h"
-void cryptsetup_log_glue(int level, const char *msg, void *usrptr) {
+static void cryptsetup_log_glue(int level, const char *msg, void *usrptr) {
switch (level) {
case CRYPT_LOG_NORMAL:
level = LOG_NOTICE;
log_full(level, "%s", msg);
}
+
+void cryptsetup_enable_logging(struct crypt_device *cd) {
+ crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ crypt_set_debug_level(DEBUG_LOGGING ? CRYPT_DEBUG_ALL : CRYPT_DEBUG_NONE);
+}
+
#endif
DEFINE_TRIVIAL_CLEANUP_FUNC(struct crypt_device *, crypt_free);
-void cryptsetup_log_glue(int level, const char *msg, void *usrptr);
+void cryptsetup_enable_logging(struct crypt_device *cd);
#endif
if (r < 0)
return log_debug_errno(r, "Failed to initialize dm-crypt: %m");
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_load(cd, CRYPT_LUKS, NULL);
if (r < 0)
if (r < 0)
return r;
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_load(cd, CRYPT_VERITY, NULL);
if (r < 0)
if (r < 0)
return log_error_errno(r, "Failed to open verity device %s: %m", argv[4]);
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
status = crypt_status(cd, argv[2]);
if (IN_SET(status, CRYPT_ACTIVE, CRYPT_BUSY)) {
if (r < 0)
return log_error_errno(r, "crypt_init_by_name() failed: %m");
- crypt_set_log_callback(cd, cryptsetup_log_glue, NULL);
+ cryptsetup_enable_logging(cd);
r = crypt_deactivate(cd, argv[2]);
if (r < 0)