All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] dm crypt: wipe keys string immediately after key is set
@ 2011-02-03  0:08 Milan Broz
  2011-02-03  0:08 ` [PATCH 2/3] dm ioctl: tidy code for next change Milan Broz
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Milan Broz @ 2011-02-03  0:08 UTC (permalink / raw)
  To: dm-devel; +Cc: Milan Broz

If the tfm key was set up correctly, do not keep another
copy of key and immediately replace it with zero string.

Signed-off-by: Milan Broz <mbroz@redhat.com>
---
 drivers/md/dm-crypt.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 4e054bd..d748433 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -1331,20 +1331,26 @@ static int crypt_setkey_allcpus(struct crypt_config *cc)
 
 static int crypt_set_key(struct crypt_config *cc, char *key)
 {
+	int r = -EINVAL, key_string_len = strlen(key);
+
 	/* The key size may not be changed. */
-	if (cc->key_size != (strlen(key) >> 1))
-		return -EINVAL;
+	if (cc->key_size != (key_string_len >> 1))
+		goto out;
 
 	/* Hyphen (which gives a key_size of zero) means there is no key. */
 	if (!cc->key_size && strcmp(key, "-"))
-		return -EINVAL;
+		goto out;
 
 	if (cc->key_size && crypt_decode_key(cc->key, key, cc->key_size) < 0)
-		return -EINVAL;
+		goto out;
 
 	set_bit(DM_CRYPT_KEY_VALID, &cc->flags);
 
-	return crypt_setkey_allcpus(cc);
+	r = crypt_setkey_allcpus(cc);
+out:
+	/* Wipe hexa key string as soon as possible */
+	memset(key, '0', key_string_len);
+	return r;
 }
 
 static int crypt_wipe_key(struct crypt_config *cc)
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-02-03 15:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-03  0:08 [PATCH 1/3] dm crypt: wipe keys string immediately after key is set Milan Broz
2011-02-03  0:08 ` [PATCH 2/3] dm ioctl: tidy code for next change Milan Broz
2011-02-03 15:39   ` Mike Snitzer
2011-02-03  0:08 ` [PATCH 3/3] dm ioctl: add data secure (bufer wipe) flag Milan Broz
2011-02-03 15:48   ` Mike Snitzer
2011-02-03 15:52 ` [PATCH 1/3] dm crypt: wipe keys string immediately after key is set Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.