--- print-esp.c.org	Wed Feb 26 18:58:06 2003
+++ print-esp.c     Sat Mar  1 14:11:18 2003
@@ -55,6 +55,11 @@
 #include "ip6.h"
 #endif
 
+#if defined(__MINGW32__) || defined(__WATCOMC__)
+#include "addrinfo.h"
+extern char *strsep (char **stringp, const char *delim); /* Missing/strsep.c */
+#endif
+
 #define AVOID_CHURN 1
 #include "interface.h"
 #include "addrtoname.h"
@@ -192,13 +197,13 @@
     char  fileline[1024];
     char  *nl;
 
-    secretfile=fopen(line, "r");
+    secretfile = fopen(line, FOPEN_READ_TXT);
     if(secretfile == NULL) {
       perror(line);
       exit(3);
     }
     
-    while(fgets(fileline, 1024, secretfile) != NULL) {
+    while(fgets(fileline, sizeof(fileline)-1, secretfile) != NULL) {
 
       /* remove newline from the line */
       nl = strchr(fileline, '\n');
@@ -467,7 +472,15 @@
 
 		if (espsecret_keylen != 8)
 			goto fail;
-#if OPENSSL_VERSION_NUMBER >= 0x00907000L
+
+#if OPENSSL_VERSION_NUMBER >= 0x00908000L
+		DES_set_key_unchecked((const_DES_cblock *)secret, &schedule);
+
+		DES_cbc_encrypt((const unsigned char *)p, p,
+			(long)(ep - p), &schedule, (DES_cblock *)iv,
+			DES_DECRYPT);
+
+#elif OPENSSL_VERSION_NUMBER >= 0x00907000L
 		DES_set_key_unchecked((DES_cblock *)secret, schedule);
 
 		DES_cbc_encrypt((const unsigned char *)p, p,
@@ -557,6 +570,17 @@
 		DES_set_odd_parity((DES_cblock *)secret);
 		DES_set_odd_parity((DES_cblock *)(secret + 8));
 		DES_set_odd_parity((DES_cblock *)(secret + 16));
+#if OPENSSL_VERSION_NUMBER >= 0x00908000L
+		if(DES_set_key_checked((const_DES_cblock *)secret, &s1) != 0) {
+		  printf("failed to schedule key 1\n");
+		}
+		if(DES_set_key_checked((const_DES_cblock *)(secret + 8), &s2)!=0) {
+		  printf("failed to schedule key 2\n");
+		}
+		if(DES_set_key_checked((const_DES_cblock *)(secret + 16), &s3)!=0) {
+		  printf("failed to schedule key 3\n");
+		}
+#else
 		if(DES_set_key_checked((DES_cblock *)secret, s1) != 0) {
 		  printf("failed to schedule key 1\n");
 		}
@@ -566,6 +590,7 @@
 		if(DES_set_key_checked((DES_cblock *)(secret + 16), s3)!=0) {
 		  printf("failed to schedule key 3\n");
 		}
+#endif
 
 		p = ivoff + ivlen;
 		DES_ede3_cbc_encrypt((const unsigned char *)p, p,
