void hh10d_init(void *cfg) { // Read calibrate paremeter with TWI int rc; char buf[6]; twi_init(); rc = ee24xx_read_bytes(10,4,buf); if (rc != 4) { sens = 0; offset = 0; return; } #ifdef DEBUG uart_hexdump(buf,4); uart_putc ('\r'); uart_putc ('\n'); #endif sens = buf[0] * 256 + buf[1]; offset = buf[2] * 256 + buf[3]; #ifdef DEBUG itoa(sens,buf,10); uart_putstr(buf); uart_putstr_P(PSTR("\r\n")); itoa(offset,buf,10); uart_putstr(buf); uart_putstr_P(PSTR("\r\n")); #endif // rising edge EICRA |= (1 << ISC10) | (1 << ISC11); // enable INT1 EIMSK |= (1 << INT1); }
void testrun_stdtest_rundirect(void* data, void* key){ uart_putstr_P(PSTR("\r\n ")); uart_putstr_P(PSTR("k = ")); uart_hexdump(key,16); uart_putstr_P(PSTR("\r\n ")); uart_putstr_P(PSTR("a = ")); uart_hexdump(data,16); noekeon_enc(data, key); uart_putstr_P(PSTR("\r\nafter NESSIEencrypt, b = ")); uart_hexdump(data,16); noekeon_dec(data, key); uart_putstr_P(PSTR("\r\nafter NESSIEdecrypt, a?= ")); uart_hexdump(data,16); uart_putstr_P(PSTR("\r\n")); }
void testrun_twister512(void){ twister512_hash_t hash; char* testv[]={ "", "a", "abc", "message digest", "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "12345678901234567890123456789012345678901234567890123456789012345678901234567890"}; uint32_t i; uart_putstr_P(PSTR("\r\n=== TWISTER-512 test suit (MD5 test values) ===")); for(i=0; i<7; ++i){ uart_putstr_P(PSTR("\r\n TWISTER-512 (\"")); uart_putstr(testv[i]); uart_putstr_P(PSTR("\") = \r\n\t")); twister512(&hash, testv[i], strlen(testv[i])*8); print_hash(hash); // return; } uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-512 test suit (short test values) ===")); uint8_t stestv[]= {0x00, 0x00, 0xC0, 0xC0, 0x80, 0x48, 0x50}; uint8_t stestl[]= { 0, 1, 2, 3, 4, 5, 6}; for(i=0; i<7; ++i){ uart_putstr_P(PSTR("\r\n TWISTER-512 (\"")); uart_hexdump(&(stestv[i]), 1); uart_putstr_P(PSTR("\") = \r\n\t")); twister512(hash, &(stestv[i]), stestl[i]); print_hash(hash); } #ifdef TWISTER_LONGTEST uart_putstr_P(PSTR("\r\n\r\n=== TWISTER-512 test suit (long test) ===")); char* ltest= "abcdefghbcdefghicdefghijdefghijk" "efghijklfghijklmghijklmnhijklmno"; twister512_ctx_t ctx; twister512_init(&ctx); uart_putstr_P(PSTR("\r\n TWISTER-512 ( 16777216 x \"")); uart_putstr(ltest); uart_putstr_P(PSTR("\") = \r\n\t")); for(i=0; i<16777216; ++i){ twister512_nextBlock(&ctx, ltest); } twister512_ctx2hash(hash, &ctx); print_hash(hash); #endif }
int main ( void ) { uint8_t *bufcontents; uint8_t i; uint8_t tv[] = "foobar1"; uint16_t ticker = 0; uint8_t rc; aes128_ctx_t ctx; uint8_t key[] = "0123456789ABCDEF"; uint8_t IV[] = "FEDCBA9876543210"; uint8_t text[] = "Hello rfm12 world. I've gonna cipher you "; drive(LED1); drive(LED2); toggle_output(LED1); uart_init(); _delay_ms(250); _delay_ms(250); sei(); toggle_output(LED2); uart_putstr ("AVR Boot Ok\r\n"); _delay_ms(250); toggle_output(LED2); aes128_init(key,&ctx); while (1) { uart_putstr("key = "); uart_putstr(key); uart_putstr("\r\n"); uart_putstr("text = "); uart_putstr(text); uart_putstr("\r\n"); /* Ciphering in CBC mode */ memxor(text,IV,16); aes128_enc(text,&ctx); memxor(text+16,text,16); aes128_enc(text+16,&ctx); memxor(text+32,text+16,16); aes128_enc(text+32,&ctx); uart_putstr("text ciphered = \r\n"); uart_hexdump(text,sizeof(text)); /* Deciphering in CBC mode */ aes128_dec(text+32,&ctx); memxor(text+32,text+16,16); aes128_dec(text+16,&ctx); memxor(text+16,text,16); aes128_dec(text,&ctx); memxor(text,IV,16); uart_putstr("text unciphered = "); uart_putstr(text); uart_putstr("\r\n"); /* Let change the IV */ IV[0]++; _delay_ms(250); _delay_ms(250); _delay_ms(250); _delay_ms(250); } }
void print_hash(void* hash){ uart_hexdump(hash, 256/8); uart_putstr_P(PSTR("\r\n\t")); uart_hexdump((uint8_t*)hash+256/8, 256/8); }
void uart_putptr(void* p){ uart_hexdump((void*) &p,2); }