@ -932,51 +932,6 @@ void ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const u8 *bssid,
}
EXPORT_SYMBOL_GPL ( ieee80211_gtk_rekey_notify ) ;
void ieee80211_get_key_tx_seq ( struct ieee80211_key_conf * keyconf ,
struct ieee80211_key_seq * seq )
{
struct ieee80211_key * key ;
u64 pn64 ;
if ( WARN_ON ( ! ( keyconf - > flags & IEEE80211_KEY_FLAG_GENERATE_IV ) ) )
return ;
key = container_of ( keyconf , struct ieee80211_key , conf ) ;
switch ( key - > conf . cipher ) {
case WLAN_CIPHER_SUITE_TKIP :
pn64 = atomic64_read ( & key - > conf . tx_pn ) ;
seq - > tkip . iv32 = TKIP_PN_TO_IV32 ( pn64 ) ;
seq - > tkip . iv16 = TKIP_PN_TO_IV16 ( pn64 ) ;
break ;
case WLAN_CIPHER_SUITE_CCMP :
case WLAN_CIPHER_SUITE_CCMP_256 :
case WLAN_CIPHER_SUITE_AES_CMAC :
case WLAN_CIPHER_SUITE_BIP_CMAC_256 :
BUILD_BUG_ON ( offsetof ( typeof ( * seq ) , ccmp ) ! =
offsetof ( typeof ( * seq ) , aes_cmac ) ) ;
case WLAN_CIPHER_SUITE_BIP_GMAC_128 :
case WLAN_CIPHER_SUITE_BIP_GMAC_256 :
BUILD_BUG_ON ( offsetof ( typeof ( * seq ) , ccmp ) ! =
offsetof ( typeof ( * seq ) , aes_gmac ) ) ;
case WLAN_CIPHER_SUITE_GCMP :
case WLAN_CIPHER_SUITE_GCMP_256 :
BUILD_BUG_ON ( offsetof ( typeof ( * seq ) , ccmp ) ! =
offsetof ( typeof ( * seq ) , gcmp ) ) ;
pn64 = atomic64_read ( & key - > conf . tx_pn ) ;
seq - > ccmp . pn [ 5 ] = pn64 ;
seq - > ccmp . pn [ 4 ] = pn64 > > 8 ;
seq - > ccmp . pn [ 3 ] = pn64 > > 16 ;
seq - > ccmp . pn [ 2 ] = pn64 > > 24 ;
seq - > ccmp . pn [ 1 ] = pn64 > > 32 ;
seq - > ccmp . pn [ 0 ] = pn64 > > 40 ;
break ;
default :
WARN_ON ( 1 ) ;
}
}
EXPORT_SYMBOL ( ieee80211_get_key_tx_seq ) ;
void ieee80211_get_key_rx_seq ( struct ieee80211_key_conf * keyconf ,
int tid , struct ieee80211_key_seq * seq )
{
@ -1030,48 +985,6 @@ void ieee80211_get_key_rx_seq(struct ieee80211_key_conf *keyconf,
}
EXPORT_SYMBOL ( ieee80211_get_key_rx_seq ) ;
void ieee80211_set_key_tx_seq ( struct ieee80211_key_conf * keyconf ,
struct ieee80211_key_seq * seq )
{
struct ieee80211_key * key ;
u64 pn64 ;
key = container_of ( keyconf , struct ieee80211_key , conf ) ;
switch ( key - > conf . cipher ) {
case WLAN_CIPHER_SUITE_TKIP :
pn64 = ( u64 ) seq - > tkip . iv16 | ( ( u64 ) seq - > tkip . iv32 < < 16 ) ;
atomic64_set ( & key - > conf . tx_pn , pn64 ) ;
break ;
case WLAN_CIPHER_SUITE_CCMP :
case WLAN_CIPHER_SUITE_CCMP_256 :
case WLAN_CIPHER_SUITE_AES_CMAC :
case WLAN_CIPHER_SUITE_BIP_CMAC_256 :
BUILD_BUG_ON ( offsetof ( typeof ( * seq ) , ccmp ) ! =
offsetof ( typeof ( * seq ) , aes_cmac ) ) ;
case WLAN_CIPHER_SUITE_BIP_GMAC_128 :
case WLAN_CIPHER_SUITE_BIP_GMAC_256 :
BUILD_BUG_ON ( offsetof ( typeof ( * seq ) , ccmp ) ! =
offsetof ( typeof ( * seq ) , aes_gmac ) ) ;
case WLAN_CIPHER_SUITE_GCMP :
case WLAN_CIPHER_SUITE_GCMP_256 :
BUILD_BUG_ON ( offsetof ( typeof ( * seq ) , ccmp ) ! =
offsetof ( typeof ( * seq ) , gcmp ) ) ;
pn64 = ( u64 ) seq - > ccmp . pn [ 5 ] |
( ( u64 ) seq - > ccmp . pn [ 4 ] < < 8 ) |
( ( u64 ) seq - > ccmp . pn [ 3 ] < < 16 ) |
( ( u64 ) seq - > ccmp . pn [ 2 ] < < 24 ) |
( ( u64 ) seq - > ccmp . pn [ 1 ] < < 32 ) |
( ( u64 ) seq - > ccmp . pn [ 0 ] < < 40 ) ;
atomic64_set ( & key - > conf . tx_pn , pn64 ) ;
break ;
default :
WARN_ON ( 1 ) ;
break ;
}
}
EXPORT_SYMBOL_GPL ( ieee80211_set_key_tx_seq ) ;
void ieee80211_set_key_rx_seq ( struct ieee80211_key_conf * keyconf ,
int tid , struct ieee80211_key_seq * seq )
{