X-Git-Url: https://git.cryptolib.org/?p=arm-crypto-lib.git;a=blobdiff_plain;f=test_src%2Fmain-entropium-test.c;fp=test_src%2Fmain-entropium-test.c;h=35e8fb1fded4abe8e1a28cd35b161f105dbad478;hp=0000000000000000000000000000000000000000;hb=2a4779378a7bf4322a0e6b2024284092135e8a3d;hpb=e69f1207a9fbd9c0f45bfdbb2d8ebe9852d95969 diff --git a/test_src/main-entropium-test.c b/test_src/main-entropium-test.c new file mode 100644 index 0000000..35e8fb1 --- /dev/null +++ b/test_src/main-entropium-test.c @@ -0,0 +1,106 @@ +/* main-entropium-test.c */ +/* + This file is part of the ARM-Crypto-Lib. + Copyright (C) 2006-2010 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +/* + * entropium test-suit + * +*/ + +#include "main-test-common.h" + +#include "entropium.h" +#include "nessie_bc_test.h" +#include "performance_test.h" + +char* algo_name = "Entropium"; + +/***************************************************************************** + * additional validation-functions * + *****************************************************************************/ + +void testrun_entropium(void){ + char c, str[16]; + uint8_t data[32]; + uint32_t i=0; + while('q'!=cli_getc()){ + entropium_getRandomBlock(data); + cli_putstr("\r\n "); + ultoa(i, str, 10); + for(c=strlen(str); c<11; ++c){ + cli_putc(' '); + } + cli_putstr(str); + ++i; + cli_putstr(" : "); + cli_hexdump(data, 32); + } + cli_putstr("\r\n\r\n"); +} + + +void testrun_performance_entropium(void){ + uint64_t t; + char str[16]; + uint8_t data[32]; + + calibrateTimer(); + print_overhead(); + + startTimer(1); + entropium_addEntropy(128, data); + t = stopTimer(); + cli_putstr("\r\n\tadd entropy time: "); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); + + + startTimer(1); + entropium_getRandomBlock(data); + t = stopTimer(); + cli_putstr("\r\n\tget random time: "); + ultoa((unsigned long)t, str, 10); + cli_putstr(str); + + cli_putstr("\r\n"); +} +/***************************************************************************** + * main * + *****************************************************************************/ + +const char nessie_str[] = "nessie"; +const char test_str[] = "test"; +const char performance_str[] = "performance"; +const char echo_str[] = "echo"; + +cmdlist_entry_t cmdlist[] = { + { nessie_str, NULL, testrun_entropium}, + { test_str, NULL, testrun_entropium}, + { performance_str, NULL, testrun_performance_entropium}, + { echo_str, (void*)1, (void_fpt)echo_ctrl}, + { NULL, NULL, NULL} +}; + + +int main (void){ + main_setup(); + + for(;;){ + welcome_msg(algo_name); + cmd_interface(cmdlist); + } +}