1*3d6c0713Schristos /* 2*3d6c0713Schristos * EAP peer method: EAP-TEAP PAC file processing 3*3d6c0713Schristos * Copyright (c) 2004-2019, Jouni Malinen <j@w1.fi> 4*3d6c0713Schristos * 5*3d6c0713Schristos * This software may be distributed under the terms of the BSD license. 6*3d6c0713Schristos * See README for more details. 7*3d6c0713Schristos */ 8*3d6c0713Schristos 9*3d6c0713Schristos #ifndef EAP_TEAP_PAC_H 10*3d6c0713Schristos #define EAP_TEAP_PAC_H 11*3d6c0713Schristos 12*3d6c0713Schristos #include "eap_common/eap_teap_common.h" 13*3d6c0713Schristos 14*3d6c0713Schristos struct eap_teap_pac { 15*3d6c0713Schristos struct eap_teap_pac *next; 16*3d6c0713Schristos 17*3d6c0713Schristos u8 pac_key[EAP_TEAP_PAC_KEY_LEN]; 18*3d6c0713Schristos u8 *pac_opaque; 19*3d6c0713Schristos size_t pac_opaque_len; 20*3d6c0713Schristos u8 *pac_info; 21*3d6c0713Schristos size_t pac_info_len; 22*3d6c0713Schristos u8 *a_id; 23*3d6c0713Schristos size_t a_id_len; 24*3d6c0713Schristos u8 *i_id; 25*3d6c0713Schristos size_t i_id_len; 26*3d6c0713Schristos u8 *a_id_info; 27*3d6c0713Schristos size_t a_id_info_len; 28*3d6c0713Schristos u16 pac_type; 29*3d6c0713Schristos }; 30*3d6c0713Schristos 31*3d6c0713Schristos 32*3d6c0713Schristos void eap_teap_free_pac(struct eap_teap_pac *pac); 33*3d6c0713Schristos struct eap_teap_pac * eap_teap_get_pac(struct eap_teap_pac *pac_root, 34*3d6c0713Schristos const u8 *a_id, size_t a_id_len, 35*3d6c0713Schristos u16 pac_type); 36*3d6c0713Schristos int eap_teap_add_pac(struct eap_teap_pac **pac_root, 37*3d6c0713Schristos struct eap_teap_pac **pac_current, 38*3d6c0713Schristos struct eap_teap_pac *entry); 39*3d6c0713Schristos int eap_teap_load_pac(struct eap_sm *sm, struct eap_teap_pac **pac_root, 40*3d6c0713Schristos const char *pac_file); 41*3d6c0713Schristos int eap_teap_save_pac(struct eap_sm *sm, struct eap_teap_pac *pac_root, 42*3d6c0713Schristos const char *pac_file); 43*3d6c0713Schristos size_t eap_teap_pac_list_truncate(struct eap_teap_pac *pac_root, 44*3d6c0713Schristos size_t max_len); 45*3d6c0713Schristos int eap_teap_load_pac_bin(struct eap_sm *sm, struct eap_teap_pac **pac_root, 46*3d6c0713Schristos const char *pac_file); 47*3d6c0713Schristos int eap_teap_save_pac_bin(struct eap_sm *sm, struct eap_teap_pac *pac_root, 48*3d6c0713Schristos const char *pac_file); 49*3d6c0713Schristos 50*3d6c0713Schristos #endif /* EAP_TEAP_PAC_H */ 51