OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [libnetworking/] [pppd/] [chap.h] - Blame information for rev 389

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*
2
 * chap.h - Challenge Handshake Authentication Protocol definitions.
3
 *
4
 * Copyright (c) 1993 The Australian National University.
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms are permitted
8
 * provided that the above copyright notice and this paragraph are
9
 * duplicated in all such forms and that any documentation,
10
 * advertising materials, and other materials related to such
11
 * distribution and use acknowledge that the software was developed
12
 * by the Australian National University.  The name of the University
13
 * may not be used to endorse or promote products derived from this
14
 * software without specific prior written permission.
15
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17
 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18
 *
19
 * Copyright (c) 1991 Gregory M. Christy
20
 * All rights reserved.
21
 *
22
 * Redistribution and use in source and binary forms are permitted
23
 * provided that the above copyright notice and this paragraph are
24
 * duplicated in all such forms and that any documentation,
25
 * advertising materials, and other materials related to such
26
 * distribution and use acknowledge that the software was developed
27
 * by the author.
28
 *
29
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
30
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
31
 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
32
 *
33
 * $Id: chap.h,v 1.2 2001-09-27 12:01:57 chris Exp $
34
 */
35
 
36
#ifndef __CHAP_INCLUDE__
37
 
38
/* Code + ID + length */
39
#define CHAP_HEADERLEN          4
40
 
41
/*
42
 * CHAP codes.
43
 */
44
 
45
#define CHAP_DIGEST_MD5         5       /* use MD5 algorithm */
46
#define MD5_SIGNATURE_SIZE      16      /* 16 bytes in a MD5 message digest */
47
#define CHAP_MICROSOFT          0x80    /* use Microsoft-compatible alg. */
48
#define MS_CHAP_RESPONSE_LEN    49      /* Response length for MS-CHAP */
49
 
50
#define CHAP_CHALLENGE          1
51
#define CHAP_RESPONSE           2
52
#define CHAP_SUCCESS            3
53
#define CHAP_FAILURE            4
54
 
55
/*
56
 *  Challenge lengths (for challenges we send) and other limits.
57
 */
58
#define MIN_CHALLENGE_LENGTH    32
59
#define MAX_CHALLENGE_LENGTH    64
60
#define MAX_RESPONSE_LENGTH     64      /* sufficient for MD5 or MS-CHAP */
61
 
62
/*
63
 * Each interface is described by a chap structure.
64
 */
65
 
66
typedef struct chap_state {
67
    int unit;                   /* Interface unit number */
68
    int clientstate;            /* Client state */
69
    int serverstate;            /* Server state */
70
    u_char challenge[MAX_CHALLENGE_LENGTH]; /* last challenge string sent */
71
    u_char chal_len;            /* challenge length */
72
    u_char chal_id;             /* ID of last challenge */
73
    u_char chal_type;           /* hash algorithm for challenges */
74
    u_char id;                  /* Current id */
75
    char *chal_name;            /* Our name to use with challenge */
76
    int chal_interval;          /* Time until we challenge peer again */
77
    int timeouttime;            /* Timeout time in seconds */
78
    int max_transmits;          /* Maximum # of challenge transmissions */
79
    int chal_transmits;         /* Number of transmissions of challenge */
80
    int resp_transmits;         /* Number of transmissions of response */
81
    u_char response[MAX_RESPONSE_LENGTH];       /* Response to send */
82
    u_char resp_length;         /* length of response */
83
    u_char resp_id;             /* ID for response messages */
84
    u_char resp_type;           /* hash algorithm for responses */
85
    char *resp_name;            /* Our name to send with response */
86
} chap_state;
87
 
88
 
89
/*
90
 * Client (peer) states.
91
 */
92
#define CHAPCS_INITIAL          0        /* Lower layer down, not opened */
93
#define CHAPCS_CLOSED           1       /* Lower layer up, not opened */
94
#define CHAPCS_PENDING          2       /* Auth us to peer when lower up */
95
#define CHAPCS_LISTEN           3       /* Listening for a challenge */
96
#define CHAPCS_RESPONSE         4       /* Sent response, waiting for status */
97
#define CHAPCS_OPEN             5       /* We've received Success */
98
 
99
/*
100
 * Server (authenticator) states.
101
 */
102
#define CHAPSS_INITIAL          0        /* Lower layer down, not opened */
103
#define CHAPSS_CLOSED           1       /* Lower layer up, not opened */
104
#define CHAPSS_PENDING          2       /* Auth peer when lower up */
105
#define CHAPSS_INITIAL_CHAL     3       /* We've sent the first challenge */
106
#define CHAPSS_OPEN             4       /* We've sent a Success msg */
107
#define CHAPSS_RECHALLENGE      5       /* We've sent another challenge */
108
#define CHAPSS_BADAUTH          6       /* We've sent a Failure msg */
109
 
110
/*
111
 * Timeouts.
112
 */
113
#define CHAP_DEFTIMEOUT         3       /* Timeout time in seconds */
114
#define CHAP_DEFTRANSMITS       10      /* max # times to send challenge */
115
 
116
extern chap_state chap[];
117
 
118
void ChapAuthWithPeer __P((int, char *, int));
119
void ChapAuthPeer __P((int, char *, int));
120
 
121
extern struct protent chap_protent;
122
 
123
#define __CHAP_INCLUDE__
124
#endif /* __CHAP_INCLUDE__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.