1 /* 2 * RSN PTKSA cache interface 3 * 4 * Copyright (C) 2019 Intel Corporation 5 * 6 * This software may be distributed under the terms of the BSD license. 7 * See README for more details. 8 */ 9 10 #ifndef PTKSA_CACHE_H 11 #define PTKSA_CACHE_H 12 13 #include "wpa_common.h" 14 #include "defs.h" 15 #include "list.h" 16 17 /** 18 * struct ptksa_cache_entry - PTKSA cache entry 19 */ 20 struct ptksa_cache_entry { 21 struct dl_list list; 22 struct wpa_ptk ptk; 23 os_time_t expiration; 24 u32 cipher; 25 u8 addr[ETH_ALEN]; 26 u8 own_addr[ETH_ALEN]; 27 void (*cb)(struct ptksa_cache_entry *e); 28 void *ctx; 29 u32 akmp; 30 }; 31 32 33 struct ptksa_cache; 34 35 struct ptksa_cache * ptksa_cache_init(void); 36 void ptksa_cache_deinit(struct ptksa_cache *ptksa); 37 struct ptksa_cache_entry * ptksa_cache_get(struct ptksa_cache *ptksa, 38 const u8 *addr, u32 cipher); 39 int ptksa_cache_list(struct ptksa_cache *ptksa, char *buf, size_t len); 40 struct ptksa_cache_entry * ptksa_cache_add(struct ptksa_cache *ptksa, 41 const u8 *own_addr, 42 const u8 *addr, u32 cipher, 43 u32 life_time, 44 const struct wpa_ptk *ptk, 45 void (*cb) 46 (struct ptksa_cache_entry *e), 47 void *ctx, u32 akmp); 48 void ptksa_cache_flush(struct ptksa_cache *ptksa, const u8 *addr, u32 cipher); 49 50 #endif /* PTKSA_CACHE_H */ 51