Revert "Merge branch 'upstream' into tizen"
[platform/upstream/nettle.git] / testsuite / blowfish-test.c
1 #include "testutils.h"
2 #include "nettle-internal.h"
3 #include "blowfish.h"
4
5 void
6 test_main(void)
7 {
8   /* 208 bit key. Test from GNUPG. */
9   test_cipher(&nettle_blowfish128,
10               SDATA("abcdefghijklmnopqrstuvwxyz"),
11               SDATA("BLOWFISH"),
12               SHEX("32 4E D0 FE F4 13 A2 03"));
13 }
14 /* FIXME: All values below are bogus. */
15 #if 0
16
17 /* 128 bit keys */
18 H(msg, "506812A45F08C889 B97F5980038B8359");
19
20 blowfish_set_key(&ctx, 16,  H("0001020305060708 0A0B0C0D0F101112"));
21 blowfish_encrypt(&ctx, BLOWFISH_BLOCK_SIZE, cipher, msg);
22 if (!MEMEQ(16, cipher, H("D8F532538289EF7D 06B506A4FD5BE9C9")))
23   FAIL;
24
25 blowfish_decrypt(&ctx, BLOWFISH_BLOCK_SIZE, clear, cipher);
26 if (!MEMEQ(16, msg, clear))
27   FAIL;
28
29 H(msg, "5C6D71CA30DE8B8B 00549984D2EC7D4B");
30
31 blowfish_set_key(&ctx, 16,  H("14151617191A1B1C 1E1F202123242526"));
32 blowfish_encrypt(&ctx, BLOWFISH_BLOCK_SIZE, cipher, msg);
33 if (!MEMEQ(16, cipher, H("59AB30F4D4EE6E4F F9907EF65B1FB68C")))
34   FAIL;
35
36 blowfish_decrypt(&ctx, BLOWFISH_BLOCK_SIZE, clear, cipher);
37 if (!MEMEQ(16, msg, clear))
38   FAIL;
39
40 H(msg, "53F3F4C64F8616E4 E7C56199F48F21F6");
41
42 blowfish_set_key(&ctx, 16,  H("28292A2B2D2E2F30 323334353738393A"));
43 blowfish_encrypt(&ctx, BLOWFISH_BLOCK_SIZE, cipher, msg);
44 if (!MEMEQ(16, cipher, H("BF1ED2FCB2AF3FD4 1443B56D85025CB1")))
45   FAIL;
46
47 blowfish_decrypt(&ctx, BLOWFISH_BLOCK_SIZE, clear, cipher);
48 if (!MEMEQ(16, msg, clear))
49   FAIL;
50
51 H(msg, "F5F4F7F684878689 A6A7A0A1D2CDCCCF");
52
53 blowfish_set_key(&ctx, 16,  H("A0A1A2A3A5A6A7A8 AAABACADAFB0B1B2"));
54 blowfish_encrypt(&ctx, BLOWFISH_BLOCK_SIZE, cipher, msg);
55 if (!MEMEQ(16, cipher, H("CE52AF650D088CA5 59425223F4D32694")))
56   FAIL;
57
58 blowfish_decrypt(&ctx, BLOWFISH_BLOCK_SIZE, clear, cipher);
59 if (!MEMEQ(16, msg, clear))
60   FAIL;
61
62 /* 192 bit keys */
63 H(msg, "2D33EEF2C0430A8A 9EBF45E809C40BB6");
64
65 blowfish_set_key(&ctx, 24,  H("0001020305060708 0A0B0C0D0F101112"
66                          "14151617191A1B1C"));
67 blowfish_encrypt(&ctx, BLOWFISH_BLOCK_SIZE, cipher, msg);
68 if (!MEMEQ(16, cipher, H("DFF4945E0336DF4C 1C56BC700EFF837F")))
69   FAIL;
70
71 blowfish_decrypt(&ctx, BLOWFISH_BLOCK_SIZE, clear, cipher);
72 if (!MEMEQ(16, msg, clear))
73   FAIL;
74
75 /* 256 bit keys */
76 H(msg, "834EADFCCAC7E1B30664B1ABA44815AB");
77
78 blowfish_set_key(&ctx, 32,  H("0001020305060708 0A0B0C0D0F101112"
79                          "14151617191A1B1C 1E1F202123242526"));
80 blowfish_encrypt(&ctx, BLOWFISH_BLOCK_SIZE, cipher, msg);
81 if (!MEMEQ(16, cipher, H("1946DABF6A03A2A2 C3D0B05080AED6FC")))
82   FAIL;
83
84 blowfish_decrypt(&ctx, BLOWFISH_BLOCK_SIZE, clear, cipher);
85 if (!MEMEQ(16, msg, clear))
86   FAIL;
87 #endif