1 /* main-blake-test.c */
3 This file is part of the ARM-Crypto-Lib.
4 Copyright (C) 2006-2010 Daniel Otte (daniel.otte@rub.de)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
29 #include "uart_lowlevel.h"
34 #include "nessie_hash_test.h"
35 #include "performance_test.h"
36 #include "hfal-nessie.h"
37 #include "hfal-performance.h"
38 #include "hfal-test.h"
40 #include "blake_small.h"
41 #include "blake_large.h"
42 #include "hfal_blake_small.h"
43 #include "hfal_blake_large.h"
46 char* algo_name = "Blake";
48 void uart0_putc(char byte){
49 uart_putc(UART_0, byte);
52 char uart0_getc(void){
53 return uart_getc(UART_0);
57 const hfdesc_t* algolist[] = {
58 (hfdesc_t*)&blake224_desc,
59 (hfdesc_t*)&blake256_desc,
60 (hfdesc_t*)&blake384_desc,
61 (hfdesc_t*)&blake512_desc,
65 /*****************************************************************************
66 * additional validation-functions *
67 *****************************************************************************/
69 void testrun_nessie_blake(void){
70 hfal_nessie_multiple(algolist);
72 void blake224_test(void* msg, uint32_t length_b){
73 hfal_test(&blake224_desc, msg, length_b);
76 void blake256_test(void* msg, uint32_t length_b){
77 hfal_test(&blake256_desc, msg, length_b);
80 void blake384_test(void* msg, uint32_t length_b){
81 hfal_test(&blake384_desc, msg, length_b);
84 void blake512_test(void* msg, uint32_t length_b){
85 hfal_test(&blake512_desc, msg, length_b);
87 void testrun_stdtest_blake(void){
91 blake224_test(msg1, 576);
93 blake256_test(msg1, 576);
95 blake384_test(msg1, 1152);
97 blake512_test(msg1, 1152);
100 void testshort(void){
101 blake256_test("", 8);
104 void testlshort(void){
105 blake512_test("", 8);
108 void test512_32(void){
109 uint8_t d[] = { 0xE9, 0x26, 0xAE, 0x8B, 0x0A, 0xF6, 0xE5, 0x31,
110 0x76, 0xDB, 0xFF, 0xCC, 0x2A, 0x6B, 0x88, 0xC6,
111 0xBD, 0x76, 0x5F, 0x93, 0x9D, 0x3D, 0x17, 0x8A,
112 0x9B, 0xDE, 0x9E, 0xF3, 0xAA, 0x13, 0x1C, 0x61,
113 0xE3, 0x1C, 0x1E, 0x42, 0xCD, 0xFA, 0xF4, 0xB4,
114 0xDC, 0xDE, 0x57, 0x9A, 0x37, 0xE1, 0x50, 0xEF,
115 0xBE, 0xF5, 0x55, 0x5B, 0x4C, 0x1C, 0xB4, 0x04,
116 0x39, 0xD8, 0x35, 0xA7, 0x24, 0xE2, 0xFA, 0xE7 };
117 blake256_test(d, 512);
120 void performance_blake(void){
121 hfal_performance_multiple(algolist);
124 /*****************************************************************************
126 *****************************************************************************/
129 const char nessie_str[] = "nessie";
130 const char test_str[] = "test";
131 const char testshort_str[] = "short";
132 const char testlshort_str[] = "lshort";
133 const char test512_str[] = "test512";
134 const char performance_str[] = "performance";
135 const char echo_str[] = "echo";
136 const char shavs_list_str[] = "shavs_list";
137 const char shavs_set_str[] = "shavs_set";
138 const char shavs_test1_str[] = "shavs_test1";
139 const char shavs_test3_str[] = "shavs_test3";
141 cmdlist_entry_t cmdlist[] = {
142 { nessie_str, NULL, testrun_nessie_blake},
143 { test_str, NULL, testrun_stdtest_blake},
144 { testshort_str, NULL, testshort},
145 { testlshort_str, NULL, testlshort},
146 { test512_str, NULL, test512_32},
147 { performance_str, NULL, performance_blake},
148 { shavs_list_str, NULL, shavs_listalgos},
149 { shavs_set_str, (void*)1, (void_fpt)shavs_setalgo},
150 { shavs_test1_str, NULL, shavs_test1},
151 { shavs_test3_str, NULL, shavs_test3},
152 { echo_str, (void*)1, (void_fpt)echo_ctrl},
157 sysclk_set_freq(SYS_FREQ);
158 sysclk_mosc_verify_enable();
159 uart_init(UART_0, 115200, 8, UART_PARATY_NONE, UART_STOPBITS_ONE);
160 gptm_set_timer_32periodic(TIMER0);
165 shavs_algolist=(hfdesc_t**)algolist;
166 shavs_algo=(hfdesc_t*)&blake256_desc;
169 cli_putstr("\r\n\r\nARM-Crypto-Lib VS (");
170 cli_putstr(algo_name);
172 cli_putstr(__DATE__);
174 cli_putstr(__TIME__);
175 cli_putstr(")\r\nloaded and running\r\n");
176 cmd_interface(cmdlist);