staging: rtl8723bs: rtw_security cleanups
cover staging: rtl8723bs: rtw_security cleanups
This series contains some cleanups to the file rtw_security.c. The patches have been compile-tested only due to lack of hardware.
Michael Straube (2):
staging: rtl8723bs: use crypto_xor_cpy
staging: rtl8723bs: remove unnecessary forward declarations
drivers/staging/rtl8723bs/core/rtw_security.c | 76 +++++-------------- 1 file changed, 17 insertions(+), 59 deletions(-)
Signature · 1 line
2.50.1
PATCH 1/2 staging: rtl8723bs: use crypto_xor_cpy
Use the in-kernel function crypto_xor_cpy instead of the custom function bitwise_xor, as using in-kernel functions is preferred over custom implementations.
Signed-off-by Michael Straube <[email protected]>
--- drivers/staging/rtl8723bs/core/rtw_security.c | 46 +++++++------------ 1 file changed, 17 insertions(+), 29 deletions(-)
drivers/staging/rtl8723bs/core/rtw_security.c +17 -29
@@ -7,6 +7,7 @@#include <linux/crc32.h> #include <drv_types.h> #include <crypto/aes.h> +#include <crypto/utils.h> static const char *const _security_type_str[] = {"N/A" ,
@@ -641,7 +642,6 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe)/**** Function Prototypes ****/ /*****************************/ -static void bitwise_xor (u8 *ina,u8 *inb,u8 *out); static void construct_mic_iv(u8 *mic_header1, signed int qc_exists, signed int a4_exists,
@@ -849,18 +849,6 @@ static void construct_ctr_preload(u8 *ctr_preload, ctr_preload[15 ] = (unsigned char ) (c %256 ); } -/************************************/ -/* bitwise_xor() */ -/* A 128 bit, bitwise exclusive or */ -/************************************/ -static void bitwise_xor (u8 *ina,u8 *inb,u8 *out) -{ -signed int i; - -for (i =0 ; i <16 ; i++) - out[i] = ina[i] ^ inb[i]; -} -static signed int aes_cipher (u8 *key,uint hdrlen,u8 *pframe,uint plen) {
@@ -941,13 +929,13 @@ static signed int aes_cipher(u8 *key, uint hdrlen,/* Calculate MIC */ aes128k128d (key, mic_iv, aes_out); -bitwise_xor (aes_out, mic_header1, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, mic_header1,16 );aes128k128d (key, chain_buffer, aes_out); -bitwise_xor (aes_out, mic_header2, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, mic_header2,16 );aes128k128d (key, chain_buffer, aes_out);for (i =0 ; i < num_blocks; i++) { -bitwise_xor (aes_out, &pframe[payload_index], chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, &pframe[payload_index],16 ); payload_index +=16 ;aes128k128d (key, chain_buffer, aes_out);
@@ -960,7 +948,7 @@ static signed int aes_cipher(u8 *key, uint hdrlen,for (j =0 ; j < payload_remainder; j++) padded_buffer[j] = pframe[payload_index++]; -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );aes128k128d (key, chain_buffer, aes_out); }
@@ -977,7 +965,7 @@ static signed int aes_cipher(u8 *key, uint hdrlen, pn_vector, i+1, frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */ aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, &pframe[payload_index], chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, &pframe[payload_index],16 );for (j =0 ; j <16 ; j++) pframe[payload_index++] = chain_buffer[j]; }
@@ -995,7 +983,7 @@ static signed int aes_cipher(u8 *key, uint hdrlen, padded_buffer[j] = pframe[payload_index+j];aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );for (j =0 ; j < payload_remainder; j++) pframe[payload_index++] = chain_buffer[j]; }
@@ -1011,7 +999,7 @@ static signed int aes_cipher(u8 *key, uint hdrlen, padded_buffer[j] = pframe[j+hdrlen+8 +plen];aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );for (j =0 ; j <8 ; j++) pframe[payload_index++] = chain_buffer[j];
@@ -1137,7 +1125,7 @@ static signed int aes_decipher(u8 *key, uint hdrlen, frtype); /* add for CONFIG_IEEE80211W, none 11w also can use */aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, &pframe[payload_index], chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, &pframe[payload_index],16 );for (j =0 ; j <16 ; j++) pframe[payload_index++] = chain_buffer[j];
@@ -1156,7 +1144,7 @@ static signed int aes_decipher(u8 *key, uint hdrlen, padded_buffer[j] = pframe[payload_index+j];aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );for (j =0 ; j < payload_remainder; j++) pframe[payload_index++] = chain_buffer[j]; }
@@ -1187,13 +1175,13 @@ static signed int aes_decipher(u8 *key, uint hdrlen,/* Calculate MIC */ aes128k128d (key, mic_iv, aes_out); -bitwise_xor (aes_out, mic_header1, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, mic_header1,16 );aes128k128d (key, chain_buffer, aes_out); -bitwise_xor (aes_out, mic_header2, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, mic_header2,16 );aes128k128d (key, chain_buffer, aes_out);for (i =0 ; i < num_blocks; i++) { -bitwise_xor (aes_out, &message[payload_index], chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, &message[payload_index],16 ); payload_index +=16 ;aes128k128d (key, chain_buffer, aes_out);
@@ -1206,7 +1194,7 @@ static signed int aes_decipher(u8 *key, uint hdrlen,for (j =0 ; j < payload_remainder; j++) padded_buffer[j] = message[payload_index++]; -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );aes128k128d (key, chain_buffer, aes_out); }
@@ -1223,7 +1211,7 @@ static signed int aes_decipher(u8 *key, uint hdrlen, frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */ aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, &message[payload_index], chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, &message[payload_index],16 );for (j =0 ; j <16 ; j++) message[payload_index++] = chain_buffer[j]; }
@@ -1241,7 +1229,7 @@ static signed int aes_decipher(u8 *key, uint hdrlen, padded_buffer[j] = message[payload_index+j];aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );for (j =0 ; j < payload_remainder; j++) message[payload_index++] = chain_buffer[j]; }
@@ -1256,7 +1244,7 @@ static signed int aes_decipher(u8 *key, uint hdrlen, padded_buffer[j] = message[j+hdrlen+8 +plen-8 ];aes128k128d (key, ctr_preload, aes_out); -bitwise_xor (aes_out, padded_buffer, chain_buffer); +crypto_xor_cpy (chain_buffer, aes_out, padded_buffer,16 );for (j =0 ; j <8 ; j++) message[payload_index++] = chain_buffer[j];
Signature · 1 line
2.50.1
PATCH 2/2 staging: rtl8723bs: remove unnecessary forward declarations
In reply to Michael StraubeRemove unnecessary forward declarations of static functions to improve readability.
Signed-off-by Michael Straube <[email protected]>
--- drivers/staging/rtl8723bs/core/rtw_security.c | 30 ------------------- 1 file changed, 30 deletions(-)
drivers/staging/rtl8723bs/core/rtw_security.c +0 -30
@@ -638,36 +638,6 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 *precvframe)#define MAX_MSG_SIZE 2048 -/*****************************/ -/**** Function Prototypes ****/ -/*****************************/ - -static void construct_mic_iv (u8 *mic_header1, -signed int qc_exists, -signed int a4_exists, -u8 *mpdu, -uint payload_length, -u8 *pn_vector, -uint frtype);/* add for CONFIG_IEEE80211W, none 11w also can use */ -static void construct_mic_header1 (u8 *mic_header1, -signed int header_length, -u8 *mpdu, -uint frtype);/* for CONFIG_IEEE80211W, none 11w also can use */ -static void construct_mic_header2 (u8 *mic_header2, -u8 *mpdu, -signed int a4_exists, -signed int qc_exists); -static void construct_ctr_preload (u8 *ctr_preload, -signed int a4_exists, -signed int qc_exists, -u8 *mpdu, -u8 *pn_vector, -signed int c, -uint frtype);/* for CONFIG_IEEE80211W, none 11w also can use */ - -static void aes128k128d (u8 *key,u8 *data,u8 *ciphertext); - -/****************************************/ /* aes128k128d() */ /* Performs a 128 bit AES encrypt with */
Signature · 1 line
2.50.1