5 test_invert(unsigned key_length, const uint8_t *key,
6 unsigned length, const uint8_t *cleartext,
7 const uint8_t *ciphertext)
9 struct camellia_ctx encrypt;
10 struct camellia_ctx decrypt;
11 uint8_t *data = xalloc(length);
13 camellia_set_encrypt_key (&encrypt, key_length, key);
14 camellia_crypt (&encrypt, length, data, cleartext);
16 if (!MEMEQ(length, data, ciphertext))
18 fprintf(stderr, "test_invert: Encrypt failed:\nInput:");
19 print_hex(length, cleartext);
20 fprintf(stderr, "\nOutput: ");
21 print_hex(length, data);
22 fprintf(stderr, "\nExpected:");
23 print_hex(length, ciphertext);
24 fprintf(stderr, "\n");
28 camellia_invert_key (&decrypt, &encrypt);
29 camellia_crypt (&decrypt, length, data, data);
31 if (!MEMEQ(length, data, cleartext))
33 fprintf(stderr, "test_invert: Decrypt failed:\nInput:");
34 print_hex(length, ciphertext);
35 fprintf(stderr, "\nOutput: ");
36 print_hex(length, data);
37 fprintf(stderr, "\nExpected:");
38 print_hex(length, cleartext);
39 fprintf(stderr, "\n");
48 /* Test vectors from RFC 3713 */
50 test_cipher(&nettle_camellia128,
51 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
52 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
53 H("67 67 31 38 54 96 69 73 08 57 06 56 48 ea be 43"));
56 test_cipher(&nettle_camellia192,
57 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
58 "00 11 22 33 44 55 66 77"),
59 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
60 H("b4 99 34 01 b3 e9 96 f8 4e e5 ce e7 d7 9b 09 b9"));
63 test_cipher(&nettle_camellia256,
64 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
65 "00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff"),
66 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
67 H("9a cc 23 7d ff 16 d7 6c 20 ef 7c 91 9e 3a 75 09"));
69 /* Test camellia_invert_key with src != dst */
70 test_invert(HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
71 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
72 H("67 67 31 38 54 96 69 73 08 57 06 56 48 ea be 43"));
74 test_invert(HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"
75 "00 11 22 33 44 55 66 77"),
76 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
77 H("b4 99 34 01 b3 e9 96 f8 4e e5 ce e7 d7 9b 09 b9"));
79 test_invert(HL("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 88 99 aa bb cc dd ee ff"),
81 HL("01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10"),
82 H("9a cc 23 7d ff 16 d7 6c 20 ef 7c 91 9e 3a 75 09"));