OpenCores
URL https://opencores.org/ocsvn/rtea/rtea/trunk

Subversion Repositories rtea

[/] [rtea/] [trunk/] [soft/] [rtea.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 strijar
#define KEY     (256/32)
2
#define ROUND   ((32 + KEY*4) - 1)
3
 
4
unsigned int    a, b, c;
5
 
6
unsigned int    key[KEY] = {
7
    0xddeeff00, 0x99aabbcc,
8
    0x55667788, 0x11223344
9
};
10
 
11
void crypt() {
12
    char r;
13
 
14
    for (r=0; r <= ROUND; r++) {
15
        c = b;
16
        b = b + (a + ((b<<6)^(b>>8)) + key[r % KEY] + r);
17
        a = c;
18
        printf("%02i %08lX %08lX\n", r, a, b);
19
    }
20
}
21
 
22
void decrypt() {
23
    char r;
24
 
25
    for (r = ROUND; r>=0; r--) {
26
        c = a;
27
        a = b - (a + ((a<<6)^(a>>8)) + key[r % KEY] + r);
28
        b = c;
29
        printf("%02i %08lX %08lX\n", r, a, b);
30
    }
31
}
32
 
33
int main() {
34
 
35
    memset(key, 0 , sizeof(key));
36
 
37
    a = 0x12345678;
38
    b = 0x11112222;
39
 
40
    printf(">>>\n");
41
    crypt();
42
 
43
    a = 0x12345678;
44
    b = 0x11112222;
45
 
46
    printf("<<<\n");
47
    decrypt();
48
 
49
    return 0;
50
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.