aboutsummaryrefslogtreecommitdiffstats
path: root/nonworking/ppp/ppp/use_openssl
blob: 5f111d1eaf734e59564d16e6201b5b6c654a4609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
The built-in SHA1 code is broken on 64 bit systems.
Using a system library may be considered a good idea anyway.


diff -ruNp ppp.orig/pppd/chap-md5.c ppp/pppd/chap-md5.c
--- ppp.orig/pppd/chap-md5.c	2003-11-27 23:25:17.000000000 +0100
+++ ppp/pppd/chap-md5.c	2004-07-14 16:45:46.000000000 +0200
@@ -41,7 +41,14 @@
 #include "chap-new.h"
 #include "chap-md5.h"
 #include "magic.h"
+#ifdef USE_OPENSSL
+#include <openssl/md5.h>
+#define MD5Init MD5_Init
+#define MD5Update MD5_Update
+#define MD5Final MD5_Final
+#else
 #include "md5.h"
+#endif
 
 #define MD5_HASH_SIZE		16
 #define MD5_MIN_CHALLENGE	16
diff -ruNp ppp.orig/pppd/chap_ms.c ppp/pppd/chap_ms.c
--- ppp.orig/pppd/chap_ms.c	2004-04-14 04:40:21.000000000 +0200
+++ ppp/pppd/chap_ms.c	2004-07-14 16:46:03.000000000 +0200
@@ -89,8 +89,21 @@
 #include "pppd.h"
 #include "chap-new.h"
 #include "chap_ms.h"
+#ifdef USE_OPENSSL
+#include <openssl/md4.h>
+#define MD4Init MD4_Init
+#define MD4Update MD4_Update
+#define MD4Final MD4_Final
+#else
 #include "md4.h"
+#endif
+#ifdef USE_OPENSSL
+#include <openssl/sha.h>
+#define SHA1_SIGNATURE_SIZE SHA_DIGEST_LENGTH
+#define SHA1_CTX SHA_CTX
+#else
 #include "sha1.h"
+#endif
 #include "pppcrypt.h"
 #include "magic.h"
 
@@ -513,7 +526,7 @@ ascii2unicode(char ascii[], int ascii_le
 static void
 NTPasswordHash(char *secret, int secret_len, u_char hash[MD4_SIGNATURE_SIZE])
 {
-#ifdef __NetBSD__
+#if defined __NetBSD__ || defined USE_OPENSSL
     /* NetBSD uses the libc md4 routines which take bytes instead of bits */
     int			mdlen = secret_len;
 #else
diff -ruNp ppp.orig/pppd/eap.c ppp/pppd/eap.c
--- ppp.orig/pppd/eap.c	2003-06-12 02:01:21.000000000 +0200
+++ ppp/pppd/eap.c	2004-07-14 16:45:46.000000000 +0200
@@ -62,7 +62,14 @@
 
 #include "pppd.h"
 #include "pathnames.h"
+#ifdef USE_OPENSSL
+#include <openssl/md5.h>
+#define MD5Init MD5_Init
+#define MD5Update MD5_Update
+#define MD5Final MD5_Final
+#else
 #include "md5.h"
+#endif
 #include "eap.h"
 
 #ifdef USE_SRP
diff -ruNp ppp.orig/pppd/Makefile.linux ppp/pppd/Makefile.linux
--- ppp.orig/pppd/Makefile.linux	2004-07-14 16:46:44.000000000 +0200
+++ ppp/pppd/Makefile.linux	2004-07-14 16:45:46.000000000 +0200
@@ -10,7 +10,7 @@ INCDIR = $(DESTDIR)/usr/include
 
 TARGETS = pppd
 
-PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap-new.c md5.c ccp.c \
+PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap-new.c ccp.c \
 	   ecp.c ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c \
 	   demand.c utils.c tty.c eap.c chap-md5.c
 
@@ -19,7 +19,7 @@ HEADERS = ccp.h chap-new.h ecp.h fsm.h i
 	upap.h eap.h
 
 MANPAGES = pppd.8
-PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o \
+PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o ccp.o \
 	   ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o \
 	   eap.o chap-md5.o
 
@@ -83,8 +83,14 @@ CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCL
 ifdef CHAPMS
 CFLAGS   += -DCHAPMS=1
 NEEDDES=y
+ifdef USE_BUILTIN_CRYPTO
 PPPDOBJS += md4.o chap_ms.o
-HEADERS	+= md4.h chap_ms.h
+HEADERS  += md4.h chap_ms.h
+else
+PPPDOBJS += chap_ms.o
+HEADERS	 += chap_ms.h
+NEED_OPENSSL=y
+endif
 ifdef MSLANMAN
 CFLAGS   += -DMSLANMAN=1
 endif
@@ -95,20 +101,36 @@ endif
 
 # EAP SRP-SHA1
 ifdef USE_SRP
-CFLAGS	+= -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
-LIBS	+= -lsrp -L/usr/local/ssl/lib -lcrypto
+CFLAGS	+= -DUSE_SRP
 TARGETS	+= srp-entry
 EXTRAINSTALL = $(INSTALL) -s -c -m 555 srp-entry $(BINDIR)/srp-entry
 MANPAGES += srp-entry.8
 EXTRACLEAN += srp-entry.o
 NEEDDES=y
+NEED_OPENSSL=y
 else
 # OpenSSL has an integrated version of SHA-1, and its implementation
 # is incompatible with this local SHA-1 implementation.  We must use
 # one or the other, not both.
+ifdef USE_BUILTIN_CRYPTO
 PPPDSRCS += sha1.c
 HEADERS += sha1.h
 PPPDOBJS += sha1.o
+else
+NEED_OPENSSL=y
+endif
+endif
+
+ifdef USE_BUILTIN_CRYPTO
+PPPDSRCS += md5.c
+PPPDOBJS += md5.o
+else
+NEED_OPENSSL=y
+endif
+
+ifdef NEED_OPENSSL
+CFLAGS += -DUSE_OPENSSL
+LIBS   += -lcrypto
 endif
 
 ifdef HAS_SHADOW