• Patch: Elm ME+ 2.5 PLalpha51 -> Elm ME+ 2.5 PLalpha52 [2/7] (3/4)

    From Kari Hurtta@21:1/5 to All on Mon Jun 8 19:46:06 2020
    [continued from previous message]

    + GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
    + GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
    +
    + GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
    + GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
    + GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
    + GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
    + GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
    +
    + /* Round 3 */
    + HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
    + HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
    + HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
    + HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
    + HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
    + HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
    + HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
    + HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
    + HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
    + HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
    + HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
    + HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
    + HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
    + HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
    + HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
    + HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
    +
    + /* Round 4 */
    + II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
    + II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
    + II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
    + II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
    + II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
    + II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
    + II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
    + II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
    + II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
    + II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
    + II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
    + II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
    + II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
    + II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
    + II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
    + II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
    +
    + state[0] += a;
    + state[1] += b;
    + state[2] += c;
    + state[3] += d;
    +
    + /* Zeroize sensitive information.
    +
    + */
    + MD5_memset ((POINTER)x, 0, sizeof (x));
    + }
    +
    + /* Encodes input (UINT4) into output (unsigned char). Assumes len is
    + a multiple of 4.
    + */
    + static void Encode (output, input, len)
    + unsigned char *output;
    + UINT4 *input;
    + unsigned int len;
    + {
    + unsigned int i, j;
    +
    + for (i = 0, j = 0; j < len; i++, j += 4) {
    + output[j] = (unsigned char)(input[i] & 0xff);
    + output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
    + output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
    + output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
    + }
    + }
    +
    + /* Decodes input (unsigned char) into output (UINT4). Assumes len is
    + a multiple of 4.
    + */
    + static void Decode (output, input, len)
    + UINT4 *output;
    + const unsigned char *input;
    + unsigned int len;
    + {
    + unsigned int i, j;
    +
    + for (i = 0, j = 0; j < len; i++, j += 4)
    + output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
    + (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
    + }
    +
    + /* Note: Replace "for loop" with standard memcpy if possible.
    + */
    +
    + static void MD5_memcpy (output, input, len)
    + POINTER output;
    + POINTER input;
    + unsigned int len;
    + {
    + unsigned int i;
    +
    + for (i = 0; i < len; i++)
    + output[i] = input[i];
    + }
    +
    + /* Note: Replace "for loop" with standard memset if possible.
    + */
    + static void MD5_memset (output, value, len)
    + POINTER output;
    + int value;
    + unsigned int len;
    + {
    + unsigned int i;
    +
    + for (i = 0; i < len; i++)
    + ((char *)output)[i] = (char)value;
    + }
    +
    + /*
    + * Local Variables:
    + * mode:c
    + * c-basic-offset:4
    + * buffer-file-coding-system: iso-8859-1
    + * End:
    + */
    Index: elmME+.2.5.alpha52-cvs/lib/addr/outdate.c
    *** /tmp/1554-very-long-file-name/NULL-1554-comes-in-here--XXXXXXXXX Sat Jun 6 13:58:09 2020
    --- elmME+.2.5.alpha52-cvs/lib/addr/outdate.c Wed May 13 08:11:21 2020 ***************
    *** 0 ****
    --- 1,183 ----
    + static char rcsid[] = "@(#)$Id: outdate.c,v 1.2 2020/05/13 05:11:21 hurtta Exp $";
    +
    + /******************************************************************************
    + * The Elm (ME+) Mail System - $Revision: 1.2 $ $State: Exp $
    + *
    + * Author: Kari Hurtta <hurtta+elm@siilo.FMI.FI>
    + * or Kari Hurtta <elm@elmme-mailer.org>
    + *****************************************************************************/
    +
    + #include "def_addr.h"
    +
    + DEBUG_VAR(Debug,__FILE__,"addr");
    +
    + #include <limits.h>
    +
    + #define EXP_DATE_magic 0xFC0B
    +
    + struct expanded_date {
    + unsigned short magic; /* EXP_DATE_magic */
    +
    + struct tm value;
    +
    + time_t cached_time;
    + enum date_source explicit_date;
    + } * new_expanded_date(value,t_value,explicit_date)
    + const struct tm * value /* may be NULL */;
    + time_t t_value