Stefan Schuermans
initial commit after making CF identify work
Stefan Schuermans commited e8658d5 at 2012-04-15 19:57:57
/* flaneth - flash and ethernet - dartboard mod
* version 0.1 date 2008-11-09
* Copyright (C) 2007-2008 Stefan Schuermans <stefan@schuermans.info>
* Copyleft: GNU public license V2 - http://www.gnu.org/copyleft/gpl.html
* a BlinkenArea project - http://www.blinkenarea.org/
*/
#include <stdint.h>
#include "xtea.h"
#define delta 0x9E3779B9
// XTEA encrypt a block of 64 bits
// - this is not block XTEA, it's the basic XTEA algorithm
static void xtea_enc_block( uint32_t key[4], uint8_t rounds, uint32_t in[2], uint32_t out[2] )
{
uint32_t y, z, sum;
y = in[0];
z = in[1];
sum = 0;
for( ; rounds > 0; rounds-- )
{
y += ((z << 4 ^ z >> 5) + z) ^ (sum + key[sum & 3]);
sum += delta;
z += ((y << 4 ^ y >> 5) + y) ^ (sum + key[sum >> 11 & 3]);
}
out[0] = y;
out[1] = z;
}
// XTEA decrypt a block of 64 bits
// - this is not block XTEA, it's the basic XTEA algorithm
static void xtea_dec_block( uint32_t key[4], uint8_t rounds, uint32_t in[2], uint32_t out[2] )
{
uint32_t y, z, sum;
y = in[0];
z = in[1];
sum = (uint32_t)delta * rounds;
for( ; rounds > 0; rounds-- )
{
z -= ((y << 4 ^ y >> 5) + y) ^ (sum + key[sum >> 11 & 3]);
sum -= delta;
y -= ((z << 4 ^ z >> 5) + z) ^ (sum + key[sum & 3]);
}
out[0] = y;
out[1] = z;
}
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX