Annotation of embedaddon/mpd/src/chap.h, revision 1.1
1.1 ! misho 1:
! 2: /*
! 3: * chap.h
! 4: *
! 5: * Written by Toshiharu OHNO <tony-o@iij.ad.jp>
! 6: * Copyright (c) 1993, Internet Initiative Japan, Inc. All rights reserved.
! 7: * See ``COPYRIGHT.iij''
! 8: *
! 9: * Rewritten by Archie Cobbs <archie@freebsd.org>
! 10: * Copyright (c) 1995-1999 Whistle Communications, Inc. All rights reserved.
! 11: * See ``COPYRIGHT.whistle''
! 12: */
! 13:
! 14: #ifndef _CHAP_H_
! 15: #define _CHAP_H_
! 16:
! 17: #include "mbuf.h"
! 18: #include "timer.h"
! 19:
! 20: /*
! 21: * DEFINITIONS
! 22: */
! 23:
! 24: #define CHAP_CHALLENGE 1
! 25: #define CHAP_RESPONSE 2
! 26: #define CHAP_SUCCESS 3
! 27: #define CHAP_FAILURE 4
! 28: #define CHAP_MS_V1_CHANGE_PW 5
! 29: #define CHAP_MS_V2_CHANGE_PW 7
! 30:
! 31: #define CHAP_MAX_NAME 64
! 32: #define CHAP_MAX_VAL 64
! 33:
! 34: #define CHAP_ALG_MD5 0x05
! 35: #define CHAP_ALG_MSOFT 0x80
! 36: #define CHAP_ALG_MSOFTv2 0x81
! 37:
! 38: #define CHAP_MSOFT_CHAL_LEN 8
! 39: #define CHAP_MSOFTv2_CHAL_LEN 16
! 40: #define CHAP_MSOFTv2_RESP_LEN 24
! 41:
! 42: #define MSCHAP_ERROR_RESTRICTED_LOGON_HOURS 646
! 43: #define MSCHAP_ERROR_ACCT_DISABLED 647
! 44: #define MSCHAP_ERROR_PASSWD_EXPIRED 648
! 45: #define MSCHAP_ERROR_NO_DIALIN_PERMISSION 649
! 46: #define MSCHAP_ERROR_AUTHENTICATION_FAILURE 691
! 47: #define MSCHAP_ERROR_CHANGING_PASSWORD 709
! 48:
! 49: struct chapinfo
! 50: {
! 51: int proto; /* CHAP, EAP */
! 52: short next_id; /* Packet id */
! 53: short retry; /* Resend count */
! 54: struct pppTimer chalTimer; /* Challenge timer */
! 55: struct pppTimer respTimer; /* Reponse timer */
! 56: u_char *resp; /* Response packet */
! 57: short resp_len; /* Response length */
! 58: u_char resp_id; /* Response ID */
! 59: };
! 60: typedef struct chapinfo *ChapInfo;
! 61:
! 62: struct chapparams
! 63: {
! 64: u_char chal_data[CHAP_MAX_VAL]; /* Challenge sent */
! 65: u_char value[CHAP_MAX_VAL]; /* Chap packet */
! 66: int chal_len; /* Challenge length */
! 67: int value_len; /* Packet length */
! 68: };
! 69: typedef struct chapparams *ChapParams;
! 70:
! 71: struct mschapvalue {
! 72: u_char lmHash[24];
! 73: u_char ntHash[24];
! 74: u_char useNT;
! 75: };
! 76:
! 77: struct mschapv2value {
! 78: u_char peerChal[16];
! 79: u_char reserved[8];
! 80: u_char ntHash[24];
! 81: u_char flags;
! 82: };
! 83:
! 84: struct mschapv2value_cpw {
! 85: u_char encryptedPass[516];
! 86: u_char encryptedHash[16];
! 87: u_char peerChal[16];
! 88: u_char reserved[8];
! 89: u_char ntResponse[24];
! 90: u_char flags[2];
! 91: };
! 92:
! 93: struct authdata;
! 94: /*
! 95: * FUNCTIONS
! 96: */
! 97:
! 98: extern void ChapStart(Link l, int which);
! 99: extern void ChapStop(ChapInfo chap);
! 100: extern void ChapInput(Link l, struct authdata *auth, const u_char *pkt, u_short len);
! 101: extern void ChapSendChallenge(Link l);
! 102: extern void ChapChalTimeout(void *ptr);
! 103: extern const char *ChapCode(int code, char *buf, size_t len);
! 104: extern void ChapInputFinish(Link l, struct authdata *auth);
! 105:
! 106: #endif
! 107:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>