]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/wpa_supplicant/eap_tls_common.h
This commit was generated by cvs2svn to compensate for changes in r149749,
[FreeBSD/FreeBSD.git] / contrib / wpa_supplicant / eap_tls_common.h
1 #ifndef EAP_TLS_COMMON_H
2 #define EAP_TLS_COMMON_H
3
4 struct eap_ssl_data {
5         struct tls_connection *conn;
6
7         u8 *tls_out;
8         size_t tls_out_len;
9         size_t tls_out_pos;
10         size_t tls_out_limit;
11         u8 *tls_in;
12         size_t tls_in_len;
13         size_t tls_in_left;
14         size_t tls_in_total;
15
16         int phase2;
17         int include_tls_length; /* include TLS length field even if the TLS
18                                  * data is not fragmented */
19
20         struct eap_sm *eap;
21 };
22
23
24 /* EAP TLS Flags */
25 #define EAP_TLS_FLAGS_LENGTH_INCLUDED 0x80
26 #define EAP_TLS_FLAGS_MORE_FRAGMENTS 0x40
27 #define EAP_TLS_FLAGS_START 0x20
28 #define EAP_PEAP_VERSION_MASK 0x07
29
30  /* could be up to 128 bytes, but only the first 64 bytes are used */
31 #define EAP_TLS_KEY_LEN 64
32
33
34 int eap_tls_ssl_init(struct eap_sm *sm, struct eap_ssl_data *data,
35                      struct wpa_ssid *config);
36 void eap_tls_ssl_deinit(struct eap_sm *sm, struct eap_ssl_data *data);
37 u8 * eap_tls_derive_key(struct eap_sm *sm, struct eap_ssl_data *data,
38                         char *label, size_t len);
39 int eap_tls_data_reassemble(struct eap_sm *sm, struct eap_ssl_data *data,
40                             u8 **in_data, size_t *in_len);
41 int eap_tls_process_helper(struct eap_sm *sm, struct eap_ssl_data *data,
42                            int eap_type, int peap_version,
43                            u8 id, u8 *in_data, size_t in_len,
44                            u8 **out_data, size_t *out_len);
45 u8 * eap_tls_build_ack(struct eap_ssl_data *data, size_t *respDataLen, u8 id,
46                        int eap_type, int peap_version);
47 int eap_tls_reauth_init(struct eap_sm *sm, struct eap_ssl_data *data);
48 int eap_tls_status(struct eap_sm *sm, struct eap_ssl_data *data, char *buf,
49                    size_t buflen, int verbose);
50
51 #endif /* EAP_TLS_COMMON_H */