Renamed PMKSA cache functions to avoid duplicate symbols with supplicant
This allows hostapd/pmksa_cache.c and src/rsn_supp/pmksa_cache.c to be linked into the same program.
This commit is contained in:
parent
13268290b6
commit
4bb081f1b4
4 changed files with 39 additions and 34 deletions
|
@ -211,8 +211,8 @@ static void pmksa_cache_link_entry(struct rsn_pmksa_cache *pmksa,
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pmksa_cache_add - Add a PMKSA cache entry
|
* pmksa_cache_auth_add - Add a PMKSA cache entry
|
||||||
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_init()
|
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
|
||||||
* @pmk: The new pairwise master key
|
* @pmk: The new pairwise master key
|
||||||
* @pmk_len: PMK length in bytes, usually PMK_LEN (32)
|
* @pmk_len: PMK length in bytes, usually PMK_LEN (32)
|
||||||
* @aa: Authenticator address
|
* @aa: Authenticator address
|
||||||
|
@ -228,7 +228,8 @@ static void pmksa_cache_link_entry(struct rsn_pmksa_cache *pmksa,
|
||||||
* based on the PMK.
|
* based on the PMK.
|
||||||
*/
|
*/
|
||||||
struct rsn_pmksa_cache_entry *
|
struct rsn_pmksa_cache_entry *
|
||||||
pmksa_cache_add(struct rsn_pmksa_cache *pmksa, const u8 *pmk, size_t pmk_len,
|
pmksa_cache_auth_add(struct rsn_pmksa_cache *pmksa,
|
||||||
|
const u8 *pmk, size_t pmk_len,
|
||||||
const u8 *aa, const u8 *spa, int session_timeout,
|
const u8 *aa, const u8 *spa, int session_timeout,
|
||||||
struct eapol_state_machine *eapol, int akmp)
|
struct eapol_state_machine *eapol, int akmp)
|
||||||
{
|
{
|
||||||
|
@ -257,7 +258,7 @@ pmksa_cache_add(struct rsn_pmksa_cache *pmksa, const u8 *pmk, size_t pmk_len,
|
||||||
|
|
||||||
/* Replace an old entry for the same STA (if found) with the new entry
|
/* Replace an old entry for the same STA (if found) with the new entry
|
||||||
*/
|
*/
|
||||||
pos = pmksa_cache_get(pmksa, spa, NULL);
|
pos = pmksa_cache_auth_get(pmksa, spa, NULL);
|
||||||
if (pos)
|
if (pos)
|
||||||
pmksa_cache_free_entry(pmksa, pos);
|
pmksa_cache_free_entry(pmksa, pos);
|
||||||
|
|
||||||
|
@ -312,10 +313,10 @@ pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa,
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pmksa_cache_deinit - Free all entries in PMKSA cache
|
* pmksa_cache_auth_deinit - Free all entries in PMKSA cache
|
||||||
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_init()
|
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
|
||||||
*/
|
*/
|
||||||
void pmksa_cache_deinit(struct rsn_pmksa_cache *pmksa)
|
void pmksa_cache_auth_deinit(struct rsn_pmksa_cache *pmksa)
|
||||||
{
|
{
|
||||||
struct rsn_pmksa_cache_entry *entry, *prev;
|
struct rsn_pmksa_cache_entry *entry, *prev;
|
||||||
int i;
|
int i;
|
||||||
|
@ -337,14 +338,15 @@ void pmksa_cache_deinit(struct rsn_pmksa_cache *pmksa)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pmksa_cache_get - Fetch a PMKSA cache entry
|
* pmksa_cache_auth_get - Fetch a PMKSA cache entry
|
||||||
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_init()
|
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
|
||||||
* @spa: Supplicant address or %NULL to match any
|
* @spa: Supplicant address or %NULL to match any
|
||||||
* @pmkid: PMKID or %NULL to match any
|
* @pmkid: PMKID or %NULL to match any
|
||||||
* Returns: Pointer to PMKSA cache entry or %NULL if no match was found
|
* Returns: Pointer to PMKSA cache entry or %NULL if no match was found
|
||||||
*/
|
*/
|
||||||
struct rsn_pmksa_cache_entry * pmksa_cache_get(struct rsn_pmksa_cache *pmksa,
|
struct rsn_pmksa_cache_entry *
|
||||||
const u8 *spa, const u8 *pmkid)
|
pmksa_cache_auth_get(struct rsn_pmksa_cache *pmksa,
|
||||||
|
const u8 *spa, const u8 *pmkid)
|
||||||
{
|
{
|
||||||
struct rsn_pmksa_cache_entry *entry;
|
struct rsn_pmksa_cache_entry *entry;
|
||||||
|
|
||||||
|
@ -366,7 +368,7 @@ struct rsn_pmksa_cache_entry * pmksa_cache_get(struct rsn_pmksa_cache *pmksa,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pmksa_cache_get_okc - Fetch a PMKSA cache entry using OKC
|
* pmksa_cache_get_okc - Fetch a PMKSA cache entry using OKC
|
||||||
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_init()
|
* @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
|
||||||
* @aa: Authenticator address
|
* @aa: Authenticator address
|
||||||
* @spa: Supplicant address
|
* @spa: Supplicant address
|
||||||
* @pmkid: PMKID
|
* @pmkid: PMKID
|
||||||
|
@ -396,14 +398,14 @@ struct rsn_pmksa_cache_entry * pmksa_cache_get_okc(
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pmksa_cache_init - Initialize PMKSA cache
|
* pmksa_cache_auth_init - Initialize PMKSA cache
|
||||||
* @free_cb: Callback function to be called when a PMKSA cache entry is freed
|
* @free_cb: Callback function to be called when a PMKSA cache entry is freed
|
||||||
* @ctx: Context pointer for free_cb function
|
* @ctx: Context pointer for free_cb function
|
||||||
* Returns: Pointer to PMKSA cache data or %NULL on failure
|
* Returns: Pointer to PMKSA cache data or %NULL on failure
|
||||||
*/
|
*/
|
||||||
struct rsn_pmksa_cache *
|
struct rsn_pmksa_cache *
|
||||||
pmksa_cache_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
|
pmksa_cache_auth_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
|
||||||
void *ctx), void *ctx)
|
void *ctx), void *ctx)
|
||||||
{
|
{
|
||||||
struct rsn_pmksa_cache *pmksa;
|
struct rsn_pmksa_cache *pmksa;
|
||||||
|
|
||||||
|
|
|
@ -38,18 +38,20 @@ struct rsn_pmksa_cache_entry {
|
||||||
struct rsn_pmksa_cache;
|
struct rsn_pmksa_cache;
|
||||||
|
|
||||||
struct rsn_pmksa_cache *
|
struct rsn_pmksa_cache *
|
||||||
pmksa_cache_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
|
pmksa_cache_auth_init(void (*free_cb)(struct rsn_pmksa_cache_entry *entry,
|
||||||
void *ctx), void *ctx);
|
void *ctx), void *ctx);
|
||||||
void pmksa_cache_deinit(struct rsn_pmksa_cache *pmksa);
|
void pmksa_cache_auth_deinit(struct rsn_pmksa_cache *pmksa);
|
||||||
struct rsn_pmksa_cache_entry * pmksa_cache_get(struct rsn_pmksa_cache *pmksa,
|
struct rsn_pmksa_cache_entry *
|
||||||
const u8 *spa, const u8 *pmkid);
|
pmksa_cache_auth_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_entry * pmksa_cache_get_okc(
|
||||||
struct rsn_pmksa_cache *pmksa, const u8 *spa, const u8 *aa,
|
struct rsn_pmksa_cache *pmksa, const u8 *spa, const u8 *aa,
|
||||||
const u8 *pmkid);
|
const u8 *pmkid);
|
||||||
struct rsn_pmksa_cache_entry *
|
struct rsn_pmksa_cache_entry *
|
||||||
pmksa_cache_add(struct rsn_pmksa_cache *pmksa, const u8 *pmk, size_t pmk_len,
|
pmksa_cache_auth_add(struct rsn_pmksa_cache *pmksa,
|
||||||
const u8 *aa, const u8 *spa, int session_timeout,
|
const u8 *pmk, size_t pmk_len,
|
||||||
struct eapol_state_machine *eapol, int akmp);
|
const u8 *aa, const u8 *spa, int session_timeout,
|
||||||
|
struct eapol_state_machine *eapol, int akmp);
|
||||||
struct rsn_pmksa_cache_entry *
|
struct rsn_pmksa_cache_entry *
|
||||||
pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa,
|
pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa,
|
||||||
const struct rsn_pmksa_cache_entry *old_entry,
|
const struct rsn_pmksa_cache_entry *old_entry,
|
||||||
|
|
|
@ -374,7 +374,8 @@ struct wpa_authenticator * wpa_init(const u8 *addr,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wpa_auth->pmksa = pmksa_cache_init(wpa_auth_pmksa_free_cb, wpa_auth);
|
wpa_auth->pmksa = pmksa_cache_auth_init(wpa_auth_pmksa_free_cb,
|
||||||
|
wpa_auth);
|
||||||
if (wpa_auth->pmksa == NULL) {
|
if (wpa_auth->pmksa == NULL) {
|
||||||
wpa_printf(MSG_ERROR, "PMKSA cache initialization failed.");
|
wpa_printf(MSG_ERROR, "PMKSA cache initialization failed.");
|
||||||
os_free(wpa_auth->wpa_ie);
|
os_free(wpa_auth->wpa_ie);
|
||||||
|
@ -387,7 +388,7 @@ struct wpa_authenticator * wpa_init(const u8 *addr,
|
||||||
if (wpa_auth->ft_pmk_cache == NULL) {
|
if (wpa_auth->ft_pmk_cache == NULL) {
|
||||||
wpa_printf(MSG_ERROR, "FT PMK cache initialization failed.");
|
wpa_printf(MSG_ERROR, "FT PMK cache initialization failed.");
|
||||||
os_free(wpa_auth->wpa_ie);
|
os_free(wpa_auth->wpa_ie);
|
||||||
pmksa_cache_deinit(wpa_auth->pmksa);
|
pmksa_cache_auth_deinit(wpa_auth->pmksa);
|
||||||
os_free(wpa_auth);
|
os_free(wpa_auth);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -423,7 +424,7 @@ void wpa_deinit(struct wpa_authenticator *wpa_auth)
|
||||||
wpa_stsl_remove(wpa_auth, wpa_auth->stsl_negotiations);
|
wpa_stsl_remove(wpa_auth, wpa_auth->stsl_negotiations);
|
||||||
#endif /* CONFIG_PEERKEY */
|
#endif /* CONFIG_PEERKEY */
|
||||||
|
|
||||||
pmksa_cache_deinit(wpa_auth->pmksa);
|
pmksa_cache_auth_deinit(wpa_auth->pmksa);
|
||||||
|
|
||||||
#ifdef CONFIG_IEEE80211R
|
#ifdef CONFIG_IEEE80211R
|
||||||
wpa_ft_pmk_cache_deinit(wpa_auth->ft_pmk_cache);
|
wpa_ft_pmk_cache_deinit(wpa_auth->ft_pmk_cache);
|
||||||
|
@ -2367,9 +2368,9 @@ int wpa_auth_pmksa_add(struct wpa_state_machine *sm, const u8 *pmk,
|
||||||
if (sm == NULL || sm->wpa != WPA_VERSION_WPA2)
|
if (sm == NULL || sm->wpa != WPA_VERSION_WPA2)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (pmksa_cache_add(sm->wpa_auth->pmksa, pmk, PMK_LEN,
|
if (pmksa_cache_auth_add(sm->wpa_auth->pmksa, pmk, PMK_LEN,
|
||||||
sm->wpa_auth->addr, sm->addr, session_timeout,
|
sm->wpa_auth->addr, sm->addr, session_timeout,
|
||||||
eapol, sm->wpa_key_mgmt))
|
eapol, sm->wpa_key_mgmt))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -2384,9 +2385,9 @@ int wpa_auth_pmksa_add_preauth(struct wpa_authenticator *wpa_auth,
|
||||||
if (wpa_auth == NULL)
|
if (wpa_auth == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (pmksa_cache_add(wpa_auth->pmksa, pmk, len, wpa_auth->addr,
|
if (pmksa_cache_auth_add(wpa_auth->pmksa, pmk, len, wpa_auth->addr,
|
||||||
sta_addr, session_timeout, eapol,
|
sta_addr, session_timeout, eapol,
|
||||||
WPA_KEY_MGMT_IEEE8021X))
|
WPA_KEY_MGMT_IEEE8021X))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -670,8 +670,8 @@ int wpa_validate_wpa_ie(struct wpa_authenticator *wpa_auth,
|
||||||
for (i = 0; i < data.num_pmkid; i++) {
|
for (i = 0; i < data.num_pmkid; i++) {
|
||||||
wpa_hexdump(MSG_DEBUG, "RSN IE: STA PMKID",
|
wpa_hexdump(MSG_DEBUG, "RSN IE: STA PMKID",
|
||||||
&data.pmkid[i * PMKID_LEN], PMKID_LEN);
|
&data.pmkid[i * PMKID_LEN], PMKID_LEN);
|
||||||
sm->pmksa = pmksa_cache_get(wpa_auth->pmksa, sm->addr,
|
sm->pmksa = pmksa_cache_auth_get(wpa_auth->pmksa, sm->addr,
|
||||||
&data.pmkid[i * PMKID_LEN]);
|
&data.pmkid[i * PMKID_LEN]);
|
||||||
if (sm->pmksa) {
|
if (sm->pmksa) {
|
||||||
pmkid = sm->pmksa->pmkid;
|
pmkid = sm->pmksa->pmkid;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue