]>
Commit | Line | Data |
---|---|---|
6fc6879b JM |
1 | /* |
2 | * hostapd - PMKSA cache for IEEE 802.11i RSN | |
182748e4 | 3 | * Copyright (c) 2004-2008, 2012, Jouni Malinen <j@w1.fi> |
6fc6879b | 4 | * |
0f3d578e JM |
5 | * This software may be distributed under the terms of the BSD license. |
6 | * See README for more details. | |
6fc6879b JM |
7 | */ |
8 | ||
9 | #ifndef PMKSA_CACHE_H | |
10 | #define PMKSA_CACHE_H | |
11 | ||
e0e14a7b JM |
12 | #include "radius/radius.h" |
13 | ||
6fc6879b JM |
14 | /** |
15 | * struct rsn_pmksa_cache_entry - PMKSA cache entry | |
16 | */ | |
17 | struct rsn_pmksa_cache_entry { | |
18 | struct rsn_pmksa_cache_entry *next, *hnext; | |
19 | u8 pmkid[PMKID_LEN]; | |
207976f0 | 20 | u8 pmk[PMK_LEN_MAX]; |
6fc6879b JM |
21 | size_t pmk_len; |
22 | os_time_t expiration; | |
23 | int akmp; /* WPA_KEY_MGMT_* */ | |
24 | u8 spa[ETH_ALEN]; | |
25 | ||
26 | u8 *identity; | |
27 | size_t identity_len; | |
182748e4 | 28 | struct wpabuf *cui; |
6fc6879b JM |
29 | struct radius_class_data radius_class; |
30 | u8 eap_type_authsrv; | |
31 | int vlan_id; | |
bf98f7f3 | 32 | int opportunistic; |
fcc306e3 JM |
33 | |
34 | u32 acct_multi_session_id_hi; | |
35 | u32 acct_multi_session_id_lo; | |
6fc6879b JM |
36 | }; |
37 | ||
38 | struct rsn_pmksa_cache; | |
39 | ||
40 | struct rsn_pmksa_cache * | |
4bb081f1 JM |
41 | pmksa_cache_auth_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry, |
42 | void *ctx), void *ctx); | |
43 | void pmksa_cache_auth_deinit(struct rsn_pmksa_cache *pmksa); | |
44 | struct rsn_pmksa_cache_entry * | |
45 | pmksa_cache_auth_get(struct rsn_pmksa_cache *pmksa, | |
46 | const u8 *spa, const u8 *pmkid); | |
bf98f7f3 JM |
47 | struct rsn_pmksa_cache_entry * pmksa_cache_get_okc( |
48 | struct rsn_pmksa_cache *pmksa, const u8 *spa, const u8 *aa, | |
49 | const u8 *pmkid); | |
6fc6879b | 50 | struct rsn_pmksa_cache_entry * |
4bb081f1 JM |
51 | pmksa_cache_auth_add(struct rsn_pmksa_cache *pmksa, |
52 | const u8 *pmk, size_t pmk_len, | |
087a1f4e | 53 | const u8 *kck, size_t kck_len, |
4bb081f1 JM |
54 | const u8 *aa, const u8 *spa, int session_timeout, |
55 | struct eapol_state_machine *eapol, int akmp); | |
bf98f7f3 JM |
56 | struct rsn_pmksa_cache_entry * |
57 | pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa, | |
58 | const struct rsn_pmksa_cache_entry *old_entry, | |
59 | const u8 *aa, const u8 *pmkid); | |
6fc6879b JM |
60 | void pmksa_cache_to_eapol_data(struct rsn_pmksa_cache_entry *entry, |
61 | struct eapol_state_machine *eapol); | |
901d1fe1 JM |
62 | void pmksa_cache_free_entry(struct rsn_pmksa_cache *pmksa, |
63 | struct rsn_pmksa_cache_entry *entry); | |
cbc210de JM |
64 | int pmksa_cache_auth_radius_das_disconnect(struct rsn_pmksa_cache *pmksa, |
65 | struct radius_das_attrs *attr); | |
6fc6879b JM |
66 | |
67 | #endif /* PMKSA_CACHE_H */ |