X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fchap_ms.h;h=73b41de62e592922b4dcd3c63cdae1526b54d6d1;hp=ae6b2485764ae74082e4fffc3b368387ad2c520c;hb=ae57a37fb6a716dddff877efde7c82a61f254c98;hpb=f53a48eb9d74db3c71938e114b7f489c339bc003 diff --git a/pppd/chap_ms.h b/pppd/chap_ms.h index ae6b248..73b41de 100644 --- a/pppd/chap_ms.h +++ b/pppd/chap_ms.h @@ -27,7 +27,7 @@ * 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.7 2002/12/04 23:03:32 paulus Exp $ + * $Id: chap_ms.h,v 1.11 2004/11/04 12:00:07 paulus Exp $ */ #ifndef __CHAPMS_INCLUDE__ @@ -37,6 +37,8 @@ #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, */ + /* as ASCII */ /* E=eeeeeeeeee error codes for MS-CHAP failure messages. */ #define MS_CHAP_ERROR_RESTRICTED_LOGON_HOURS 646 @@ -71,19 +73,39 @@ typedef struct { #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 /* Are we the authenticator or authenticatee? For MS-CHAPv2 key derivation. */ #define MS_CHAP2_AUTHENTICATEE 0 #define MS_CHAP2_AUTHENTICATOR 1 -#include "chap.h" /* chap_state, et al */ -void ChapMS __P((chap_state *, u_char *, char *, int, MS_ChapResponse *)); -void ChapMS2 __P((chap_state *, u_char *, u_char *, char *, char *, int, +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 ChallengeHash __P((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], + u_char *rchallenge, char *username, + u_char authResponse[MS_AUTH_RESPONSE_LENGTH+1]); + +void chapms_init(void); + #define __CHAPMS_INCLUDE__ #endif /* __CHAPMS_INCLUDE__ */