mka: Remember LowestPN for each key server
According IEEE Std 802.1X-2010, 9.8 each participant shall record the values of NextPN for last SAK accepted from each Key Server to use it in case of a switch from one Key Server to another and back. Add LPN recording and set saved value as the initial PN for the created channel. Signed-off-by: Andrey Kartashev <andrey.kartashev@afconsult.com>
This commit is contained in:
parent
54c6a69952
commit
c9c93e7a24
1 changed files with 6 additions and 1 deletions
|
@ -1435,6 +1435,8 @@ ieee802_1x_mka_decode_sak_use_body(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sa_key)
|
||||||
|
sa_key->next_pn = lpn;
|
||||||
found = FALSE;
|
found = FALSE;
|
||||||
dl_list_for_each(rxsc, &participant->rxsc_list, struct receive_sc,
|
dl_list_for_each(rxsc, &participant->rxsc_list, struct receive_sc,
|
||||||
list) {
|
list) {
|
||||||
|
@ -1568,6 +1570,7 @@ static void ieee802_1x_kay_init_data_key(struct data_key *pkey)
|
||||||
pkey->receives = TRUE;
|
pkey->receives = TRUE;
|
||||||
os_get_time(&pkey->created_time);
|
os_get_time(&pkey->created_time);
|
||||||
|
|
||||||
|
pkey->next_pn = 1;
|
||||||
pkey->user = 1;
|
pkey->user = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2784,7 +2787,9 @@ int ieee802_1x_kay_create_sas(struct ieee802_1x_kay *kay,
|
||||||
ieee802_1x_delete_transmit_sa(kay, txsa);
|
ieee802_1x_delete_transmit_sa(kay, txsa);
|
||||||
|
|
||||||
txsa = ieee802_1x_kay_init_transmit_sa(principal->txsc, latest_sak->an,
|
txsa = ieee802_1x_kay_init_transmit_sa(principal->txsc, latest_sak->an,
|
||||||
1, latest_sak);
|
latest_sak->next_pn ?
|
||||||
|
latest_sak->next_pn : 1,
|
||||||
|
latest_sak);
|
||||||
if (!txsa)
|
if (!txsa)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue