Home | History | Annotate | Line # | Download | only in common
      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