Added support for opportunistic key caching (OKC)
[libeap.git] / hostapd / pmksa_cache.h
index dd9074e..d5afc6f 100644 (file)
@@ -32,6 +32,7 @@ struct rsn_pmksa_cache_entry {
        struct radius_class_data radius_class;
        u8 eap_type_authsrv;
        int vlan_id;
+       int opportunistic;
 };
 
 struct rsn_pmksa_cache;
@@ -42,10 +43,17 @@ pmksa_cache_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
 void pmksa_cache_deinit(struct rsn_pmksa_cache *pmksa);
 struct rsn_pmksa_cache_entry * pmksa_cache_get(struct rsn_pmksa_cache *pmksa,
                                               const u8 *spa, const u8 *pmkid);
+struct rsn_pmksa_cache_entry * pmksa_cache_get_okc(
+       struct rsn_pmksa_cache *pmksa, const u8 *spa, const u8 *aa,
+       const u8 *pmkid);
 struct rsn_pmksa_cache_entry *
 pmksa_cache_add(struct rsn_pmksa_cache *pmksa, const u8 *pmk, size_t pmk_len,
                const u8 *aa, const u8 *spa, int session_timeout,
                struct eapol_state_machine *eapol);
+struct rsn_pmksa_cache_entry *
+pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa,
+                   const struct rsn_pmksa_cache_entry *old_entry,
+                   const u8 *aa, const u8 *pmkid);
 void pmksa_cache_to_eapol_data(struct rsn_pmksa_cache_entry *entry,
                               struct eapol_state_machine *eapol);
 void rsn_pmkid(const u8 *pmk, size_t pmk_len, const u8 *aa, const u8 *spa,