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