forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/drivers/net/wireless/rockchip_wlan/rtl8723cs/core/crypto/gcmp.c
....@@ -13,9 +13,8 @@
1313 #include "wlancrypto_wrap.h"
1414
1515
16
-static void gcmp_aad_nonce(_adapter * padapter, const struct ieee80211_hdr *hdr, const u8 *data,
17
- u8 *aad, size_t *aad_len, u8 *nonce)
18
-
16
+static void gcmp_aad_nonce(const struct ieee80211_hdr *hdr, const u8 *data,
17
+ u8 *aad, size_t *aad_len, u8 *nonce)
1918 {
2019 u16 fc, stype, seq;
2120 int qos = 0, addr4 = 0;
....@@ -55,8 +54,7 @@
5554 pos += addr4 * ETH_ALEN;
5655 if (qos) {
5756 pos[0] &= ~0x70;
58
- /* only spp mode need to refer QoS bit7 */
59
- if (padapter->registrypriv.amsdu_mode != RTW_AMSDU_MODE_SPP)
57
+ if (1 /* FIX: either device has SPP A-MSDU Capab = 0 */)
6058 pos[0] &= ~0x80;
6159 pos++;
6260 *pos++ = 0x00;
....@@ -83,8 +81,8 @@
8381 * @data_len: length of @data (PN + enc_data + MIC)
8482 * @decrypted_len: length of the data decrypted
8583 */
86
-u8 * gcmp_decrypt(_adapter *padapter, const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr,
87
- const u8 *data, size_t data_len, size_t *decrypted_len)
84
+u8 * gcmp_decrypt(const u8 *tk, size_t tk_len, const struct ieee80211_hdr *hdr,
85
+ const u8 *data, size_t data_len, size_t *decrypted_len)
8886 {
8987 u8 aad[30], nonce[12], *plain;
9088 size_t aad_len, mlen;
....@@ -101,7 +99,7 @@
10199 mlen = data_len - 8 - 16;
102100
103101 os_memset(aad, 0, sizeof(aad));
104
- gcmp_aad_nonce(padapter, hdr, data, aad, &aad_len, nonce);
102
+ gcmp_aad_nonce(hdr, data, aad, &aad_len, nonce);
105103 wpa_hexdump(_MSG_EXCESSIVE_, "GCMP AAD", aad, aad_len);
106104 wpa_hexdump(_MSG_EXCESSIVE_, "GCMP nonce", nonce, sizeof(nonce));
107105
....@@ -137,9 +135,9 @@
137135 * @encrypted_len: length of the encrypted frame
138136 * including mac header, pn, payload and MIC
139137 */
140
-u8 * gcmp_encrypt(_adapter *padapter, const u8 *tk, size_t tk_len, const u8 *frame, size_t len,
141
- size_t hdrlen, const u8 *qos,
142
- const u8 *pn, int keyid, size_t *encrypted_len)
138
+u8 * gcmp_encrypt(const u8 *tk, size_t tk_len, const u8 *frame, size_t len,
139
+ size_t hdrlen, const u8 *qos,
140
+ const u8 *pn, int keyid, size_t *encrypted_len)
143141 {
144142 u8 aad[30], nonce[12], *crypt, *pos;
145143 const u8 *pdata;
....@@ -176,7 +174,7 @@
176174 }
177175
178176 os_memset(aad, 0, sizeof(aad));
179
- gcmp_aad_nonce(padapter, hdr, crypt + hdrlen, aad, &aad_len, nonce);
177
+ gcmp_aad_nonce(hdr, crypt + hdrlen, aad, &aad_len, nonce);
180178 wpa_hexdump(_MSG_EXCESSIVE_, "GCMP AAD", aad, aad_len);
181179 wpa_hexdump(_MSG_EXCESSIVE_, "GCMP nonce", nonce, sizeof(nonce));
182180