* rijndael-api-fst.c: Fix bugs in CBC mode for more than one
authorSimon Josefsson <simon@josefsson.org>
Fri, 21 Oct 2005 13:45:23 +0000 (13:45 +0000)
committerSimon Josefsson <simon@josefsson.org>
Fri, 21 Oct 2005 13:45:23 +0000 (13:45 +0000)
block.

lib/ChangeLog
lib/rijndael-api-fst.c

index ac56567..08fd087 100644 (file)
@@ -1,5 +1,10 @@
 2005-10-21  Simon Josefsson  <jas@extundo.com>
 
+       * rijndael-api-fst.c: Fix bugs in CBC mode for more than one
+       block.
+
+2005-10-21  Simon Josefsson  <jas@extundo.com>
+
        * gc-gnulib.c: Support ARCTWO in CBC mode.
 
 2005-10-21  Simon Josefsson  <jas@extundo.com>
index b7053a5..41f58a1 100644 (file)
@@ -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: