From 3c2b83bf3f2240ec2bdc089060d71109d2b9b128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Mon, 5 Jul 2010 21:52:38 +0200 Subject: [PATCH] (des3_set_key): Changed weak key detection logic. Complete key setup also for weak keys, and don't set the status attribute. Rev: nettle/des3.c:1.2 --- des3.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/des3.c b/des3.c index ea7bfef3..e574abfd 100644 --- a/des3.c +++ b/des3.c @@ -33,20 +33,18 @@ * lsh/src/cascade.c, but as in practice it's never used for anything * like triple DES, it's not worth the effort. */ -/* On success, returns 1 and sets ctx->status to DES_OK (zero). On - * error, returns 0 and sets ctx->status accordingly. */ +/* Returns 1 for good keys and 0 for weak keys. */ int des3_set_key(struct des3_ctx *ctx, const uint8_t *key) { unsigned i; + int is_good = 1; + for (i = 0; i<3; i++, key += DES_KEY_SIZE) if (!des_set_key(&ctx->des[i], key)) - { - ctx->status = ctx->des[i].status; - return 0; - } - ctx->status = DES_OK; - return 1; + is_good = 0; + + return is_good; } void -- GitLab