2 #include "nettle-internal.h"
6 test_blowfish(const struct tstring *key,
7 const struct tstring *cleartext,
8 const struct tstring *ciphertext)
10 struct blowfish_ctx ctx;
11 uint8_t *data = xalloc(cleartext->length);
13 ASSERT (cleartext->length == ciphertext->length);
14 length = cleartext->length;
16 blowfish_set_key(&ctx, key->length, key->data);
17 blowfish_encrypt(&ctx, length, data, cleartext->data);
19 if (!MEMEQ(length, data, ciphertext->data))
21 fprintf(stderr, "Encrypt failed:\nInput:");
22 tstring_print_hex(cleartext);
23 fprintf(stderr, "\nOutput: ");
24 print_hex(length, data);
25 fprintf(stderr, "\nExpected:");
26 tstring_print_hex(ciphertext);
27 fprintf(stderr, "\n");
30 blowfish_set_key(&ctx, key->length, key->data);
31 blowfish_decrypt(&ctx, length, data, data);
33 if (!MEMEQ(length, data, cleartext->data))
35 fprintf(stderr, "Decrypt failed:\nInput:");
36 tstring_print_hex(ciphertext);
37 fprintf(stderr, "\nOutput: ");
38 print_hex(length, data);
39 fprintf(stderr, "\nExpected:");
40 tstring_print_hex(cleartext);
41 fprintf(stderr, "\n");
51 /* 208 bit key. Test from GNUPG. */
52 test_blowfish(SDATA("abcdefghijklmnopqrstuvwxyz"),
54 SHEX("32 4E D0 FE F4 13 A2 03"));