Block cipher encryption/decryption algorithm.
More...
Detailed Description
Files: xtea.h & xtea.c
- See also:
- http://en.wikipedia.org/wiki/XTEA
Function Documentation
| void xtea_init |
( |
const u32_t |
key[4] |
) |
|
- Parameters:
-
Definition at line 64 of file xtea.c.
00065 {
00066 u8_t i;
00067
00068 for(i=0;i<4;i++)
00069 {
00070 xtea_key[i] = key[i];
00071 }
00072 }
| void xtea_encrypt |
( |
u32_t |
data[2] |
) |
|
- Parameters:
-
Definition at line 74 of file xtea.c.
00075 {
00076 u8_t i;
00077
00078 u32_t d0 = data[0];
00079 u32_t d1 = data[1];
00080 u32_t sum = 0;
00081
00082 for (i=XTEA_NUMBER_OF_ROUNDS; i != 0; i--)
00083 {
00084 d0 += (((d1 << 4) ^ (d1 >> 5)) + d1) ^ (sum + xtea_key[sum & 3]);
00085 sum += XTEA_DELTA;
00086 d1 += (((d0 << 4) ^ (d0 >> 5)) + d0) ^ (sum + xtea_key[(sum>>11) & 3]);
00087 }
00088 data[0] = d0;
00089 data[1] = d1;
00090 }
| void xtea_decrypt |
( |
u32_t |
data[2] |
) |
|
- Parameters:
-
Definition at line 92 of file xtea.c.
00093 {
00094 u8_t i;
00095
00096 u32_t d0 = data[0];
00097 u32_t d1 = data[1];
00098 u32_t sum = XTEA_DELTA*XTEA_NUMBER_OF_ROUNDS;
00099
00100 for (i=XTEA_NUMBER_OF_ROUNDS; i != 0; i--)
00101 {
00102 d1 -= (((d0 << 4) ^ (d0 >> 5)) + d0) ^ (sum + xtea_key[(sum>>11) & 3]);
00103 sum -= XTEA_DELTA;
00104 d0 -= (((d1 << 4) ^ (d1 >> 5)) + d1) ^ (sum + xtea_key[sum & 3]);
00105 }
00106 data[0] = d0;
00107 data[1] = d1;
00108 }