| .. | .. |
|---|
| 14 | 14 | |
|---|
| 15 | 15 | |
|---|
| 16 | 16 | |
|---|
| 17 | | -static void ccmp_aad_nonce(_adapter *padapter, const struct ieee80211_hdr *hdr, const u8 *data, |
|---|
| 18 | | - u8 *aad, size_t *aad_len, u8 *nonce) |
|---|
| 17 | +static void ccmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data, |
|---|
| 18 | + u8 *aad, size_t *aad_len, u8 *nonce) |
|---|
| 19 | 19 | { |
|---|
| 20 | 20 | u16 fc, stype, seq; |
|---|
| 21 | 21 | int qos = 0, addr4 = 0; |
|---|
| .. | .. |
|---|
| 58 | 58 | pos += addr4 * ETH_ALEN; |
|---|
| 59 | 59 | if (qos) { |
|---|
| 60 | 60 | pos[0] &= ~0x70; |
|---|
| 61 | | - /* only spp mode need to refer QoS bit7 */ |
|---|
| 62 | | - if (padapter->registrypriv.amsdu_mode != RTW_AMSDU_MODE_SPP) |
|---|
| 61 | + if (1 /* FIX: either device has SPP A-MSDU Capab = 0 */) |
|---|
| 63 | 62 | pos[0] &= ~0x80; |
|---|
| 64 | 63 | pos++; |
|---|
| 65 | 64 | *pos++ = 0x00; |
|---|
| .. | .. |
|---|
| 135 | 134 | } |
|---|
| 136 | 135 | |
|---|
| 137 | 136 | |
|---|
| 138 | | -u8 * ccmp_decrypt(_adapter *padapter, const u8 *tk, const struct ieee80211_hdr *hdr, |
|---|
| 139 | | - const u8 *data, size_t data_len, size_t *decrypted_len) |
|---|
| 140 | | - |
|---|
| 137 | +u8 * ccmp_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, |
|---|
| 138 | + const u8 *data, size_t data_len, size_t *decrypted_len) |
|---|
| 141 | 139 | { |
|---|
| 142 | 140 | u8 aad[30], nonce[13]; |
|---|
| 143 | 141 | size_t aad_len; |
|---|
| .. | .. |
|---|
| 154 | 152 | mlen = data_len - 8 - 8; |
|---|
| 155 | 153 | |
|---|
| 156 | 154 | os_memset(aad, 0, sizeof(aad)); |
|---|
| 157 | | - ccmp_aad_nonce(padapter, hdr, data, aad, &aad_len, nonce); |
|---|
| 155 | + ccmp_aad_nonce(hdr, data, aad, &aad_len, nonce); |
|---|
| 158 | 156 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP AAD", aad, aad_len); |
|---|
| 159 | 157 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP nonce", nonce, 13); |
|---|
| 160 | 158 | |
|---|
| .. | .. |
|---|
| 188 | 186 | } |
|---|
| 189 | 187 | |
|---|
| 190 | 188 | |
|---|
| 191 | | -u8 * ccmp_encrypt(_adapter *padapter, const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, |
|---|
| 192 | | - u8 *pn, int keyid, size_t *encrypted_len) |
|---|
| 193 | | - |
|---|
| 189 | +u8 * ccmp_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, u8 *qos, |
|---|
| 190 | + u8 *pn, int keyid, size_t *encrypted_len) |
|---|
| 194 | 191 | { |
|---|
| 195 | 192 | u8 aad[30], nonce[13]; |
|---|
| 196 | 193 | size_t aad_len, plen; |
|---|
| .. | .. |
|---|
| 228 | 225 | } |
|---|
| 229 | 226 | |
|---|
| 230 | 227 | os_memset(aad, 0, sizeof(aad)); |
|---|
| 231 | | - ccmp_aad_nonce(padapter, hdr, crypt + hdrlen, aad, &aad_len, nonce); |
|---|
| 228 | + ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce); |
|---|
| 232 | 229 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP AAD", aad, aad_len); |
|---|
| 233 | 230 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP nonce", nonce, 13); |
|---|
| 234 | 231 | |
|---|
| .. | .. |
|---|
| 288 | 285 | } |
|---|
| 289 | 286 | |
|---|
| 290 | 287 | |
|---|
| 291 | | -u8 * ccmp_256_decrypt(_adapter *padapter, const u8 *tk, const struct ieee80211_hdr *hdr, |
|---|
| 292 | | - const u8 *data, size_t data_len, size_t *decrypted_len) |
|---|
| 293 | | - |
|---|
| 288 | +u8 * ccmp_256_decrypt(const u8 *tk, const struct ieee80211_hdr *hdr, |
|---|
| 289 | + const u8 *data, size_t data_len, size_t *decrypted_len) |
|---|
| 294 | 290 | { |
|---|
| 295 | 291 | u8 aad[30], nonce[13]; |
|---|
| 296 | 292 | size_t aad_len; |
|---|
| .. | .. |
|---|
| 307 | 303 | mlen = data_len - 8 - 16; |
|---|
| 308 | 304 | |
|---|
| 309 | 305 | os_memset(aad, 0, sizeof(aad)); |
|---|
| 310 | | - ccmp_aad_nonce(padapter, hdr, data, aad, &aad_len, nonce); |
|---|
| 306 | + ccmp_aad_nonce(hdr, data, aad, &aad_len, nonce); |
|---|
| 311 | 307 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 AAD", aad, aad_len); |
|---|
| 312 | 308 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 nonce", nonce, 13); |
|---|
| 313 | 309 | |
|---|
| .. | .. |
|---|
| 330 | 326 | } |
|---|
| 331 | 327 | |
|---|
| 332 | 328 | |
|---|
| 333 | | -u8 * ccmp_256_encrypt(_adapter *padapter, const u8 *tk, u8 *frame, size_t len, size_t hdrlen, |
|---|
| 334 | | - u8 *qos, u8 *pn, int keyid, size_t *encrypted_len) |
|---|
| 335 | | - |
|---|
| 329 | +u8 * ccmp_256_encrypt(const u8 *tk, u8 *frame, size_t len, size_t hdrlen, |
|---|
| 330 | + u8 *qos, u8 *pn, int keyid, size_t *encrypted_len) |
|---|
| 336 | 331 | { |
|---|
| 337 | 332 | u8 aad[30], nonce[13]; |
|---|
| 338 | 333 | size_t aad_len, plen; |
|---|
| .. | .. |
|---|
| 370 | 365 | } |
|---|
| 371 | 366 | |
|---|
| 372 | 367 | os_memset(aad, 0, sizeof(aad)); |
|---|
| 373 | | - ccmp_aad_nonce(padapter, hdr, crypt + hdrlen, aad, &aad_len, nonce); |
|---|
| 368 | + ccmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce); |
|---|
| 374 | 369 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 AAD", aad, aad_len); |
|---|
| 375 | 370 | wpa_hexdump(_MSG_EXCESSIVE_, "CCMP-256 nonce", nonce, 13); |
|---|
| 376 | 371 | |
|---|