diff options
author | Ludwig Nussel | 2012-09-11 10:46:11 +0200 |
---|---|---|
committer | Karel Zak | 2012-09-11 10:46:11 +0200 |
commit | 5cf05c71472bf7230075cbdcd5cd6eb12b1d3654 (patch) | |
tree | 17ee914da867ce1765102b1dbbf0d6ffefab1ff6 /lib | |
parent | build-sys: remove static from config-gen.d/{devel,all}.conf (diff) | |
download | kernel-qcow2-util-linux-5cf05c71472bf7230075cbdcd5cd6eb12b1d3654.tar.gz kernel-qcow2-util-linux-5cf05c71472bf7230075cbdcd5cd6eb12b1d3654.tar.xz kernel-qcow2-util-linux-5cf05c71472bf7230075cbdcd5cd6eb12b1d3654.zip |
mount: losetup: remove obsolete encryption support
kernel cryptoloop is deprecated since ages and support for cryptoloop
in util-linux is incomplete/broken.
- no password hashing
- last 8 bit of key are always set to zero
- no binary keys possible (stops reading key at \n and \0)
In the past some Distros added the above features with patches. So
remove cryptoloop support from util-linux completely to make sure
people won't try using it.
Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/loopdev.c | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/lib/loopdev.c b/lib/loopdev.c index a9f6df220..77d91ec3a 100644 --- a/lib/loopdev.c +++ b/lib/loopdev.c @@ -1049,62 +1049,6 @@ int loopcxt_set_backing_file(struct loopdev_cxt *lc, const char *filename) return 0; } -static int digits_only(const char *s) -{ - while (*s) - if (!isdigit(*s++)) - return 0; - return 1; -} - -/* - * @lc: context - * @encryption: encryption name / type (see lopsetup man page) - * @password - * - * Note that the encryption functionality is deprecated an unmaintained. Use - * cryptsetup (it also supports AES-loops). - * - * The setting is removed by loopcxt_set_device() loopcxt_next()! - * - * Returns: 0 on success, <0 on error. - */ -int loopcxt_set_encryption(struct loopdev_cxt *lc, - const char *encryption, - const char *password) -{ - if (!lc) - return -EINVAL; - - DBG(lc, loopdev_debug("setting encryption '%s'", encryption)); - - if (encryption && *encryption) { - if (digits_only(encryption)) { - lc->info.lo_encrypt_type = atoi(encryption); - } else { - lc->info.lo_encrypt_type = LO_CRYPT_CRYPTOAPI; - snprintf((char *)lc->info.lo_crypt_name, LO_NAME_SIZE, - "%s", encryption); - } - } - - switch (lc->info.lo_encrypt_type) { - case LO_CRYPT_NONE: - lc->info.lo_encrypt_key_size = 0; - break; - default: - DBG(lc, loopdev_debug("setting encryption key")); - memset(lc->info.lo_encrypt_key, 0, LO_KEY_SIZE); - strncpy((char *)lc->info.lo_encrypt_key, password, LO_KEY_SIZE); - lc->info.lo_encrypt_key[LO_KEY_SIZE - 1] = '\0'; - lc->info.lo_encrypt_key_size = LO_KEY_SIZE; - break; - } - - DBG(lc, loopdev_debug("encryption successfully set")); - return 0; -} - /* * @cl: context * |