I keep forgetting to fix this: update the IV! Most important!
authorBen Laurie <ben@openssl.org>
Wed, 9 Jun 1999 11:08:36 +0000 (11:08 +0000)
committerBen Laurie <ben@openssl.org>
Wed, 9 Jun 1999 11:08:36 +0000 (11:08 +0000)
CHANGES
crypto/des/cbc_enc.c

diff --git a/CHANGES b/CHANGES
index a4ae465..139b20b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -5,6 +5,9 @@
 
  Changes between 0.9.3a and 0.9.4
 
+  *) DES CBC did not update the IV. Weird.
+     [Ben Laurie]
+
   *) When bntest is run from "make test" it drives bc to check its
      calculations, as well as internally checking them. If an internal check
      fails, it needs to cause bc to give a non-zero result or make test carries
index 4ccabc9..668fb15 100644 (file)
@@ -94,6 +94,9 @@ void des_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
                        tout0=tin[0]; l2c(tout0,out);
                        tout1=tin[1]; l2c(tout1,out);
                        }
+               iv = &(*ivec)[0];
+               l2c(tout0,iv);
+               l2c(tout1,iv);
                }
        else
                {
@@ -122,6 +125,9 @@ void des_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
                /*      xor0=tin0;
                        xor1=tin1; */
                        }
+               iv = &(*ivec)[0];
+               l2c(xor0,iv);
+               l2c(xor1,iv);
                }
        tin0=tin1=tout0=tout1=xor0=xor1=0;
        tin[0]=tin[1]=0;