18dbcf02cSchristos /* 28dbcf02cSchristos * EAP peer method: EAP-FAST PAC file processing 38dbcf02cSchristos * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi> 48dbcf02cSchristos * 5*e604d861Schristos * This software may be distributed under the terms of the BSD license. 6*e604d861Schristos * See README for more details. 78dbcf02cSchristos */ 88dbcf02cSchristos 98dbcf02cSchristos #ifndef EAP_FAST_PAC_H 108dbcf02cSchristos #define EAP_FAST_PAC_H 118dbcf02cSchristos 128dbcf02cSchristos #include "eap_common/eap_fast_common.h" 138dbcf02cSchristos 148dbcf02cSchristos struct eap_fast_pac { 158dbcf02cSchristos struct eap_fast_pac *next; 168dbcf02cSchristos 178dbcf02cSchristos u8 pac_key[EAP_FAST_PAC_KEY_LEN]; 188dbcf02cSchristos u8 *pac_opaque; 198dbcf02cSchristos size_t pac_opaque_len; 208dbcf02cSchristos u8 *pac_info; 218dbcf02cSchristos size_t pac_info_len; 228dbcf02cSchristos u8 *a_id; 238dbcf02cSchristos size_t a_id_len; 248dbcf02cSchristos u8 *i_id; 258dbcf02cSchristos size_t i_id_len; 268dbcf02cSchristos u8 *a_id_info; 278dbcf02cSchristos size_t a_id_info_len; 288dbcf02cSchristos u16 pac_type; 298dbcf02cSchristos }; 308dbcf02cSchristos 318dbcf02cSchristos 328dbcf02cSchristos void eap_fast_free_pac(struct eap_fast_pac *pac); 338dbcf02cSchristos struct eap_fast_pac * eap_fast_get_pac(struct eap_fast_pac *pac_root, 348dbcf02cSchristos const u8 *a_id, size_t a_id_len, 358dbcf02cSchristos u16 pac_type); 368dbcf02cSchristos int eap_fast_add_pac(struct eap_fast_pac **pac_root, 378dbcf02cSchristos struct eap_fast_pac **pac_current, 388dbcf02cSchristos struct eap_fast_pac *entry); 398dbcf02cSchristos int eap_fast_load_pac(struct eap_sm *sm, struct eap_fast_pac **pac_root, 408dbcf02cSchristos const char *pac_file); 418dbcf02cSchristos int eap_fast_save_pac(struct eap_sm *sm, struct eap_fast_pac *pac_root, 428dbcf02cSchristos const char *pac_file); 438dbcf02cSchristos size_t eap_fast_pac_list_truncate(struct eap_fast_pac *pac_root, 448dbcf02cSchristos size_t max_len); 458dbcf02cSchristos int eap_fast_load_pac_bin(struct eap_sm *sm, struct eap_fast_pac **pac_root, 468dbcf02cSchristos const char *pac_file); 478dbcf02cSchristos int eap_fast_save_pac_bin(struct eap_sm *sm, struct eap_fast_pac *pac_root, 488dbcf02cSchristos const char *pac_file); 498dbcf02cSchristos 508dbcf02cSchristos #endif /* EAP_FAST_PAC_H */ 51