Mercurial > dropbear
comparison libtomcrypt/src/modes/f8/f8_test_mode.c @ 1511:5916af64acd4 fuzz
merge from main
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 17 Feb 2018 19:29:51 +0800 |
parents | 6dba84798cd5 |
children |
comparison
equal
deleted
inserted
replaced
1457:32f990cc96b1 | 1511:5916af64acd4 |
---|---|
3 * LibTomCrypt is a library that provides various cryptographic | 3 * LibTomCrypt is a library that provides various cryptographic |
4 * algorithms in a highly modular and flexible manner. | 4 * algorithms in a highly modular and flexible manner. |
5 * | 5 * |
6 * The library is free for all purposes without any express | 6 * The library is free for all purposes without any express |
7 * guarantee it works. | 7 * guarantee it works. |
8 * | |
9 * Tom St Denis, [email protected], http://libtom.org | |
10 */ | 8 */ |
11 #include "tomcrypt.h" | 9 #include "tomcrypt.h" |
12 | 10 |
13 /** | 11 /** |
14 @file f8_test_mode.c | 12 @file f8_test_mode.c |
21 int f8_test_mode(void) | 19 int f8_test_mode(void) |
22 { | 20 { |
23 #ifndef LTC_TEST | 21 #ifndef LTC_TEST |
24 return CRYPT_NOP; | 22 return CRYPT_NOP; |
25 #else | 23 #else |
26 static const unsigned char key[16] = { 0x23, 0x48, 0x29, 0x00, 0x84, 0x67, 0xbe, 0x18, | 24 static const unsigned char key[16] = { 0x23, 0x48, 0x29, 0x00, 0x84, 0x67, 0xbe, 0x18, |
27 0x6c, 0x3d, 0xe1, 0x4a, 0xae, 0x72, 0xd6, 0x2c }; | 25 0x6c, 0x3d, 0xe1, 0x4a, 0xae, 0x72, 0xd6, 0x2c }; |
28 static const unsigned char salt[4] = { 0x32, 0xf2, 0x87, 0x0d }; | 26 static const unsigned char salt[4] = { 0x32, 0xf2, 0x87, 0x0d }; |
29 static const unsigned char IV[16] = { 0x00, 0x6e, 0x5c, 0xba, 0x50, 0x68, 0x1d, 0xe5, | 27 static const unsigned char IV[16] = { 0x00, 0x6e, 0x5c, 0xba, 0x50, 0x68, 0x1d, 0xe5, |
30 0x5c, 0x62, 0x15, 0x99, 0xd4, 0x62, 0x56, 0x4a }; | 28 0x5c, 0x62, 0x15, 0x99, 0xd4, 0x62, 0x56, 0x4a }; |
31 static const unsigned char pt[39] = { 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x72, 0x61, | 29 static const unsigned char pt[39] = { 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x72, 0x61, |
32 0x6e, 0x64, 0x6f, 0x6d, 0x6e, 0x65, 0x73, 0x73, | 30 0x6e, 0x64, 0x6f, 0x6d, 0x6e, 0x65, 0x73, 0x73, |
33 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, | 31 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, |
34 0x6e, 0x65, 0x78, 0x74, 0x20, 0x62, 0x65, 0x73, | 32 0x6e, 0x65, 0x78, 0x74, 0x20, 0x62, 0x65, 0x73, |
35 0x74, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67 }; | 33 0x74, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67 }; |
36 static const unsigned char ct[39] = { 0x01, 0x9c, 0xe7, 0xa2, 0x6e, 0x78, 0x54, 0x01, | 34 static const unsigned char ct[39] = { 0x01, 0x9c, 0xe7, 0xa2, 0x6e, 0x78, 0x54, 0x01, |
37 0x4a, 0x63, 0x66, 0xaa, 0x95, 0xd4, 0xee, 0xfd, | 35 0x4a, 0x63, 0x66, 0xaa, 0x95, 0xd4, 0xee, 0xfd, |
38 0x1a, 0xd4, 0x17, 0x2a, 0x14, 0xf9, 0xfa, 0xf4, | 36 0x1a, 0xd4, 0x17, 0x2a, 0x14, 0xf9, 0xfa, 0xf4, |
39 0x55, 0xb7, 0xf1, 0xd4, 0xb6, 0x2b, 0xd0, 0x8f, | 37 0x55, 0xb7, 0xf1, 0xd4, 0xb6, 0x2b, 0xd0, 0x8f, |
40 0x56, 0x2c, 0x0e, 0xef, 0x7c, 0x48, 0x02 }; | 38 0x56, 0x2c, 0x0e, 0xef, 0x7c, 0x48, 0x02 }; |
41 unsigned char buf[39]; | 39 unsigned char buf[39]; |
42 symmetric_F8 f8; | 40 symmetric_F8 f8; |
43 int err, idx; | 41 int err, idx; |
44 | 42 |
45 idx = find_cipher("aes"); | 43 idx = find_cipher("aes"); |
46 if (idx == -1) { | 44 if (idx == -1) { |
47 idx = find_cipher("rijndael"); | 45 idx = find_cipher("rijndael"); |
48 if (idx == -1) return CRYPT_NOP; | 46 if (idx == -1) return CRYPT_NOP; |
49 } | 47 } |
50 | 48 |
51 /* initialize the context */ | 49 /* initialize the context */ |
52 if ((err = f8_start(idx, IV, key, sizeof(key), salt, sizeof(salt), 0, &f8)) != CRYPT_OK) { | 50 if ((err = f8_start(idx, IV, key, sizeof(key), salt, sizeof(salt), 0, &f8)) != CRYPT_OK) { |
53 return err; | 51 return err; |
54 } | 52 } |
55 | 53 |
56 /* encrypt block */ | 54 /* encrypt block */ |
57 if ((err = f8_encrypt(pt, buf, sizeof(pt), &f8)) != CRYPT_OK) { | 55 if ((err = f8_encrypt(pt, buf, sizeof(pt), &f8)) != CRYPT_OK) { |
58 f8_done(&f8); | 56 f8_done(&f8); |
59 return err; | 57 return err; |
60 } | 58 } |
61 f8_done(&f8); | 59 f8_done(&f8); |
62 | 60 |
63 /* compare */ | 61 /* compare */ |
64 if (XMEMCMP(buf, ct, sizeof(ct))) { | 62 if (compare_testvector(buf, sizeof(ct), ct, sizeof(ct), "f8", 0)) { |
65 return CRYPT_FAIL_TESTVECTOR; | 63 return CRYPT_FAIL_TESTVECTOR; |
66 } | 64 } |
67 | 65 |
68 return CRYPT_OK; | 66 return CRYPT_OK; |
69 #endif | 67 #endif |
70 } | 68 } |
71 | 69 |
72 #endif | 70 #endif |
73 | 71 |
74 /* $Source$ */ | 72 /* ref: $Format:%D$ */ |
75 /* $Revision$ */ | 73 /* git commit: $Format:%H$ */ |
76 /* $Date$ */ | 74 /* commit time: $Format:%ai$ */ |