19char xor_encrypt(
char ch,
long key)
21 return (
char)(ch^key);
35void encrypt (uint32_t* v, uint32_t* k) {
36 uint32_t v0=v[0], v1=v[1], sum=0, i;
37 uint32_t delta=0x9e3779b9;
38 uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];
39 for (i=0; i < 32; i++) {
41 v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
42 v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
47void encryptBlock(uint8_t * data, uint32_t * len, uint32_t * key)
53 data32 = (uint32_t *) data;
56 blocks = (((*len) + 7) / 8) + 1;
59 data32[(blocks*2) - 1] = *len;
64 for(i = 0; i< blocks; i++)
66 encrypt(&data32[i*2], key);