From: Richard Levitte Date: Wed, 12 Feb 2003 17:20:50 +0000 (+0000) Subject: Adjust DES_cbc_cksum() so the returned value is the same as MIT's X-Git-Tag: OpenSSL_0_9_7a~15 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=e4b95737f01f50d672538f9eb540c1a2cea5213b;p=oweals%2Fopenssl.git Adjust DES_cbc_cksum() so the returned value is the same as MIT's mit_des_cbc_cksum(). The difference was first observed, then verified by looking at the MIT source. --- diff --git a/CHANGES b/CHANGES index 5cf2b565bd..8013c981cd 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,12 @@ Changes between 0.9.7 and 0.9.7a [XX xxx 2003] + *) Adjust DES_cbc_cksum() so it returns the same value as the MIT + Kerberos function mit_des_cbc_cksum(). Before this change, + the value returned by DES_cbc_cksum() was like the one from + mit_des_cbc_cksum(), except the bytes were swapped. + [Kevin Greaney and Richard Levitte] + *) Allow an application to disable the automatic SSL chain building. Before this a rather primitive chain build was always performed in ssl3_output_cert_chain(): an application had no way to send the diff --git a/crypto/des/cbc_cksm.c b/crypto/des/cbc_cksm.c index 6c5305b99d..09a7ba56aa 100644 --- a/crypto/des/cbc_cksm.c +++ b/crypto/des/cbc_cksm.c @@ -93,5 +93,14 @@ DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output, l2c(tout1,out); } tout0=tin0=tin1=tin[0]=tin[1]=0; + /* + Transform the data in tout1 so that it will + match the return value that the MIT Kerberos + mit_des_cbc_cksum API returns. + */ + tout1 = ((tout1 >> 24L) & 0x000000FF) + | ((tout1 >> 8L) & 0x0000FF00) + | ((tout1 << 8L) & 0x00FF0000) + | ((tout1 << 24L) & 0xFF000000); return(tout1); }