blob: aafa407c44f3b69e7ce648ea1f8567417501fc5f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#ifndef _EAP_MD5_H
#define _EAP_MD5_H
RCSIDH(eap_md5_h, "$Id$")
#include "eap.h"
#define PW_MD5_CHALLENGE 1
#define PW_MD5_RESPONSE 2
#define PW_MD5_SUCCESS 3
#define PW_MD5_FAILURE 4
#define PW_MD5_MAX_CODES 4
#define MD5_HEADER_LEN 4
#define MD5_CHALLENGE_LEN 16
/*
****
* EAP - MD5 does not specify code, id & length but chap specifies them,
* for generalization purpose, complete header should be sent
* and not just value_size, value and name.
* future implementation.
*
* Huh? What does that mean?
*/
/* eap packet structure */
typedef struct md5_packet_t {
/*
uint8_t code;
uint8_t id;
uint16_t length;
*/
uint8_t value_size;
uint8_t value_name[1];
} md5_packet_t;
typedef struct md5_packet {
unsigned char code;
unsigned char id;
unsigned short length;
unsigned char value_size;
unsigned char *value;
char *name;
} MD5_PACKET;
/* function declarations here */
int eapmd5_compose(EAP_DS *auth, MD5_PACKET *reply);
MD5_PACKET *eapmd5_extract(EAP_DS *auth);
int eapmd5_verify(MD5_PACKET *pkt, VALUE_PAIR* pwd, uint8_t *ch);
#endif /*_EAP_MD5_H*/
|