From 1b08e05aa7b848bb394b0542596ff894e7715cf6 Mon Sep 17 00:00:00 2001 From: Jussi Kivilinna Date: Sat, 3 Mar 2012 13:59:00 +0200 Subject: [PATCH] --- yaml --- r: 292260 b: refs/heads/master c: c9b56d33b03e9d5cd5f9d8598b56e9c84386844a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/crypto/camellia.c | 24 +++--------------------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/[refs] b/[refs] index 8a57da72fbff..3352a9e20f0a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 894042648902d11d579af2a936a5a9a43cd5f1e4 +refs/heads/master: c9b56d33b03e9d5cd5f9d8598b56e9c84386844a diff --git a/trunk/crypto/camellia.c b/trunk/crypto/camellia.c index 64cff46ea5e4..7ae4bcddd1de 100644 --- a/trunk/crypto/camellia.c +++ b/trunk/crypto/camellia.c @@ -382,7 +382,6 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max) { u32 dw, tl, tr; u32 kw4l, kw4r; - int i; /* absorb kw2 to other subkeys */ /* round 2 */ @@ -557,24 +556,6 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max) SUBKEY_L(32) = subL[32] ^ subL[31]; /* kw3 */ SUBKEY_R(32) = subR[32] ^ subR[31]; } - - /* apply the inverse of the last half of P-function */ - i = 2; - do { - dw = SUBKEY_L(i + 0) ^ SUBKEY_R(i + 0); dw = rol32(dw, 8);/* round 1 */ - SUBKEY_R(i + 0) = SUBKEY_L(i + 0) ^ dw; SUBKEY_L(i + 0) = dw; - dw = SUBKEY_L(i + 1) ^ SUBKEY_R(i + 1); dw = rol32(dw, 8);/* round 2 */ - SUBKEY_R(i + 1) = SUBKEY_L(i + 1) ^ dw; SUBKEY_L(i + 1) = dw; - dw = SUBKEY_L(i + 2) ^ SUBKEY_R(i + 2); dw = rol32(dw, 8);/* round 3 */ - SUBKEY_R(i + 2) = SUBKEY_L(i + 2) ^ dw; SUBKEY_L(i + 2) = dw; - dw = SUBKEY_L(i + 3) ^ SUBKEY_R(i + 3); dw = rol32(dw, 8);/* round 4 */ - SUBKEY_R(i + 3) = SUBKEY_L(i + 3) ^ dw; SUBKEY_L(i + 3) = dw; - dw = SUBKEY_L(i + 4) ^ SUBKEY_R(i + 4); dw = rol32(dw, 8);/* round 5 */ - SUBKEY_R(i + 4) = SUBKEY_L(i + 4) ^ dw; SUBKEY_L(i + 4) = dw; - dw = SUBKEY_L(i + 5) ^ SUBKEY_R(i + 5); dw = rol32(dw, 8);/* round 6 */ - SUBKEY_R(i + 5) = SUBKEY_L(i + 5) ^ dw; SUBKEY_L(i + 5) = dw; - i += 8; - } while (i < max); } static void camellia_setup128(const unsigned char *key, u32 *subkey) @@ -869,6 +850,8 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey) #define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) \ do { \ + yl ^= kl; \ + yr ^= kr; \ ir = camellia_sp1110[(u8)xr]; \ il = camellia_sp1110[ (xl >> 24)]; \ ir ^= camellia_sp0222[ (xr >> 24)]; \ @@ -877,8 +860,7 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey) il ^= camellia_sp3033[(u8)(xl >> 8)]; \ ir ^= camellia_sp4404[(u8)(xr >> 8)]; \ il ^= camellia_sp4404[(u8)xl]; \ - il ^= kl; \ - ir ^= il ^ kr; \ + ir ^= il; \ yl ^= ir; \ yr ^= ror32(il, 8) ^ ir; \ } while (0)