139beb93cSSam Leffler /* 239beb93cSSam Leffler * EAP peer method: EAP-FAST PAC file processing 339beb93cSSam Leffler * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 5*f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6*f05cddf9SRui Paulo * See README for more details. 739beb93cSSam Leffler */ 839beb93cSSam Leffler 939beb93cSSam Leffler #ifndef EAP_FAST_PAC_H 1039beb93cSSam Leffler #define EAP_FAST_PAC_H 1139beb93cSSam Leffler 1239beb93cSSam Leffler #include "eap_common/eap_fast_common.h" 1339beb93cSSam Leffler 1439beb93cSSam Leffler struct eap_fast_pac { 1539beb93cSSam Leffler struct eap_fast_pac *next; 1639beb93cSSam Leffler 1739beb93cSSam Leffler u8 pac_key[EAP_FAST_PAC_KEY_LEN]; 1839beb93cSSam Leffler u8 *pac_opaque; 1939beb93cSSam Leffler size_t pac_opaque_len; 2039beb93cSSam Leffler u8 *pac_info; 2139beb93cSSam Leffler size_t pac_info_len; 2239beb93cSSam Leffler u8 *a_id; 2339beb93cSSam Leffler size_t a_id_len; 2439beb93cSSam Leffler u8 *i_id; 2539beb93cSSam Leffler size_t i_id_len; 2639beb93cSSam Leffler u8 *a_id_info; 2739beb93cSSam Leffler size_t a_id_info_len; 2839beb93cSSam Leffler u16 pac_type; 2939beb93cSSam Leffler }; 3039beb93cSSam Leffler 3139beb93cSSam Leffler 3239beb93cSSam Leffler void eap_fast_free_pac(struct eap_fast_pac *pac); 3339beb93cSSam Leffler struct eap_fast_pac * eap_fast_get_pac(struct eap_fast_pac *pac_root, 3439beb93cSSam Leffler const u8 *a_id, size_t a_id_len, 3539beb93cSSam Leffler u16 pac_type); 3639beb93cSSam Leffler int eap_fast_add_pac(struct eap_fast_pac **pac_root, 3739beb93cSSam Leffler struct eap_fast_pac **pac_current, 3839beb93cSSam Leffler struct eap_fast_pac *entry); 3939beb93cSSam Leffler int eap_fast_load_pac(struct eap_sm *sm, struct eap_fast_pac **pac_root, 4039beb93cSSam Leffler const char *pac_file); 4139beb93cSSam Leffler int eap_fast_save_pac(struct eap_sm *sm, struct eap_fast_pac *pac_root, 4239beb93cSSam Leffler const char *pac_file); 4339beb93cSSam Leffler size_t eap_fast_pac_list_truncate(struct eap_fast_pac *pac_root, 4439beb93cSSam Leffler size_t max_len); 4539beb93cSSam Leffler int eap_fast_load_pac_bin(struct eap_sm *sm, struct eap_fast_pac **pac_root, 4639beb93cSSam Leffler const char *pac_file); 4739beb93cSSam Leffler int eap_fast_save_pac_bin(struct eap_sm *sm, struct eap_fast_pac *pac_root, 4839beb93cSSam Leffler const char *pac_file); 4939beb93cSSam Leffler 5039beb93cSSam Leffler #endif /* EAP_FAST_PAC_H */ 51