Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ff23777 authored by Andres More's avatar Andres More Committed by Greg Kroah-Hartman
Browse files

staging: vt6656: aes_ccmp.c: code cleanup, cleared checkpatch findings



Resolved all warnings/errors but lines having over 80 characters.

Signed-off-by: default avatarAndres More <more.andres@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 5ae8cb95
Loading
Loading
Loading
Loading
+272 −289
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 *
 * File: aes_ccmp.c
 *
 * Purpose: AES_CCMP decryption
@@ -28,9 +27,7 @@
 * Functions:
 *      AESbGenCCMP - Parsing RX-packet
 *
 *
 * Revision History:
 *
 */

#include "device.h"
@@ -46,8 +43,7 @@
 * SBOX Table
 */

BYTE sbox_table[256] =
{
BYTE sbox_table[256] = {
	0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
	0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
	0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
@@ -155,10 +151,8 @@ void SubBytes(BYTE *in, BYTE *out)
	int i;

	for (i = 0; i < 16; i++)
    {
		out[i] = sbox_table[in[i]];
}
}

void ShiftRows(BYTE *in, BYTE *out)
{
@@ -189,7 +183,6 @@ void MixColumns(BYTE *in, BYTE *out)
	out[3] = dot3_table[in[0]] ^ in[1] ^ in[2] ^ dot2_table[in[3]];
}


void AESv128(BYTE *key, BYTE *data, BYTE *ciphertext)
{
	int  i;
@@ -201,21 +194,15 @@ BYTE abyRoundKey[16];
	for (i = 0; i < 16; i++)
		abyRoundKey[i] = key[i];

    for (round = 0; round < 11; round++)
    {
        if (round == 0)
        {
	for (round = 0; round < 11; round++) {
		if (round == 0) {
			xor_128(abyRoundKey, data, ciphertext);
			AddRoundKey(abyRoundKey, round);
        }
        else if (round == 10)
        {
		} else if (round == 10) {
			SubBytes(ciphertext, TmpdataA);
			ShiftRows(TmpdataA, TmpdataB);
			xor_128(TmpdataB, abyRoundKey, ciphertext);
        }
        else // round 1 ~ 9
        {
		} else { /* round 1 ~ 9 */
			SubBytes(ciphertext, TmpdataA);
			ShiftRows(TmpdataA, TmpdataB);
			MixColumns(&TmpdataB[0], &TmpdataA[0]);
@@ -243,6 +230,7 @@ BYTE abyRoundKey[16];
 * Return Value: MIC compare result
 *
 */

BOOL AESbGenCCMP(PBYTE pbyRxKey, PBYTE pbyFrame, WORD wFrameSize)
{
	BYTE            abyNonce[13];
@@ -259,24 +247,24 @@ PS802_11Header pMACHeader = (PS802_11Header) pbyFrame;
	PBYTE           pbyIV;
	PBYTE           pbyPayload;
	WORD            wHLen = 22;
WORD            wPayloadSize = wFrameSize - 8 - 8 - 4 - WLAN_HDR_ADDR3_LEN;//8 is IV, 8 is MIC, 4 is CRC
	/* 8 is IV, 8 is MIC, 4 is CRC */
	WORD            wPayloadSize = wFrameSize - 8 - 8 - 4 - WLAN_HDR_ADDR3_LEN;
	BOOL            bA4 = FALSE;
	BYTE            byTmp;
	WORD            wCnt;
	int             ii, jj, kk;


	pbyIV = pbyFrame + WLAN_HDR_ADDR3_LEN;
	if (WLAN_GET_FC_TODS(*(PWORD) pbyFrame) &&
	    WLAN_GET_FC_FROMDS(*(PWORD) pbyFrame)) {
		bA4 = TRUE;
         pbyIV += 6;             // 6 is 802.11 address4
		pbyIV += 6;             /* 6 is 802.11 address4 */
		wHLen += 6;
		wPayloadSize -= 6;
	}
    pbyPayload = pbyIV + 8; //IV-length
	pbyPayload = pbyIV + 8; /* IV-length */

    abyNonce[0]  = 0x00; //now is 0, if Qos here will be priority
	abyNonce[0]  = 0x00; /* now is 0, if Qos here will be priority */
	memcpy(&(abyNonce[1]), pMACHeader->abyAddr2, ETH_ALEN);
	abyNonce[7]  = pbyIV[7];
	abyNonce[8]  = pbyIV[6];
@@ -285,13 +273,13 @@ int ii,jj,kk;
	abyNonce[11] = pbyIV[1];
	abyNonce[12] = pbyIV[0];

    //MIC_IV
	/* MIC_IV */
	MIC_IV[0] = 0x59;
	memcpy(&(MIC_IV[1]), &(abyNonce[0]), 13);
	MIC_IV[14] = (BYTE)(wPayloadSize >> 8);
	MIC_IV[15] = (BYTE)(wPayloadSize & 0xff);

    //MIC_HDR1
	/* MIC_HDR1 */
	MIC_HDR1[0] = (BYTE)(wHLen >> 8);
	MIC_HDR1[1] = (BYTE)(wHLen & 0xff);
	byTmp = (BYTE)(pMACHeader->wFrameCtl & 0xff);
@@ -302,7 +290,7 @@ int ii,jj,kk;
	memcpy(&(MIC_HDR1[4]), pMACHeader->abyAddr1, ETH_ALEN);
	memcpy(&(MIC_HDR1[10]), pMACHeader->abyAddr2, ETH_ALEN);

    //MIC_HDR2
	/* MIC_HDR2 */
	memcpy(&(MIC_HDR2[0]), pMACHeader->abyAddr3, ETH_ALEN);
	byTmp = (BYTE)(pMACHeader->wSeqCtl & 0xff);
	MIC_HDR2[6] = byTmp & 0x0f;
@@ -321,15 +309,15 @@ int ii,jj,kk;
	MIC_HDR2[14] = 0x00;
	MIC_HDR2[15] = 0x00;

    //CCMP
	/* CCMP */
	AESv128(pbyRxKey, MIC_IV, abyMIC);
    for ( kk=0; kk<16; kk++ ) {
	for (kk = 0; kk < 16; kk++)
		abyTmp[kk] = MIC_HDR1[kk] ^ abyMIC[kk];
    }

	AESv128(pbyRxKey, abyTmp, abyMIC);
    for ( kk=0; kk<16; kk++ ) {
	for (kk = 0; kk < 16; kk++)
		abyTmp[kk] = MIC_HDR2[kk] ^ abyMIC[kk];
    }

	AESv128(pbyRxKey, abyTmp, abyMIC);

	wCnt = 1;
@@ -343,61 +331,56 @@ int ii,jj,kk;

		AESv128(pbyRxKey, abyCTRPLD, abyTmp);

        for ( kk=0; kk<16; kk++ ) {
		for (kk = 0; kk < 16; kk++)
			abyPlainText[kk] = abyTmp[kk] ^ pbyPayload[kk];
        }
        for ( kk=0; kk<16; kk++ ) {

		for (kk = 0; kk < 16; kk++)
			abyTmp[kk] = abyMIC[kk] ^ abyPlainText[kk];
        }

		AESv128(pbyRxKey, abyTmp, abyMIC);

		memcpy(pbyPayload, abyPlainText, 16);
		wCnt++;
		pbyPayload += 16;
    } //for wPayloadSize
	} /* for wPayloadSize */

    //last payload
	/* last payload */
	memcpy(&(abyLastCipher[0]), pbyPayload, jj);
    for ( ii=jj; ii<16; ii++ ) {
	for (ii = jj; ii < 16; ii++)
		abyLastCipher[ii] = 0x00;
    }

	abyCTRPLD[14] = (BYTE) (wCnt >> 8);
	abyCTRPLD[15] = (BYTE) (wCnt & 0xff);

	AESv128(pbyRxKey, abyCTRPLD, abyTmp);
    for ( kk=0; kk<16; kk++ ) {
	for (kk = 0; kk < 16; kk++)
		abyPlainText[kk] = abyTmp[kk] ^ abyLastCipher[kk];
    }

	memcpy(pbyPayload, abyPlainText, jj);
	pbyPayload += jj;

    //for MIC calculation
    for ( ii=jj; ii<16; ii++ ) {
	/* for MIC calculation */
	for (ii = jj; ii < 16; ii++)
		abyPlainText[ii] = 0x00;
    }
    for ( kk=0; kk<16; kk++ ) {
	for (kk = 0; kk < 16; kk++)
		abyTmp[kk] = abyMIC[kk] ^ abyPlainText[kk];
    }

	AESv128(pbyRxKey, abyTmp, abyMIC);

    //=>above is the calculate MIC
    //--------------------------------------------
	/* => above is the calculated MIC */

	wCnt = 0;
	abyCTRPLD[14] = (BYTE) (wCnt >> 8);
	abyCTRPLD[15] = (BYTE) (wCnt & 0xff);
	AESv128(pbyRxKey, abyCTRPLD, abyTmp);
    for ( kk=0; kk<8; kk++ ) {

	for (kk = 0; kk < 8; kk++)
		abyTmp[kk] = abyTmp[kk] ^ pbyPayload[kk];
    }
    //=>above is the dec-MIC from packet
    //--------------------------------------------

    if (  !memcmp(abyMIC,abyTmp,8) ) {
	/* => above is the packet dec-MIC */

	if (!memcmp(abyMIC, abyTmp, 8))
		return TRUE;
    } else {
	else
		return FALSE;
}

}