Mercurial > dropbear
comparison libtomcrypt/src/mac/pelican/pelican_test.c @ 1478:3a933956437e coverity
update coverity
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Fri, 09 Feb 2018 23:49:22 +0800 |
parents | 6dba84798cd5 |
children |
comparison
equal
deleted
inserted
replaced
1439:8d24733026c5 | 1478:3a933956437e |
---|---|
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 pelican_test.c | 12 @file pelican_test.c |
15 Pelican MAC, test, by Tom St Denis | 13 Pelican MAC, test, by Tom St Denis |
16 */ | 14 */ |
17 | 15 |
18 #ifdef LTC_PELICAN | 16 #ifdef LTC_PELICAN |
19 | 17 |
20 int pelican_test(void) | 18 int pelican_test(void) |
29 /* K=16, M=0 */ | 27 /* K=16, M=0 */ |
30 { | 28 { |
31 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 29 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
32 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, | 30 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, |
33 { 0 }, | 31 { 0 }, |
34 { 0xeb, 0x58, 0x37, 0x15, 0xf8, 0x34, 0xde, 0xe5, | 32 { 0xeb, 0x58, 0x37, 0x15, 0xf8, 0x34, 0xde, 0xe5, |
35 0xa4, 0xd1, 0x6e, 0xe4, 0xb9, 0xd7, 0x76, 0x0e, }, | 33 0xa4, 0xd1, 0x6e, 0xe4, 0xb9, 0xd7, 0x76, 0x0e, }, |
36 16, 0 | 34 16, 0 |
37 }, | 35 }, |
38 | 36 |
39 /* K=16, M=3 */ | 37 /* K=16, M=3 */ |
40 { | 38 { |
41 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 39 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
42 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, | 40 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, |
43 { 0x00, 0x01, 0x02 }, | 41 { 0x00, 0x01, 0x02 }, |
44 { 0x1c, 0x97, 0x40, 0x60, 0x6c, 0x58, 0x17, 0x2d, | 42 { 0x1c, 0x97, 0x40, 0x60, 0x6c, 0x58, 0x17, 0x2d, |
45 0x03, 0x94, 0x19, 0x70, 0x81, 0xc4, 0x38, 0x54, }, | 43 0x03, 0x94, 0x19, 0x70, 0x81, 0xc4, 0x38, 0x54, }, |
46 16, 3 | 44 16, 3 |
47 }, | 45 }, |
48 | 46 |
49 /* K=16, M=16 */ | 47 /* K=16, M=16 */ |
50 { | 48 { |
51 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 49 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
52 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, | 50 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, |
53 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 51 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
54 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, | 52 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, |
55 { 0x03, 0xcc, 0x46, 0xb8, 0xac, 0xa7, 0x9c, 0x36, | 53 { 0x03, 0xcc, 0x46, 0xb8, 0xac, 0xa7, 0x9c, 0x36, |
56 0x1e, 0x8c, 0x6e, 0xa6, 0x7b, 0x89, 0x32, 0x49, }, | 54 0x1e, 0x8c, 0x6e, 0xa6, 0x7b, 0x89, 0x32, 0x49, }, |
57 16, 16 | 55 16, 16 |
58 }, | 56 }, |
59 | 57 |
60 /* K=16, M=32 */ | 58 /* K=16, M=32 */ |
63 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, | 61 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, |
64 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 62 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
65 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, | 63 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, |
66 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | 64 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, |
67 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F }, | 65 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F }, |
68 { 0x89, 0xcc, 0x36, 0x58, 0x1b, 0xdd, 0x4d, 0xb5, | 66 { 0x89, 0xcc, 0x36, 0x58, 0x1b, 0xdd, 0x4d, 0xb5, |
69 0x78, 0xbb, 0xac, 0xf0, 0xff, 0x8b, 0x08, 0x15, }, | 67 0x78, 0xbb, 0xac, 0xf0, 0xff, 0x8b, 0x08, 0x15, }, |
70 16, 32 | 68 16, 32 |
71 }, | 69 }, |
72 | 70 |
73 /* K=16, M=35 */ | 71 /* K=16, M=35 */ |
77 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 75 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, |
78 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, | 76 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, |
79 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | 77 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, |
80 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, | 78 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, |
81 0x20, 0x21, 0x23 }, | 79 0x20, 0x21, 0x23 }, |
82 { 0x4a, 0x7d, 0x45, 0x4d, 0xcd, 0xb5, 0xda, 0x8d, | 80 { 0x4a, 0x7d, 0x45, 0x4d, 0xcd, 0xb5, 0xda, 0x8d, |
83 0x48, 0x78, 0x16, 0x48, 0x5d, 0x45, 0x95, 0x99, }, | 81 0x48, 0x78, 0x16, 0x48, 0x5d, 0x45, 0x95, 0x99, }, |
84 16, 35 | 82 16, 35 |
85 }, | 83 }, |
86 }; | 84 }; |
87 int x, err; | 85 int x, err; |
88 unsigned char out[16]; | 86 unsigned char out[16]; |
89 pelican_state pel; | 87 pelican_state pel; |
90 | 88 |
91 for (x = 0; x < (int)(sizeof(tests)/sizeof(tests[0])); x++) { | 89 for (x = 0; x < (int)(sizeof(tests)/sizeof(tests[0])); x++) { |
92 if ((err = pelican_init(&pel, tests[x].K, tests[x].keylen)) != CRYPT_OK) { | 90 if ((err = pelican_init(&pel, tests[x].K, tests[x].keylen)) != CRYPT_OK) { |
93 return err; | 91 return err; |
94 } | 92 } |
95 if ((err = pelican_process(&pel, tests[x].MSG, tests[x].ptlen)) != CRYPT_OK) { | 93 if ((err = pelican_process(&pel, tests[x].MSG, tests[x].ptlen)) != CRYPT_OK) { |
96 return err; | 94 return err; |
97 } | 95 } |
98 if ((err = pelican_done(&pel, out)) != CRYPT_OK) { | 96 if ((err = pelican_done(&pel, out)) != CRYPT_OK) { |
99 return err; | 97 return err; |
100 } | 98 } |
101 | 99 |
102 if (XMEMCMP(out, tests[x].T, 16)) { | 100 if (compare_testvector(out, 16, tests[x].T, 16, "PELICAN", x)) { |
103 #if 0 | |
104 int y; | |
105 printf("\nFailed test %d\n", x); | |
106 printf("{ "); for (y = 0; y < 16; ) { printf("0x%02x, ", out[y]); if (!(++y & 7)) printf("\n"); } printf(" }\n"); | |
107 #endif | |
108 return CRYPT_FAIL_TESTVECTOR; | 101 return CRYPT_FAIL_TESTVECTOR; |
109 } | 102 } |
110 } | 103 } |
111 return CRYPT_OK; | 104 return CRYPT_OK; |
112 #endif | 105 #endif |
113 } | 106 } |
114 | 107 |
115 | 108 |
116 #endif | 109 #endif |
117 | 110 |
118 /* $Source$ */ | 111 /* ref: $Format:%D$ */ |
119 /* $Revision$ */ | 112 /* git commit: $Format:%H$ */ |
120 /* $Date$ */ | 113 /* commit time: $Format:%ai$ */ |