From: Simon Josefsson Date: Fri, 21 Oct 2005 13:45:23 +0000 (+0000) Subject: * rijndael-api-fst.c: Fix bugs in CBC mode for more than one X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58aa025deca628dabf381fe57bda38dd690bfa59;p=pspp * rijndael-api-fst.c: Fix bugs in CBC mode for more than one block. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index ac565678a1..08fd087793 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2005-10-21 Simon Josefsson + + * rijndael-api-fst.c: Fix bugs in CBC mode for more than one + block. + 2005-10-21 Simon Josefsson * gc-gnulib.c: Support ARCTWO in CBC mode. diff --git a/lib/rijndael-api-fst.c b/lib/rijndael-api-fst.c index b7053a5b7c..41f58a1632 100644 --- a/lib/rijndael-api-fst.c +++ b/lib/rijndael-api-fst.c @@ -244,7 +244,7 @@ rijndaelBlockEncrypt (rijndaelCipherInstance *cipher, ((uint32_t *) block)[3] = ((uint32_t *) input)[3] ^ ((uint32_t *) iv)[3]; rijndaelEncrypt (key->rk, key->Nr, block, outBuffer); - iv = outBuffer; + memcpy (cipher->IV, outBuffer, 16); input += 16; outBuffer += 16; } @@ -327,7 +327,7 @@ rijndaelPadEncrypt (rijndaelCipherInstance *cipher, ((uint32_t *) block)[3] = ((uint32_t *) input)[3] ^ ((uint32_t *) iv)[3]; rijndaelEncrypt (key->rk, key->Nr, block, outBuffer); - iv = outBuffer; + memcpy (cipher->IV, outBuffer, 16); input += 16; outBuffer += 16; } @@ -342,6 +342,7 @@ rijndaelPadEncrypt (rijndaelCipherInstance *cipher, block[i] = (char) padLen ^ iv[i]; } rijndaelEncrypt (key->rk, key->Nr, block, outBuffer); + memcpy (cipher->IV, outBuffer, 16); break; default: