xref: /dflybsd-src/contrib/wpa_supplicant/src/eap_peer/eap_fast_pac.h (revision bcf9aa4feb4a2fdf8ceac276d271a57f4b27e13d)
16d49e1aeSJan Lentfer /*
26d49e1aeSJan Lentfer  * EAP peer method: EAP-FAST PAC file processing
36d49e1aeSJan Lentfer  * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
46d49e1aeSJan Lentfer  *
5*3ff40c12SJohn Marino  * This software may be distributed under the terms of the BSD license.
6*3ff40c12SJohn Marino  * See README for more details.
76d49e1aeSJan Lentfer  */
86d49e1aeSJan Lentfer 
96d49e1aeSJan Lentfer #ifndef EAP_FAST_PAC_H
106d49e1aeSJan Lentfer #define EAP_FAST_PAC_H
116d49e1aeSJan Lentfer 
126d49e1aeSJan Lentfer #include "eap_common/eap_fast_common.h"
136d49e1aeSJan Lentfer 
146d49e1aeSJan Lentfer struct eap_fast_pac {
156d49e1aeSJan Lentfer 	struct eap_fast_pac *next;
166d49e1aeSJan Lentfer 
176d49e1aeSJan Lentfer 	u8 pac_key[EAP_FAST_PAC_KEY_LEN];
186d49e1aeSJan Lentfer 	u8 *pac_opaque;
196d49e1aeSJan Lentfer 	size_t pac_opaque_len;
206d49e1aeSJan Lentfer 	u8 *pac_info;
216d49e1aeSJan Lentfer 	size_t pac_info_len;
226d49e1aeSJan Lentfer 	u8 *a_id;
236d49e1aeSJan Lentfer 	size_t a_id_len;
246d49e1aeSJan Lentfer 	u8 *i_id;
256d49e1aeSJan Lentfer 	size_t i_id_len;
266d49e1aeSJan Lentfer 	u8 *a_id_info;
276d49e1aeSJan Lentfer 	size_t a_id_info_len;
286d49e1aeSJan Lentfer 	u16 pac_type;
296d49e1aeSJan Lentfer };
306d49e1aeSJan Lentfer 
316d49e1aeSJan Lentfer 
326d49e1aeSJan Lentfer void eap_fast_free_pac(struct eap_fast_pac *pac);
336d49e1aeSJan Lentfer struct eap_fast_pac * eap_fast_get_pac(struct eap_fast_pac *pac_root,
346d49e1aeSJan Lentfer 				       const u8 *a_id, size_t a_id_len,
356d49e1aeSJan Lentfer 				       u16 pac_type);
366d49e1aeSJan Lentfer int eap_fast_add_pac(struct eap_fast_pac **pac_root,
376d49e1aeSJan Lentfer 		     struct eap_fast_pac **pac_current,
386d49e1aeSJan Lentfer 		     struct eap_fast_pac *entry);
396d49e1aeSJan Lentfer int eap_fast_load_pac(struct eap_sm *sm, struct eap_fast_pac **pac_root,
406d49e1aeSJan Lentfer 		      const char *pac_file);
416d49e1aeSJan Lentfer int eap_fast_save_pac(struct eap_sm *sm, struct eap_fast_pac *pac_root,
426d49e1aeSJan Lentfer 		      const char *pac_file);
436d49e1aeSJan Lentfer size_t eap_fast_pac_list_truncate(struct eap_fast_pac *pac_root,
446d49e1aeSJan Lentfer 				  size_t max_len);
456d49e1aeSJan Lentfer int eap_fast_load_pac_bin(struct eap_sm *sm, struct eap_fast_pac **pac_root,
466d49e1aeSJan Lentfer 			  const char *pac_file);
476d49e1aeSJan Lentfer int eap_fast_save_pac_bin(struct eap_sm *sm, struct eap_fast_pac *pac_root,
486d49e1aeSJan Lentfer 			  const char *pac_file);
496d49e1aeSJan Lentfer 
506d49e1aeSJan Lentfer #endif /* EAP_FAST_PAC_H */
51