]> git.cryptolib.org Git - avr-crypto-lib.git/blob - main-hmac-sha256-test.c
8be3ddd2b1a29b786e92e746748ea95e57b472f3
[avr-crypto-lib.git] / main-hmac-sha256-test.c
1 /*
2  * HMAC-SHA256 test-suit
3  * 
4 */
5
6 #include "config.h"
7 #include "serial-tools.h"
8 #include "uart.h"
9 #include "debug.h"
10
11 #include "sha256.h"
12 #include "hmac-sha256.h"
13
14 #include "nessie_mac_test.h"
15
16 #include <stdint.h>
17 #include <string.h>
18
19 char* algo_name = "HMAC-SHA256";
20
21 /*****************************************************************************
22  *  additional validation-functions                                                                                      *
23  *****************************************************************************/
24 void hmacsha256_next_dummy(void* buffer, void* ctx){
25         sha256_nextBlock(ctx, buffer);
26 }
27
28 void hmacsha256_init_dummy(void* key, uint16_t keysize_b, void* ctx){
29         hmac_sha256_init(ctx, key, keysize_b);
30 }
31
32 void hmacsha256_last_dummy(void* buffer, uint16_t size_b, void* key, uint16_t keysize_b, void* ctx){
33         sha256_lastBlock(ctx, buffer, size_b);
34         hmac_sha256_final(ctx, key, keysize_b);
35 }
36
37 void testrun_nessie_hmacsha256(void){
38         nessie_mac_ctx.macsize_b   = 256;
39         nessie_mac_ctx.keysize_b   = 512;
40         nessie_mac_ctx.blocksize_B = 512/8;
41         nessie_mac_ctx.ctx_size_B  = sizeof(hmac_sha256_ctx_t);
42         nessie_mac_ctx.name = algo_name;
43         nessie_mac_ctx.mac_init = (nessie_mac_init_fpt)hmacsha256_init_dummy;
44         nessie_mac_ctx.mac_next = (nessie_mac_next_fpt)hmacsha256_next_dummy;
45         nessie_mac_ctx.mac_last = (nessie_mac_last_fpt)hmacsha256_last_dummy;
46         nessie_mac_ctx.mac_conv = (nessie_mac_conv_fpt)sha256_ctx2hash;
47         
48         nessie_mac_run();
49 }
50
51
52
53 /*****************************************************************************
54  *  main                                                                                                                                         *
55  *****************************************************************************/
56
57 int main (void){
58         char  str[20];
59         DEBUG_INIT();
60         uart_putstr("\r\n");
61
62         uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
63         uart_putstr(algo_name);
64         uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
65
66 restart:
67         while(1){ 
68                 if (!getnextwordn(str,20))  {DEBUG_S("DBG: W1\r\n"); goto error;}
69                 if (strcmp(str, "nessie")) {DEBUG_S("DBG: 1b\r\n"); goto error;}
70                         testrun_nessie_hmacsha256();
71                 goto restart;           
72                 continue;
73         error:
74                 uart_putstr("ERROR\r\n");
75         }
76         
77 }
78