From: Niels Möller Date: Mon, 5 Jul 2010 19:52:38 +0000 (+0200) Subject: (des3_set_key): Changed weak key detection logic. X-Git-Tag: camellia_32bit_20100720~13 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3c2b83bf3f2240ec2bdc089060d71109d2b9b128;p=thirdparty%2Fnettle.git (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 --- 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