Lines Matching refs:key

145 u8 *ieee80211_tkip_add_iv(u8 *pos, struct ieee80211_key *key)  in ieee80211_tkip_add_iv()  argument
147 lockdep_assert_held(&key->u.tkip.txlock); in ieee80211_tkip_add_iv()
149 pos = write_tkip_iv(pos, key->u.tkip.tx.iv16); in ieee80211_tkip_add_iv()
150 *pos++ = (key->conf.keyidx << 6) | (1 << 5) /* Ext IV */; in ieee80211_tkip_add_iv()
151 put_unaligned_le32(key->u.tkip.tx.iv32, pos); in ieee80211_tkip_add_iv()
155 static void ieee80211_compute_tkip_p1k(struct ieee80211_key *key, u32 iv32) in ieee80211_compute_tkip_p1k() argument
157 struct ieee80211_sub_if_data *sdata = key->sdata; in ieee80211_compute_tkip_p1k()
158 struct tkip_ctx *ctx = &key->u.tkip.tx; in ieee80211_compute_tkip_p1k()
159 const u8 *tk = &key->conf.key[NL80211_TKIP_DATA_OFFSET_ENCR_KEY]; in ieee80211_compute_tkip_p1k()
161 lockdep_assert_held(&key->u.tkip.txlock); in ieee80211_compute_tkip_p1k()
177 struct ieee80211_key *key = (struct ieee80211_key *) in ieee80211_get_tkip_p1k_iv() local
179 struct tkip_ctx *ctx = &key->u.tkip.tx; in ieee80211_get_tkip_p1k_iv()
181 spin_lock_bh(&key->u.tkip.txlock); in ieee80211_get_tkip_p1k_iv()
182 ieee80211_compute_tkip_p1k(key, iv32); in ieee80211_get_tkip_p1k_iv()
184 spin_unlock_bh(&key->u.tkip.txlock); in ieee80211_get_tkip_p1k_iv()
191 const u8 *tk = &keyconf->key[NL80211_TKIP_DATA_OFFSET_ENCR_KEY]; in ieee80211_get_tkip_rx_p1k()
202 struct ieee80211_key *key = (struct ieee80211_key *) in ieee80211_get_tkip_p2k() local
204 const u8 *tk = &key->conf.key[NL80211_TKIP_DATA_OFFSET_ENCR_KEY]; in ieee80211_get_tkip_p2k()
205 struct tkip_ctx *ctx = &key->u.tkip.tx; in ieee80211_get_tkip_p2k()
211 spin_lock(&key->u.tkip.txlock); in ieee80211_get_tkip_p2k()
212 ieee80211_compute_tkip_p1k(key, iv32); in ieee80211_get_tkip_p2k()
214 spin_unlock(&key->u.tkip.txlock); in ieee80211_get_tkip_p2k()
226 struct ieee80211_key *key, in ieee80211_tkip_encrypt_data() argument
232 ieee80211_get_tkip_p2k(&key->conf, skb, rc4key); in ieee80211_tkip_encrypt_data()
243 struct ieee80211_key *key, in ieee80211_tkip_decrypt_data() argument
252 const u8 *tk = &key->conf.key[NL80211_TKIP_DATA_OFFSET_ENCR_KEY]; in ieee80211_tkip_decrypt_data()
265 if ((keyid >> 6) != key->conf.keyidx) in ieee80211_tkip_decrypt_data()
268 if (key->u.tkip.rx[queue].state != TKIP_STATE_NOT_INIT && in ieee80211_tkip_decrypt_data()
269 (iv32 < key->u.tkip.rx[queue].iv32 || in ieee80211_tkip_decrypt_data()
270 (iv32 == key->u.tkip.rx[queue].iv32 && in ieee80211_tkip_decrypt_data()
271 iv16 <= key->u.tkip.rx[queue].iv16))) in ieee80211_tkip_decrypt_data()
276 key->u.tkip.rx[queue].state = TKIP_STATE_PHASE1_HW_UPLOADED; in ieee80211_tkip_decrypt_data()
280 if (key->u.tkip.rx[queue].state == TKIP_STATE_NOT_INIT || in ieee80211_tkip_decrypt_data()
281 key->u.tkip.rx[queue].iv32 != iv32) { in ieee80211_tkip_decrypt_data()
283 tkip_mixing_phase1(tk, &key->u.tkip.rx[queue], ta, iv32); in ieee80211_tkip_decrypt_data()
285 if (key->local->ops->update_tkip_key && in ieee80211_tkip_decrypt_data()
286 key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE && in ieee80211_tkip_decrypt_data()
287 key->u.tkip.rx[queue].state != TKIP_STATE_PHASE1_HW_UPLOADED) { in ieee80211_tkip_decrypt_data()
288 struct ieee80211_sub_if_data *sdata = key->sdata; in ieee80211_tkip_decrypt_data()
291 sdata = container_of(key->sdata->bss, in ieee80211_tkip_decrypt_data()
293 drv_update_tkip_key(key->local, sdata, &key->conf, key->sta, in ieee80211_tkip_decrypt_data()
294 iv32, key->u.tkip.rx[queue].p1k); in ieee80211_tkip_decrypt_data()
295 key->u.tkip.rx[queue].state = TKIP_STATE_PHASE1_HW_UPLOADED; in ieee80211_tkip_decrypt_data()
298 tkip_mixing_phase2(tk, &key->u.tkip.rx[queue], iv16, rc4key); in ieee80211_tkip_decrypt_data()