Initial revision
[silc.git] / lib / silccrypt / tests / test_twofish.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main()
5 {
6         int i, k, l;
7         unsigned char key[256];
8         unsigned char plain[256];
9         unsigned char plain2[256];
10         unsigned char cipher[256];
11         memset(&key, 0, sizeof(key));
12         memset(&plain, 0, sizeof(plain));
13         memset(&plain2, 0, sizeof(plain2));
14         memset(&cipher, 0, sizeof(cipher));
15
16         fprintf(stderr, "\nKey:\n");
17         for (i = 0; i < (sizeof(plain) / 2); i++) {
18                 key[i] = i;
19                 key[i+1] = i+1;
20                 fprintf(stderr, "%02x%02x ", key[i], key[i+1]);
21         }
22
23         fprintf(stderr, "\nSetting key\n");
24         set_key(key, 128);
25
26         fprintf(stderr, "\nPlaintext:\n");
27         for (i = 0; i < (sizeof(plain) / 2); i++) {
28                 plain[i] = i;
29                 plain[i+1] = i+1;
30                 fprintf(stderr, "%02x%02x ", plain[i], plain[i+1]);
31         }
32
33         fprintf(stderr, "\n\nEncrypting\n");
34         fprintf(stderr, "Ciphertext:\n");
35         l = 0;
36         for (k = 0; k < 8; k++) {
37                 encrypt(&plain[l], &cipher[l]);
38                 for (i = 0; i < 16; i++) {
39                         fprintf(stderr, "%02x", cipher[l+i]);
40                         fprintf(stderr, "%02x ", cipher[l+i+1]);
41                 }
42                 l += 16;
43         }
44
45         fprintf(stderr, "\n\nDecrypting\n");
46
47         fprintf(stderr, "Decryptedtext:\n");
48         l = 0;
49         for (k = 0; k < 8; k++) {
50                 decrypt(&cipher[l], &plain2[l]);
51                 for (i = 0; i < 16; i++) {
52                         fprintf(stderr, "%02x", plain2[l+i]);
53                         fprintf(stderr, "%02x ", plain2[l+i+1]);
54                 }
55                 l += 16;
56         }
57         fprintf(stderr, "\nAll done.\n");
58
59         return 0;
60 }