updates.
authorPekka Riikonen <priikone@silcnet.org>
Tue, 10 Apr 2001 22:20:41 +0000 (22:20 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 10 Apr 2001 22:20:41 +0000 (22:20 +0000)
lib/silccrypt/tests/inst_twofish
lib/silccrypt/tests/test_twofish.c

index 9837a5da69b81b7c35ab0818351dc6faea9b70fc..5e035349271832d41b4d1944a913242453bcd51b 100644 (file)
@@ -1,7 +1,7 @@
 gcc -I.. \
--I../../../includes -I../../silccore \
--I../.. -I../../silccore -I../../silcmath \
--I../../silcmath/gmp-2.0.2 -I../../silcske -I../../silcsim \
+-I../../../includes -I../../silccore -I../../trq -I../../silcske \
+-I../.. -I../../silccore -I../../silcmath -I../../silcutil \
+-I../../silcmath/gmp -I../../silcske -I../../silcsim \
 -Wall -finline-functions \
 -o test_twofish test_twofish.c -L../.. -lsilc
 
index 4467e0e5a7dc9813c6c6bf4c43e1ffd17f61e67a..137f91727d616c5bd0b5cb725a75fc0cc045b912 100644 (file)
@@ -1,60 +1,78 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include "silcincludes.h"
+
+#include "twofish.h"
 
 int main()
 {
-       int i, k, l;
+       int i;
        unsigned char key[256];
        unsigned char plain[256];
        unsigned char plain2[256];
        unsigned char cipher[256];
+       unsigned char iv[256];
+       void *context;
+
        memset(&key, 0, sizeof(key));
        memset(&plain, 0, sizeof(plain));
        memset(&plain2, 0, sizeof(plain2));
        memset(&cipher, 0, sizeof(cipher));
+       memset(&iv, 0, sizeof(iv));
+
+       context = malloc(silc_twofish_context_len());
 
        fprintf(stderr, "\nKey:\n");
-       for (i = 0; i < (sizeof(plain) / 2); i++) {
-               key[i] = i;
-               key[i+1] = i+1;
+       for (i = 0; i < (sizeof(key) / 2); i += 2) {
                fprintf(stderr, "%02x%02x ", key[i], key[i+1]);
        }
 
        fprintf(stderr, "\nSetting key\n");
-       set_key(key, 128);
+       silc_twofish_set_key(context, key, 256);
 
        fprintf(stderr, "\nPlaintext:\n");
-       for (i = 0; i < (sizeof(plain) / 2); i++) {
+       for (i = 0; i < (sizeof(plain) / 2); i += 2) {
                plain[i] = i;
                plain[i+1] = i+1;
                fprintf(stderr, "%02x%02x ", plain[i], plain[i+1]);
        }
 
+       fprintf(stderr, "IV:\n");
+       for (i = 0; i < (sizeof(iv)/2); i += 2) {
+               fprintf(stderr, "%02x", iv[i]);
+               fprintf(stderr, "%02x ", iv[i+1]);
+       }
+
        fprintf(stderr, "\n\nEncrypting\n");
+       silc_twofish_encrypt_cbc(context, plain, cipher, 256, iv);
+
        fprintf(stderr, "Ciphertext:\n");
-       l = 0;
-       for (k = 0; k < 8; k++) {
-               encrypt(&plain[l], &cipher[l]);
-               for (i = 0; i < 16; i++) {
-                       fprintf(stderr, "%02x", cipher[l+i]);
-                       fprintf(stderr, "%02x ", cipher[l+i+1]);
-               }
-               l += 16;
+       for (i = 0; i < (sizeof(cipher)/2); i += 2) {
+               fprintf(stderr, "%02x", cipher[i]);
+               fprintf(stderr, "%02x ", cipher[i+1]);
+       }
+
+       fprintf(stderr, "IV:\n");
+       for (i = 0; i < (sizeof(iv)/2); i += 2) {
+               fprintf(stderr, "%02x", iv[i]);
+               fprintf(stderr, "%02x ", iv[i+1]);
        }
 
        fprintf(stderr, "\n\nDecrypting\n");
+       silc_twofish_decrypt_cbc(context, cipher, plain2, 256, iv);
+
+       fprintf(stderr, "IV:\n");
+       for (i = 0; i < (sizeof(iv)/2); i += 2) {
+               fprintf(stderr, "%02x", iv[i]);
+               fprintf(stderr, "%02x ", iv[i+1]);
+       }
 
        fprintf(stderr, "Decryptedtext:\n");
-       l = 0;
-       for (k = 0; k < 8; k++) {
-               decrypt(&cipher[l], &plain2[l]);
-               for (i = 0; i < 16; i++) {
-                       fprintf(stderr, "%02x", plain2[l+i]);
-                       fprintf(stderr, "%02x ", plain2[l+i+1]);
-               }
-               l += 16;
+       for (i = 0; i < (sizeof(plain2)/2); i += 2) {
+               fprintf(stderr, "%02x", plain2[i]);
+               fprintf(stderr, "%02x ", plain2[i+1]);
        }
-       fprintf(stderr, "\nAll done.\n");
+       fprintf(stderr, "\nDone\n");
 
        return 0;
 }