diff options
author | Werner Koch <[email protected]> | 2016-02-13 16:01:45 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-02-13 16:06:54 +0000 |
commit | b0e6ab1109d05fc664f46e17d721fe9b01d38115 (patch) | |
tree | 70cf20d908523ef099962ee90730fd053082b5cf /g13/backend.c | |
parent | g13: Improve dump_keyblob. (diff) | |
download | gnupg-b0e6ab1109d05fc664f46e17d721fe9b01d38115.tar.gz gnupg-b0e6ab1109d05fc664f46e17d721fe9b01d38115.zip |
g13: Second chunk of code to support dm-crypt.
* g13/be-dmcrypt.c, g13/be-dmcrypt.h: New.
* g13/Makefile.am (g13_SOURCES): Add them.
* g13/backend.c: Include be-dmcrypt.h and call-syshelp.h.
(no_such_backend): Rename to _no_such_backend and provide replacement
macro.
(be_is_supported_conttype): Support DM-Crypt.
(be_take_lock_for_create): Call set_segvice for DM-Crypt.
(be_create_new_keys): Make it a dummy for DM-Crypt.
(be_create_container): Call be_dmcrypt_create_container.
(be_mount_container): call be_dmcrypt_mount_container.
* g13/g13-syshelp.c (main): Enable verbose mode.
* g13/g13tuple.c (get_tupledesc_data): New.
* g13/g13tuple.h (unref_tupledesc): New.
* g13/g13.h (server_control_): Add field "recipients".
* g13/g13.c (main): Fix setting of recipients via cmdline.
(g13_deinit_default_ctrl): Release recipients list.
(g13_request_shutdown): New. Replace all direct update of
shutdown_pending by calls this function.
* g13/server.c (server_local_s): Remove field recipients which is now
part of CTRL.
(reset_notify, cmd_recipient, cmd_create): Adjust for this change.
* g13/create.c (encrypt_keyblob): Rename to g13_encrypt_keyblob.
(g13_create_container): Support DM-Crypt.
* g13/mount.c (parse_header): Allow for meta data copies.
(g13_mount_container): Support DM-Crypt.
* g13/sh-cmd.c (cmd_create): Make it work.
(cmd_mount): New.
* g13/sh-dmcrypt.c (sh_dmcrypt_create_container): Make it work.
(sh_dmcrypt_mount_container): New.
--
With this patch we can now create an encrypted partition and partly
mount it (i.e. setup keys and create the mapped device). We do not yet
create a file system or mount that file system
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g13/backend.c')
-rw-r--r-- | g13/backend.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/g13/backend.c b/g13/backend.c index b35887be3..bb7bfcc02 100644 --- a/g13/backend.c +++ b/g13/backend.c @@ -31,13 +31,15 @@ #include "backend.h" #include "be-encfs.h" #include "be-truecrypt.h" +#include "be-dmcrypt.h" +#include "call-syshelp.h" - +#define no_such_backend(a) _no_such_backend ((a), __func__) static gpg_error_t -no_such_backend (int conttype) +_no_such_backend (int conttype, const char *func) { - log_error ("invalid backend %d given - this is most likely a bug\n", - conttype); + log_error ("invalid backend %d given in %s - this is most likely a bug\n", + conttype, func); return gpg_error (GPG_ERR_INTERNAL); } @@ -81,6 +83,7 @@ be_is_supported_conttype (int conttype) switch (conttype) { case CONTTYPE_ENCFS: + case CONTTYPE_DM_CRYPT: return 1; default: @@ -106,7 +109,7 @@ be_take_lock_for_create (ctrl_t ctrl, const char *fname, dotlock_t *r_lock) if (ctrl->conttype == CONTTYPE_DM_CRYPT) { /* */ - err = gpg_error (GPG_ERR_NOT_IMPLEMENTED); + err = call_syshelp_set_device (ctrl, fname); goto leave; } @@ -186,6 +189,9 @@ be_create_new_keys (int conttype, membuf_t *mb) case CONTTYPE_TRUECRYPT: return be_truecrypt_create_new_keys (mb); + case CONTTYPE_DM_CRYPT: + return 0; + default: return no_such_backend (conttype); } @@ -205,6 +211,9 @@ be_create_container (ctrl_t ctrl, int conttype, case CONTTYPE_ENCFS: return be_encfs_create_container (ctrl, fname, tuples, r_id); + case CONTTYPE_DM_CRYPT: + return be_dmcrypt_create_container (ctrl); + default: return no_such_backend (conttype); } @@ -222,6 +231,9 @@ be_mount_container (ctrl_t ctrl, int conttype, case CONTTYPE_ENCFS: return be_encfs_mount_container (ctrl, fname, mountpoint, tuples, r_id); + case CONTTYPE_DM_CRYPT: + return be_dmcrypt_mount_container (ctrl, fname, mountpoint, tuples); + default: return no_such_backend (conttype); } |