diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-26 20:42:58 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-06-26 20:42:58 +0000 | 
| commit | c5552ad03973839d83d32d7108f20c00f192633b (patch) | |
| tree | de32e4def600e56134cd085a7447cb6620542078 /target/linux/generic-2.6/files/crypto/ocf/kirkwood/cesa/AES/mvAesApi.c | |
| parent | 7ec88f88f4c65a22b3b7e32ef87cb42dcb32a6fb (diff) | |
rename target/linux/generic-2.6 to generic
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21952 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic-2.6/files/crypto/ocf/kirkwood/cesa/AES/mvAesApi.c')
| -rw-r--r-- | target/linux/generic-2.6/files/crypto/ocf/kirkwood/cesa/AES/mvAesApi.c | 312 | 
1 files changed, 0 insertions, 312 deletions
diff --git a/target/linux/generic-2.6/files/crypto/ocf/kirkwood/cesa/AES/mvAesApi.c b/target/linux/generic-2.6/files/crypto/ocf/kirkwood/cesa/AES/mvAesApi.c deleted file mode 100644 index b432dc6e6..000000000 --- a/target/linux/generic-2.6/files/crypto/ocf/kirkwood/cesa/AES/mvAesApi.c +++ /dev/null @@ -1,312 +0,0 @@ -/* rijndael-api-ref.c   v2.1   April 2000 - * Reference ANSI C code - * authors: v2.0 Paulo Barreto - *               Vincent Rijmen, K.U.Leuven - *          v2.1 Vincent Rijmen, K.U.Leuven - * - * This code is placed in the public domain. - */ -#include "mvOs.h" - -#include "mvAes.h" -#include "mvAesAlg.h" - - -/*  Defines: -	Add any additional defines you need -*/ - -#define     MODE_ECB        1    /*  Are we ciphering in ECB mode?   */ -#define     MODE_CBC        2    /*  Are we ciphering in CBC mode?   */ -#define     MODE_CFB1       3    /*  Are we ciphering in 1-bit CFB mode? */ - - -int     aesMakeKey(MV_U8 *expandedKey, MV_U8 *keyMaterial, int keyLen, int blockLen) -{ -    MV_U8   W[MAXROUNDS+1][4][MAXBC]; -	MV_U8   k[4][MAXKC]; -    MV_U8   j; -	int     i, rounds, KC; -	 -	if (expandedKey == NULL)  -    { -		return AES_BAD_KEY_INSTANCE; -	} - -	if (!((keyLen == 128) || (keyLen == 192) || (keyLen == 256)))  -    {  -		return AES_BAD_KEY_MAT; -	} - -	if (keyMaterial == NULL)  -    { -		return AES_BAD_KEY_MAT; -	} - -	/* initialize key schedule: */  - 	for(i=0; i<keyLen/8; i++)  -    { -		j = keyMaterial[i]; -		k[i % 4][i / 4] = j;  -	}	 -	 -	rijndaelKeySched (k, keyLen, blockLen, W); -#ifdef MV_AES_DEBUG -    { -        MV_U8*  pW = &W[0][0][0]; -        int     x; - -        mvOsPrintf("Expended Key: size = %d\n", sizeof(W)); -        for(i=0; i<sizeof(W); i++) -        { -            mvOsPrintf("%02x ", pW[i]); -        } -        for(i=0; i<MAXROUNDS+1; i++) -        { -            mvOsPrintf("\n Round #%02d: ", i); -            for(x=0; x<MAXBC; x++) -            { -                mvOsPrintf("%02x%02x%02x%02x ",  -                    W[i][0][x], W[i][1][x], W[i][2][x], W[i][3][x]); -            } -            mvOsPrintf("\n"); -        } -    } -#endif /* MV_AES_DEBUG */ -  	switch (keyLen)  -    { -	    case 128:  -            rounds = 10; -            KC = 4;  -            break; -	    case 192:  -            rounds = 12; -            KC = 6;  -            break; -	    case 256:  -            rounds = 14; -            KC = 8;  -            break; -	    default :  -            return (-1); -	} - -    for(i=0; i<MAXBC; i++) -    { -        for(j=0; j<4; j++) -        { -            expandedKey[i*4+j] = W[rounds][j][i]; -        } -    } -    for(; i<KC; i++) -    { -        for(j=0; j<4; j++) -        { -            expandedKey[i*4+j] = W[rounds-1][j][i+MAXBC-KC]; -        } -    } - -	 -	return 0; -} - -int     aesBlockEncrypt128(MV_U8 mode, MV_U8 *IV, MV_U8 *expandedKey, int  keyLen,  -                        MV_U32 *plain, int numBlocks, MV_U32 *cipher) -{ -	int     i, j, t; -	MV_U8   block[4][MAXBC]; -    int     rounds; -    char    *input, *outBuffer; - -    input = (char*)plain; -    outBuffer = (char*)cipher; - -        /* check parameter consistency: */ -    if( (expandedKey == NULL) || ((keyLen != 128) && (keyLen != 192) && (keyLen != 256)))  -    { -        return AES_BAD_KEY_MAT; -    } -    if ((mode != MODE_ECB && mode != MODE_CBC)) -    { -        return AES_BAD_CIPHER_STATE; -    } - -	switch (keyLen)  -    { -	    case 128: rounds = 10; break; -	    case 192: rounds = 12; break; -	    case 256: rounds = 14; break; -	    default : return (-3); /* this cannot happen */ -	} - -	 -	switch (mode)  -    { -	    case MODE_ECB:  -		    for (i = 0; i < numBlocks; i++)  -            { -			    for (j = 0; j < 4; j++)  -                { -				    for(t = 0; t < 4; t++) -				        /* parse input stream into rectangular array */ -					    block[t][j] = input[16*i+4*j+t] & 0xFF; -			    }                            -			    rijndaelEncrypt128(block, (MV_U8 (*)[4][MAXBC])expandedKey, rounds); -			    for (j = 0; j < 4; j++)  -                {            -				    /* parse rectangular array into output ciphertext bytes */ -				    for(t = 0; t < 4; t++) -                        outBuffer[16*i+4*j+t] = (MV_U8) block[t][j]; - -			    } -		    } -		    break; -		 -	    case MODE_CBC: -		    for (j = 0; j < 4; j++)  -            { -			    for(t = 0; t < 4; t++) -			    /* parse initial value into rectangular array */ -					block[t][j] = IV[t+4*j] & 0xFF; -			} -		    for (i = 0; i < numBlocks; i++)  -            { -			    for (j = 0; j < 4; j++)  -                { -				    for(t = 0; t < 4; t++) -				        /* parse input stream into rectangular array and exor with  -				        IV or the previous ciphertext */ -					    block[t][j] ^= input[16*i+4*j+t] & 0xFF; -			    } -			    rijndaelEncrypt128(block, (MV_U8 (*)[4][MAXBC])expandedKey, rounds); -			    for (j = 0; j < 4; j++)  -                { -				    /* parse rectangular array into output ciphertext bytes */ -				    for(t = 0; t < 4; t++) -					    outBuffer[16*i+4*j+t] = (MV_U8) block[t][j]; -			    } -		    } -		    break; -	 -	    default: return AES_BAD_CIPHER_STATE; -	} -	 -	return 0; -} - -int     aesBlockDecrypt128(MV_U8 mode, MV_U8 *IV, MV_U8 *expandedKey, int  keyLen,  -                            MV_U32 *srcData, int numBlocks, MV_U32 *dstData) -{ -	int     i, j, t; -	MV_U8   block[4][MAXBC]; -    MV_U8   iv[4][MAXBC];     -    int     rounds; -    char    *input, *outBuffer; - -    input = (char*)srcData; -    outBuffer = (char*)dstData; - -    if (expandedKey == NULL)  -    { -		return AES_BAD_KEY_MAT; -	} - -    /* check parameter consistency: */ -    if (keyLen != 128 && keyLen != 192 && keyLen != 256) -    { -        return AES_BAD_KEY_MAT; -    } -    if ((mode != MODE_ECB && mode != MODE_CBC))  -    { -        return AES_BAD_CIPHER_STATE; -    } - -	switch (keyLen)  -    { -	    case 128: rounds = 10; break; -	    case 192: rounds = 12; break; -	    case 256: rounds = 14; break; -	    default : return (-3); /* this cannot happen */ -	} - -	 -	switch (mode)  -    { -	    case MODE_ECB:  -		    for (i = 0; i < numBlocks; i++)  -            { -			    for (j = 0; j < 4; j++)  -                { -				    for(t = 0; t < 4; t++) -                    { -				        /* parse input stream into rectangular array */ -					    block[t][j] = input[16*i+4*j+t] & 0xFF; -                    } -			    } -			    rijndaelDecrypt128(block, (MV_U8 (*)[4][MAXBC])expandedKey, rounds); -			    for (j = 0; j < 4; j++)  -                { -				    /* parse rectangular array into output ciphertext bytes */ -				    for(t = 0; t < 4; t++) -					    outBuffer[16*i+4*j+t] = (MV_U8) block[t][j]; -			    } -		    } -		    break; -		 -	    case MODE_CBC: -		    /* first block */ -		    for (j = 0; j < 4; j++)  -            { -			    for(t = 0; t < 4; t++) -                { -			        /* parse input stream into rectangular array */ -				    block[t][j] = input[4*j+t] & 0xFF; -                    iv[t][j] = block[t][j]; -                } -		    } -		    rijndaelDecrypt128(block, (MV_U8 (*)[4][MAXBC])expandedKey, rounds); -		 -		    for (j = 0; j < 4; j++)  -            { -			    /* exor the IV and parse rectangular array into output ciphertext bytes */ -			    for(t = 0; t < 4; t++) -                { -				    outBuffer[4*j+t] = (MV_U8) (block[t][j] ^ IV[t+4*j]); -                    IV[t+4*j] = iv[t][j]; -                } -		    } -		 -		    /* next blocks */ -		    for (i = 1; i < numBlocks; i++)  -            { -			    for (j = 0; j < 4; j++)  -                { -				    for(t = 0; t < 4; t++) -                    { -				        /* parse input stream into rectangular array */ -                        iv[t][j] = input[16*i+4*j+t] & 0xFF; -					    block[t][j] = iv[t][j]; -                    } -			    } -			    rijndaelDecrypt128(block, (MV_U8 (*)[4][MAXBC])expandedKey, rounds); -			 -			    for (j = 0; j < 4; j++)  -                { -				    /* exor previous ciphertext block and parse rectangular array  -				       into output ciphertext bytes */ -				    for(t = 0; t < 4; t++) -                    { -					    outBuffer[16*i+4*j+t] = (MV_U8) (block[t][j] ^ IV[t+4*j]); -                        IV[t+4*j] = iv[t][j]; -                    } -			    } -		    } -		    break; -	 -	    default: return AES_BAD_CIPHER_STATE; -	} -	 -	return 0; -} - -  | 
