From: Ben Laurie Date: Wed, 9 Jun 1999 11:08:36 +0000 (+0000) Subject: I keep forgetting to fix this: update the IV! Most important! X-Git-Tag: OpenSSL_0_9_4~208 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=05861c77e7f4d862866a4398e146fdc68ab2a957;p=oweals%2Fopenssl.git I keep forgetting to fix this: update the IV! Most important! --- diff --git a/CHANGES b/CHANGES index a4ae465508..139b20bbd8 100644 --- 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 diff --git a/crypto/des/cbc_enc.c b/crypto/des/cbc_enc.c index 4ccabc911a..668fb150d5 100644 --- a/crypto/des/cbc_enc.c +++ b/crypto/des/cbc_enc.c @@ -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;