|
@@ -277,19 +277,6 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
|
|
|
key->u.ccmp.rx_pn[i][j] =
|
|
|
seq[CCMP_PN_LEN - j - 1];
|
|
|
}
|
|
|
- break;
|
|
|
- case WLAN_CIPHER_SUITE_AES_CMAC:
|
|
|
- key->conf.iv_len = 0;
|
|
|
- key->conf.icv_len = sizeof(struct ieee80211_mmie);
|
|
|
- if (seq)
|
|
|
- for (j = 0; j < 6; j++)
|
|
|
- key->u.aes_cmac.rx_pn[j] = seq[6 - j - 1];
|
|
|
- break;
|
|
|
- }
|
|
|
- memcpy(key->conf.key, key_data, key_len);
|
|
|
- INIT_LIST_HEAD(&key->list);
|
|
|
-
|
|
|
- if (cipher == WLAN_CIPHER_SUITE_CCMP) {
|
|
|
/*
|
|
|
* Initialize AES key state here as an optimization so that
|
|
|
* it does not need to be initialized for every packet.
|
|
@@ -300,9 +287,13 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
|
|
|
kfree(key);
|
|
|
key = ERR_PTR(err);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if (cipher == WLAN_CIPHER_SUITE_AES_CMAC) {
|
|
|
+ break;
|
|
|
+ case WLAN_CIPHER_SUITE_AES_CMAC:
|
|
|
+ key->conf.iv_len = 0;
|
|
|
+ key->conf.icv_len = sizeof(struct ieee80211_mmie);
|
|
|
+ if (seq)
|
|
|
+ for (j = 0; j < 6; j++)
|
|
|
+ key->u.aes_cmac.rx_pn[j] = seq[6 - j - 1];
|
|
|
/*
|
|
|
* Initialize AES key state here as an optimization so that
|
|
|
* it does not need to be initialized for every packet.
|
|
@@ -314,7 +305,10 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
|
|
|
kfree(key);
|
|
|
key = ERR_PTR(err);
|
|
|
}
|
|
|
+ break;
|
|
|
}
|
|
|
+ memcpy(key->conf.key, key_data, key_len);
|
|
|
+ INIT_LIST_HEAD(&key->list);
|
|
|
|
|
|
return key;
|
|
|
}
|