]> git.cryptolib.org Git - avr-crypto-lib.git/blob - test_src/main-des-test.c
fixing E-Mail-Address & Copyright
[avr-crypto-lib.git] / test_src / main-des-test.c
1 /* main-des-test.c */
2 /*
3     This file is part of the AVR-Crypto-Lib.
4     Copyright (C) 2006-2015 Daniel Otte (bg@nerilex.org)
5
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.
10
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.
15
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/>.
18 */
19 /*
20  * des test-suit
21  * 
22 */
23
24 #include "main-test-common.h"
25
26 #include "des.h"
27 #include "performance_test.h"
28 #include "bcal-performance.h"
29 #include "bcal-nessie.h"
30 #include "bcal_des.h"
31 #include "bcal_tdes.h"
32 #include "bcal_tdes2.h"
33
34 char *algo_name = "DES";
35
36 const bcdesc_t *const algolist[] PROGMEM = {
37         (bcdesc_t*)&des_desc,
38         (bcdesc_t*)&tdes2_desc,
39         (bcdesc_t*)&tdes_desc,
40         NULL
41 };
42 /*****************************************************************************
43  *  additional validation-functions                                                                                      *
44  *****************************************************************************/
45
46 void testrun_nessie_des(const char *param){
47         if(!param){
48                 bcal_nessie_multiple(algolist);
49         }else{
50                 uint8_t i=0;
51                 bcdesc_t *ptr;
52                 for(;;){
53                         ptr = (bcdesc_t*)pgm_read_word(&algolist[i++]);
54                         if(ptr == NULL){
55                                 cli_putstr_P(PSTR("\r\nunknown algorithm: "));
56                                 cli_putstr(param);
57                                 cli_putstr_P(PSTR("\r\navailable algorithms are:"));
58                                 i = 0;
59                                 while((ptr = (bcdesc_t*)pgm_read_word(&algolist[i++]))){
60                                         cli_putstr_P(PSTR("\r\n\t"));
61                                         cli_putstr_P((const char*)pgm_read_word(&ptr->name));
62                                 }
63                                 return;
64                         }
65                         if(!strcmp_P(param, (const char*)pgm_read_word(&ptr->name))){
66                                 bcal_nessie(ptr);
67                                 return;
68                         }
69                 }
70         }
71 }
72
73 void testrun_performance_des(void){
74         bcal_performance_multiple(algolist);
75 }
76 /*****************************************************************************
77  * main                                         
78  *****************************************************************************/
79
80 const char nessie_str[]      PROGMEM = "nessie";
81 const char test_str[]        PROGMEM = "test";
82 const char performance_str[] PROGMEM = "performance";
83 const char echo_str[]        PROGMEM = "echo";
84
85 const cmdlist_entry_t cmdlist[] PROGMEM = {
86         { nessie_str,  (void*)1, (void_fpt)testrun_nessie_des },
87         { test_str,    (void*)1, (void_fpt)testrun_nessie_des },
88         { performance_str, NULL, testrun_performance_des},
89         { echo_str,    (void*)1, (void_fpt)echo_ctrl},
90         { NULL,            NULL, NULL}
91 };
92
93 int main(void) {
94         main_setup();
95
96         for(;;){
97                 welcome_msg(algo_name);
98                 cmd_interface(cmdlist);
99     }
100
101 }
102