hostapd
src
rsn_supp
pmksa_cache.h
1
/*
2
* wpa_supplicant - WPA2/RSN PMKSA cache functions
3
* Copyright (c) 2003-2009, 2011-2012, Jouni Malinen <j@w1.fi>
4
*
5
* This software may be distributed under the terms of the BSD license.
6
* See README for more details.
7
*/
8
9
#ifndef PMKSA_CACHE_H
10
#define PMKSA_CACHE_H
11
15
struct
rsn_pmksa_cache_entry
{
16
struct
rsn_pmksa_cache_entry
*next;
17
u8 pmkid[PMKID_LEN];
18
u8 pmk[PMK_LEN_MAX];
19
size_t
pmk_len;
20
os_time_t expiration;
21
int
akmp;
/* WPA_KEY_MGMT_* */
22
u8 aa[ETH_ALEN];
23
24
os_time_t reauth_time;
25
35
void
*
network_ctx
;
36
int
opportunistic;
37
};
38
39
struct
rsn_pmksa_cache
;
40
41
enum
pmksa_free_reason {
42
PMKSA_FREE,
43
PMKSA_REPLACE,
44
PMKSA_EXPIRE,
45
};
46
47
#if defined(IEEE8021X_EAPOL) && !defined(CONFIG_NO_WPA)
48
49
struct
rsn_pmksa_cache
*
50
pmksa_cache_init(
void
(*free_cb)(
struct
rsn_pmksa_cache_entry
*entry,
51
void
*ctx,
enum
pmksa_free_reason reason),
52
void
*ctx,
struct
wpa_sm
*sm);
53
void
pmksa_cache_deinit(
struct
rsn_pmksa_cache
*pmksa);
54
struct
rsn_pmksa_cache_entry
* pmksa_cache_get(
struct
rsn_pmksa_cache
*pmksa,
55
const
u8 *aa,
const
u8 *pmkid,
56
const
void
*
network_ctx
);
57
int
pmksa_cache_list(
struct
rsn_pmksa_cache
*pmksa,
char
*buf,
size_t
len);
58
struct
rsn_pmksa_cache_entry
* pmksa_cache_head(
struct
rsn_pmksa_cache
*pmksa);
59
struct
rsn_pmksa_cache_entry
*
60
pmksa_cache_add(
struct
rsn_pmksa_cache
*pmksa,
const
u8 *pmk,
size_t
pmk_len,
61
const
u8 *pmkid,
const
u8 *kck,
size_t
kck_len,
62
const
u8 *aa,
const
u8 *spa,
void
*
network_ctx
,
int
akmp);
63
struct
rsn_pmksa_cache_entry
*
64
pmksa_cache_add_entry(
struct
rsn_pmksa_cache
*pmksa,
65
struct
rsn_pmksa_cache_entry
*entry);
66
struct
rsn_pmksa_cache_entry
* pmksa_cache_get_current(
struct
wpa_sm
*sm);
67
void
pmksa_cache_clear_current(
struct
wpa_sm
*sm);
68
int
pmksa_cache_set_current(
struct
wpa_sm
*sm,
const
u8 *pmkid,
69
const
u8 *bssid,
void
*
network_ctx
,
70
int
try_opportunistic);
71
struct
rsn_pmksa_cache_entry
*
72
pmksa_cache_get_opportunistic(
struct
rsn_pmksa_cache
*pmksa,
73
void
*
network_ctx
,
const
u8 *aa);
74
void
pmksa_cache_flush(
struct
rsn_pmksa_cache
*pmksa,
void
*
network_ctx
,
75
const
u8 *pmk,
size_t
pmk_len);
76
77
#else
/* IEEE8021X_EAPOL */
78
79
static
inline
struct
rsn_pmksa_cache
*
80
pmksa_cache_init(
void
(*free_cb)(
struct
rsn_pmksa_cache_entry
*entry,
81
void
*ctx,
enum
pmksa_free_reason reason),
82
void
*ctx,
struct
wpa_sm
*sm)
83
{
84
return
(
void
*) -1;
85
}
86
87
static
inline
void
pmksa_cache_deinit(
struct
rsn_pmksa_cache
*pmksa)
88
{
89
}
90
91
static
inline
struct
rsn_pmksa_cache_entry
*
92
pmksa_cache_get(
struct
rsn_pmksa_cache
*pmksa,
const
u8 *aa,
const
u8 *pmkid,
93
const
void
*
network_ctx
)
94
{
95
return
NULL;
96
}
97
98
static
inline
struct
rsn_pmksa_cache_entry
*
99
pmksa_cache_get_current(
struct
wpa_sm
*sm)
100
{
101
return
NULL;
102
}
103
104
static
inline
int
pmksa_cache_list(
struct
rsn_pmksa_cache
*pmksa,
char
*buf,
105
size_t
len)
106
{
107
return
-1;
108
}
109
110
static
inline
struct
rsn_pmksa_cache_entry
*
111
pmksa_cache_head(
struct
rsn_pmksa_cache
*pmksa)
112
{
113
return
NULL;
114
}
115
116
static
inline
struct
rsn_pmksa_cache_entry
*
117
pmksa_cache_add_entry(
struct
rsn_pmksa_cache
*pmksa,
118
struct
rsn_pmksa_cache_entry
*entry)
119
{
120
return
NULL;
121
}
122
123
static
inline
struct
rsn_pmksa_cache_entry
*
124
pmksa_cache_add(
struct
rsn_pmksa_cache
*pmksa,
const
u8 *pmk,
size_t
pmk_len,
125
const
u8 *pmkid,
const
u8 *kck,
size_t
kck_len,
126
const
u8 *aa,
const
u8 *spa,
void
*
network_ctx
,
int
akmp)
127
{
128
return
NULL;
129
}
130
131
static
inline
void
pmksa_cache_clear_current(
struct
wpa_sm
*sm)
132
{
133
}
134
135
static
inline
int
pmksa_cache_set_current(
struct
wpa_sm
*sm,
const
u8 *pmkid,
136
const
u8 *bssid,
137
void
*
network_ctx
,
138
int
try_opportunistic)
139
{
140
return
-1;
141
}
142
143
static
inline
void
pmksa_cache_flush(
struct
rsn_pmksa_cache
*pmksa,
144
void
*
network_ctx
,
145
const
u8 *pmk,
size_t
pmk_len)
146
{
147
}
148
149
#endif
/* IEEE8021X_EAPOL */
150
151
#endif
/* PMKSA_CACHE_H */
rsn_pmksa_cache
Definition:
pmksa_cache_auth.c:24
rsn_pmksa_cache_entry::network_ctx
void * network_ctx
network_ctx - Network configuration context
Definition:
pmksa_cache.h:35
rsn_pmksa_cache_entry
struct rsn_pmksa_cache_entry - PMKSA cache entry
Definition:
pmksa_cache_auth.h:17
wpa_sm
struct wpa_sm - Internal WPA state machine data
Definition:
wpa_i.h:21
Generated by
1.8.12