[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