eap_fast_pac.h revision 8d520ff1dc2da35cdca849e982051b86468016d8
1/*
2 * EAP peer method: EAP-FAST PAC file processing
3 * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * Alternatively, this software may be distributed under the terms of BSD
10 * license.
11 *
12 * See README and COPYING for more details.
13 */
14
15#ifndef EAP_FAST_PAC_H
16#define EAP_FAST_PAC_H
17
18#include "eap_common/eap_fast_common.h"
19
20struct eap_fast_pac {
21	struct eap_fast_pac *next;
22
23	u8 pac_key[EAP_FAST_PAC_KEY_LEN];
24	u8 *pac_opaque;
25	size_t pac_opaque_len;
26	u8 *pac_info;
27	size_t pac_info_len;
28	u8 *a_id;
29	size_t a_id_len;
30	u8 *i_id;
31	size_t i_id_len;
32	u8 *a_id_info;
33	size_t a_id_info_len;
34	u16 pac_type;
35};
36
37
38void eap_fast_free_pac(struct eap_fast_pac *pac);
39struct eap_fast_pac * eap_fast_get_pac(struct eap_fast_pac *pac_root,
40				       const u8 *a_id, size_t a_id_len,
41				       u16 pac_type);
42int eap_fast_add_pac(struct eap_fast_pac **pac_root,
43		     struct eap_fast_pac **pac_current,
44		     struct eap_fast_pac *entry);
45int eap_fast_load_pac(struct eap_sm *sm, struct eap_fast_pac **pac_root,
46		      const char *pac_file);
47int eap_fast_save_pac(struct eap_sm *sm, struct eap_fast_pac *pac_root,
48		      const char *pac_file);
49size_t eap_fast_pac_list_truncate(struct eap_fast_pac *pac_root,
50				  size_t max_len);
51int eap_fast_load_pac_bin(struct eap_sm *sm, struct eap_fast_pac **pac_root,
52			  const char *pac_file);
53int eap_fast_save_pac_bin(struct eap_sm *sm, struct eap_fast_pac *pac_root,
54			  const char *pac_file);
55
56#endif /* EAP_FAST_PAC_H */
57