diff options
author | Matt Domsch <Matt_Domsch@dell.com> | 2005-11-08 12:40:47 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-11-08 12:40:47 -0500 |
commit | b3f9b92a6ec1a9a5e4b4b36e484f2f62cc73277c (patch) | |
tree | 7ca8e019573362620638e14e32bb519770ee6945 /include | |
parent | 6722e78c90054101e6797d5944cdc81af9897a0a (diff) |
[PPP]: add PPP MPPE encryption module
From: Matt Domsch <Matt_Domsch@dell.com>
The patch below implements the Microsoft Point-to-Point Encryption method
as a PPP compressor/decompressor. This is necessary for Linux clients and
servers to interoperate with Microsoft Point-to-Point Tunneling Protocol
(PPTP) servers (either Microsoft PPTP servers or the poptop project) which
use MPPE to encrypt data when creating a VPN.
This patch differs from the kernel_ppp_mppe DKMS pacakge at
pptpclient.sourceforge.net by utilizing the kernel crypto routines rather
than providing its own SHA1 and arcfour implementations.
Minor changes to ppp_generic.c try to prevent a link from disabling
compression (in our case, the encryption) after it has started using
compression (encryption).
Feedback to <pptpclient-devel@lists.sourceforge.net> please.
Signed-off-by: Matt Domsch <Matt_Domsch@dell.com>
Cc: James Cameron <james.cameron@hp.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Brice Goglin <Brice.Goglin@ens-lyon.org>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/if_ppp.h | 7 | ||||
-rw-r--r-- | include/linux/ppp-comp.h | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/include/linux/if_ppp.h b/include/linux/if_ppp.h index 572aff7daa21..768372f07caa 100644 --- a/include/linux/if_ppp.h +++ b/include/linux/if_ppp.h | |||
@@ -21,7 +21,7 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | /* | 23 | /* |
24 | * ==FILEVERSION 20000724== | 24 | * ==FILEVERSION 20050812== |
25 | * | 25 | * |
26 | * NOTE TO MAINTAINERS: | 26 | * NOTE TO MAINTAINERS: |
27 | * If you modify this file at all, please set the above date. | 27 | * If you modify this file at all, please set the above date. |
@@ -35,6 +35,8 @@ | |||
35 | #ifndef _IF_PPP_H_ | 35 | #ifndef _IF_PPP_H_ |
36 | #define _IF_PPP_H_ | 36 | #define _IF_PPP_H_ |
37 | 37 | ||
38 | #include <linux/compiler.h> | ||
39 | |||
38 | /* | 40 | /* |
39 | * Packet sizes | 41 | * Packet sizes |
40 | */ | 42 | */ |
@@ -70,7 +72,8 @@ | |||
70 | #define SC_LOG_RAWIN 0x00080000 /* log all chars received */ | 72 | #define SC_LOG_RAWIN 0x00080000 /* log all chars received */ |
71 | #define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ | 73 | #define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ |
72 | #define SC_SYNC 0x00200000 /* synchronous serial mode */ | 74 | #define SC_SYNC 0x00200000 /* synchronous serial mode */ |
73 | #define SC_MASK 0x0f200fff /* bits that user can change */ | 75 | #define SC_MUST_COMP 0x00400000 /* no uncompressed packets may be sent or received */ |
76 | #define SC_MASK 0x0f600fff /* bits that user can change */ | ||
74 | 77 | ||
75 | /* state bits */ | 78 | /* state bits */ |
76 | #define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */ | 79 | #define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */ |
diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h index 7227e653b3be..e86a7a5cf355 100644 --- a/include/linux/ppp-comp.h +++ b/include/linux/ppp-comp.h | |||
@@ -111,6 +111,8 @@ struct compressor { | |||
111 | 111 | ||
112 | /* Used in locking compressor modules */ | 112 | /* Used in locking compressor modules */ |
113 | struct module *owner; | 113 | struct module *owner; |
114 | /* Extra skb space needed by the compressor algorithm */ | ||
115 | unsigned int comp_extra; | ||
114 | }; | 116 | }; |
115 | 117 | ||
116 | /* | 118 | /* |
@@ -191,6 +193,13 @@ struct compressor { | |||
191 | #define DEFLATE_CHK_SEQUENCE 0 | 193 | #define DEFLATE_CHK_SEQUENCE 0 |
192 | 194 | ||
193 | /* | 195 | /* |
196 | * Definitions for MPPE. | ||
197 | */ | ||
198 | |||
199 | #define CI_MPPE 18 /* config option for MPPE */ | ||
200 | #define CILEN_MPPE 6 /* length of config option */ | ||
201 | |||
202 | /* | ||
194 | * Definitions for other, as yet unsupported, compression methods. | 203 | * Definitions for other, as yet unsupported, compression methods. |
195 | */ | 204 | */ |
196 | 205 | ||