Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / nettle / testsuite / camellia-test.c
blobb7d6eaf68e4d6e1c38de023ec962723391ad4507
1 #include "testutils.h"
2 #include "camellia.h"
4 static void
5 test_invert(const struct tstring *key,
6 const struct tstring *cleartext,
7 const struct tstring *ciphertext)
9 struct camellia_ctx encrypt;
10 struct camellia_ctx decrypt;
11 uint8_t *data;
12 unsigned length;
14 ASSERT (cleartext->length == ciphertext->length);
15 length = cleartext->length;
17 data = xalloc(length);
19 camellia_set_encrypt_key (&encrypt, key->length, key->data);
20 camellia_crypt (&encrypt, length, data, cleartext->data);
22 if (!MEMEQ(length, data, ciphertext->data))
24 tstring_print_hex(cleartext);
25 fprintf(stderr, "\nOutput: ");
26 print_hex(length, data);
27 fprintf(stderr, "\nExpected:");
28 tstring_print_hex(ciphertext);
29 fprintf(stderr, "\n");
30 FAIL();
33 camellia_invert_key (&decrypt, &encrypt);
34 camellia_crypt (&decrypt, length, data, data);
36 if (!MEMEQ(length, data, cleartext->data))
38 fprintf(stderr, "test_invert: Decrypt failed:\nInput:");
39 tstring_print_hex(ciphertext);
40 fprintf(stderr, "\nOutput: ");
41 print_hex(length, data);
42 fprintf(stderr, "\nExpected:");
43 tstring_print_hex(cleartext);
44 fprintf(stderr, "\n");
45 FAIL();
47 free (data);
50 void
51 test_main(void)
53 /* Test vectors from RFC 3713 */
54 /* 128 bit keys */
55 test_cipher(&nettle_camellia128,
56 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
57 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
58 SHEX("67 67 31 38 54 96 69 73 08 57 06 56 48 ea be 43"));
60 /* 192 bit keys */
61 test_cipher(&nettle_camellia192,
62 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
63 "00 11 22 33 44 55 66 77"),
64 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
65 SHEX("b4 99 34 01 b3 e9 96 f8 4e e5 ce e7 d7 9b 09 b9"));
67 /* 256 bit keys */
68 test_cipher(&nettle_camellia256,
69 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
70 "00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff"),
71 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
72 SHEX("9a cc 23 7d ff 16 d7 6c 20 ef 7c 91 9e 3a 75 09"));
74 /* Test camellia_invert_key with src != dst */
75 test_invert(SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
76 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
77 SHEX("67 67 31 38 54 96 69 73 08 57 06 56 48 ea be 43"));
79 test_invert(SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
80 "00 11 22 33 44 55 66 77"),
81 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
82 SHEX("b4 99 34 01 b3 e9 96 f8 4e e5 ce e7 d7 9b 09 b9"));
84 test_invert(SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
85 "00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff"),
86 SHEX("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
87 SHEX("9a cc 23 7d ff 16 d7 6c 20 ef 7c 91 9e 3a 75 09"));