From: Niels Möller Date: Mon, 5 Jul 2010 19:50:20 +0000 (+0200) Subject: (des_set_key): New iteration logic, to keep key pointer unchanged. X-Git-Tag: camellia_32bit_20100720~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e907011aa04bd154a36348933eda12ed7a71ff5b;p=thirdparty%2Fnettle.git (des_set_key): New iteration logic, to keep key pointer unchanged. Moved weak key check to the end, and don't set the status attribute. (des_encrypt): Ignore status attribute. (des_decrypt): Likewise. Rev: nettle/des.c:1.3 --- diff --git a/des.c b/des.c index 74c58340..7faadd0e 100644 --- a/des.c +++ b/des.c @@ -198,15 +198,13 @@ des_set_key(struct des_ctx *ctx, const uint8_t *key) uint32_t *method; const uint8_t *k; - ctx->status = des_weak_p(key) ? DES_WEAK_KEY : DES_OK; - - /* NOTE: We go on and expand the key, even if it was weak */ /* explode the bits */ n = 56; b0 = bits0; b1 = bits1; + k = key; do { - w = (256 | *key++) << 2; + w = (256 | *k++) << 2; do { --n; b1[n] = 8 & w; @@ -262,7 +260,7 @@ des_set_key(struct des_ctx *ctx, const uint8_t *key) method += 2; } while ( --n ); - return (ctx->status == DES_OK); + return !des_weak_p (key); } void @@ -271,7 +269,6 @@ des_encrypt(const struct des_ctx *ctx, const uint8_t *src) { assert(!(length % DES_BLOCK_SIZE)); - assert(ctx->status == DES_OK); while (length) { @@ -288,7 +285,6 @@ des_decrypt(const struct des_ctx *ctx, const uint8_t *src) { assert(!(length % DES_BLOCK_SIZE)); - assert(ctx->status == DES_OK); while (length) {