X-Git-Url: https://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fchap_ms.h;h=c1c5ed846f5f5004f086de610a32ede41dc5a121;hp=168c0be2f4748268bd7870516858b5ab2e706dd6;hb=bdd34ab1f2f87acb23c6d92feee7354ac53005ff;hpb=be58b6b66df0d714bad6b7122c52d3bb97b64e37 diff --git a/pppd/chap_ms.h b/pppd/chap_ms.h index 168c0be..c1c5ed8 100644 --- a/pppd/chap_ms.h +++ b/pppd/chap_ms.h @@ -27,9 +27,11 @@ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: chap_ms.h,v 1.12 2004/11/09 22:49:05 paulus Exp $ + * $Id: chap_ms.h,v 1.13 2004/11/15 22:13:26 paulus Exp $ */ +#include "pppdconf.h" + #ifndef __CHAPMS_INCLUDE__ #define MD4_SIGNATURE_SIZE 16 /* 16 bytes in a MD4 message digest */ @@ -38,6 +40,7 @@ #define MS_CHAP_RESPONSE_LEN 49 /* Response length for MS-CHAP */ #define MS_CHAP2_RESPONSE_LEN 49 /* Response length for MS-CHAPv2 */ #define MS_AUTH_RESPONSE_LENGTH 40 /* MS-CHAPv2 authenticator response, */ +#define MS_AUTH_NTRESP_LEN 24 /* Length of NT-response field */ /* as ASCII */ /* E=eeeeeeeeee error codes for MS-CHAP failure messages. */ @@ -49,67 +52,33 @@ #define MS_CHAP_ERROR_CHANGING_PASSWORD 709 /* - * Apparently gcc on ARM gives all structures 4-byte alignment - * by default. This tells gcc that these structures may be - * unaligned and may not have extra padding inside them. - */ -#ifdef __GNUC__ -#define PACKED __attribute__((__packed__)) -#else -#define PACKED -#endif - -/* - * Use MS_CHAP_RESPONSE_LEN, rather than sizeof(MS_ChapResponse), - * in case this struct gets padded. + * Offsets within the response field for MS-CHAP */ -typedef struct { - u_char LANManResp[24]; - u_char NTResp[24]; - u_char UseNT[1]; /* If 1, ignore the LANMan response field */ -} MS_ChapResponse PACKED; +#define MS_CHAP_LANMANRESP 0 +#define MS_CHAP_LANMANRESP_LEN 24 +#define MS_CHAP_NTRESP 24 +#define MS_CHAP_NTRESP_LEN 24 +#define MS_CHAP_USENT 48 /* - * Use MS_CHAP2_RESPONSE_LEN, rather than sizeof(MS_Chap2Response), - * in case this struct gets padded. + * Offsets within the response field for MS-CHAP2 */ -typedef struct { - u_char PeerChallenge[16]; - u_char Reserved[8]; /* Must be zero */ - u_char NTResp[24]; - u_char Flags[1]; /* Must be zero */ -} MS_Chap2Response PACKED; - -#ifdef MPPE -#include /* MPPE_MAX_KEY_LEN */ -extern u_char mppe_send_key[MPPE_MAX_KEY_LEN]; -extern u_char mppe_recv_key[MPPE_MAX_KEY_LEN]; -extern int mppe_keys_set; - -/* These values are the RADIUS attribute values--see RFC 2548. */ -#define MPPE_ENC_POL_ENC_ALLOWED 1 -#define MPPE_ENC_POL_ENC_REQUIRED 2 -#define MPPE_ENC_TYPES_RC4_40 2 -#define MPPE_ENC_TYPES_RC4_128 4 - -/* used by plugins (using above values) */ -extern void set_mppe_enc_types(int, int); -#endif +#define MS_CHAP2_PEER_CHALLENGE 0 +#define MS_CHAP2_PEER_CHAL_LEN 16 +#define MS_CHAP2_RESERVED_LEN 8 +#define MS_CHAP2_NTRESP 24 +#define MS_CHAP2_NTRESP_LEN 24 +#define MS_CHAP2_FLAGS 48 /* Are we the authenticator or authenticatee? For MS-CHAPv2 key derivation. */ #define MS_CHAP2_AUTHENTICATEE 0 #define MS_CHAP2_AUTHENTICATOR 1 -void ChapMS __P((u_char *, char *, int, MS_ChapResponse *)); -void ChapMS2 __P((u_char *, u_char *, char *, char *, int, - MS_Chap2Response *, u_char[MS_AUTH_RESPONSE_LENGTH+1], int)); -#ifdef MPPE -void mppe_set_keys __P((u_char *, u_char[MD4_SIGNATURE_SIZE])); -void mppe_set_keys2(u_char PasswordHashHash[MD4_SIGNATURE_SIZE], - u_char NTResponse[24], int IsServer); -#endif +void ChapMS (u_char *, char *, int, u_char *); +void ChapMS2 (u_char *, u_char *, char *, char *, int, + u_char *, u_char[MS_AUTH_RESPONSE_LENGTH+1], int); -void ChallengeHash __P((u_char[16], u_char *, char *, u_char[8])); +void ChallengeHash (u_char[16], u_char *, char *, u_char[8]); void GenerateAuthenticatorResponse(u_char PasswordHashHash[MD4_SIGNATURE_SIZE], u_char NTResponse[24], u_char PeerChallenge[16],