void testrun_performance_trivium(void){
	uint64_t t;
	char str[16];
	uint8_t key[10], iv[10];
	trivium_ctx_t ctx;
	
	calibrateTimer();
	print_overhead();
	
	memset(key,  0, 10);
	memset(iv,  0, 10);
	
	startTimer(1);
	trivium_init(key, 80, iv, 80, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	startTimer(1);
	trivium_enc(&ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tencrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	uart_putstr_P(PSTR("\r\n"));
}
Exemple #2
0
void testrun_performance_des(void){
	uint64_t t;
	char str[16];
	uint8_t key[8], data[8];
	
	
	calibrateTimer();
	print_overhead();
	
	memset(key,  0, 8);
	memset(data, 0, 8);
	
	startTimer(1);
	des_enc(data, data, key);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tencrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	startTimer(1);
	des_dec(data, data, key);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	uart_putstr_P(PSTR("\r\n"));
}
Exemple #3
0
int8_t lm35_read(struct packet_t *packet) {
	uint16_t voltage;
	uint16_t temperature;
	float tmp;
#ifdef DEBUG
	char buf[16];
#endif

	voltage = adc_read();

	tmp = voltage * 3.3 / 1024;
	temperature = tmp * 1000;

#ifdef DEBUG
	itoa(voltage,buf,10);
	uart_putstr_P(PSTR("Voltage (V): "));
	uart_putstr(buf);
	uart_putstr_P(PSTR("\r\n"));
	itoa(temperature,buf,10);
	uart_putstr_P(PSTR("Temperature (°C): "));
	uart_putstr(buf);
	uart_putstr_P(PSTR("\r\n"));
#endif

	return set_data_int16(packet, temperature);
}
void testrun_performance_noekeon(void){
	uint64_t t;
	char str[16];
	uint8_t key[16], data[16];
	noekeon_ctx_t ctx;
	
	calibrateTimer();
	print_overhead();
	
	memset(key,  0, 16);
	memset(data, 0, 16);
	
	startTimer(1);
	noekeon_init(key, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	startTimer(1);
	noekeon_enc(data, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tencrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	startTimer(1);
	noekeon_dec(data, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tdecrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	uart_putstr_P(PSTR("\r\n"));
}
Exemple #5
0
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_performance_arcfour(void){
	uint64_t t;
	char str[16];
	uint8_t key[16];
	arcfour_ctx_t ctx;
	
	calibrateTimer();
	print_overhead();	
	
	memset(key,  0, 16);
	
	startTimer(1);
	arcfour_init(key, 16, &ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	startTimer(1);
	arcfour_gen(&ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tencrypt time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);	
	
	uart_putstr_P(PSTR("\r\n"));	
}
int main (void){
	DEBUG_INIT();
	uart_putstr("\r\n");
	cli_rx = uart_getc;
	cli_tx = uart_putc;	 	
	for(;;){
		uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
		uart_putstr(algo_name);
		uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
		cmd_interface(cmdlist);
	}
}
Exemple #8
0
void led_set(struct packet_t *packet) {
	uart_putstr_P(PSTR("led_set()\r\n"));
	// XXX : WTF ??? if (get_data_type(packet)!=0x49) { uart_putstr_P(PSTR("not an integer")); return; }
	uart_putc(get_data_type(packet));
	if (get_data_int16(packet) == 0) {
		uart_putstr_P(PSTR("clr_led()\r\n"));
		clr_output(LED1);
	} else {
		uart_putstr_P(PSTR("set_led()\r\n"));
		set_output(LED1);
	}
}
int main (void){
	DEBUG_INIT();
	uart_putstr("\r\n");
	cli_rx = uart_getc;
	cli_tx = uart_putc;	 	
	shavs_algolist=(hfdesc_t**)algolist;
	shavs_algo=(hfdesc_t*)&sha256_desc;
	for(;;){
		uart_putstr_P(PSTR("\r\n\r\nCrypto-VS ("));
		uart_putstr(algo_name);
		uart_putstr_P(PSTR(")\r\nloaded and running\r\n"));
		cmd_interface(cmdlist);
	}
}
Exemple #10
0
void send_set(uint8_t dst, uint8_t device, int16_t value) {
	uart_putstr_P(PSTR("send_set()\r\n"));
	struct packet_t *packet=get_tx_packet();
	set_devices(packet,0xff,device);
	set_data_int16(packet,value);
	send(dst,SET,packet);
}
Exemple #11
0
void send_get(uint8_t dst, uint8_t device) {
	uart_putstr_P(PSTR("send_get()\r\n"));
	char buf[2];
	buf[0]=0xFF;
	buf[1]=device;
	//send(dst,GET,buf,sizeof(buf));
}
void testrun_stdtest_noekeon(void){
	uint8_t key[16], data[16];
	uint8_t key3[16];
	noekeon_ctx_t ctx;
	
	uart_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Indirect-Key Mode:\r\n"));
	
	memset(key,  0, 16);
	memset(data, 0, 16);
	testrun_stdtest_runindirect(data, key);
	
	memset(key,  0xFF, 16);
	memset(data, 0xFF, 16);
	testrun_stdtest_runindirect(data, key);
	
	memset(key,  0, 16);
	memset(data, 0, 16);
	noekeon_init(key, &ctx);
	noekeon_enc(data, &ctx);
	memcpy(key3, data, 16);
	memset(key,  0xFF, 16);
	memset(data, 0xFF, 16);
	noekeon_init(key, &ctx);
	noekeon_enc(data, &ctx);
	testrun_stdtest_runindirect(data, key3);
	
	uart_putstr_P(PSTR("\r\nTest vectors for block cipher Noekeon in Direct-Key Mode:\r\n"));
	
	memset(key,  0, 16);
	memset(data, 0, 16);
	testrun_stdtest_rundirect(data, key);
	
	memset(key,  0xFF, 16);
	memset(data, 0xFF, 16);
	testrun_stdtest_rundirect(data, key);
	
	memset(key,  0, 16);
	memset(data, 0, 16);
	noekeon_enc(data, key);
	memcpy(key3, data, 16);
	memset(key,  0xFF, 16);
	memset(data, 0xFF, 16);
	noekeon_enc(data, key);
	testrun_stdtest_rundirect(data, key3);
	
}
Exemple #13
0
void bugone_loop() {
    uint8_t *bufcontents;
    uint8_t i;

    // RFM12 managment
    rfm12_tick();
    if (rfm12_rx_status() == STATUS_COMPLETE) {
        bufcontents=rfm12_rx_buffer();
        recv(bufcontents);
    }

    // Every minutes
    if (seconds > 20) {
        struct packet_t *packet = get_tx_packet();
        application_t *application;
        int8_t len;
        uart_putstr_P(PSTR("\r\n"));
        i=0;
        while ( (application = get_app(i)) != NULL) {
            i++;
            uart_putstr_P(PSTR("#"));
            if (application->get == NULL) { continue; }
                set_devices(packet,i,0x29);
                len=application->get(packet);
                if (len > 0) {
                    //data.remaining_len-=len;
                    //data.buf+=len;
                }
        }
        send(0xFF,6,packet);
        seconds=0;
    }

    // Asynchronous events
    if (wake_me_up > 0) {
        struct packet_t *packet = get_tx_packet();
        int8_t len;
        uart_putstr_P(PSTR("\r\n"));
        set_devices(packet,wake_me_up,42);
        len=applications[wake_me_up].get(packet);
        send(0xFF,VALUE,packet);
        wake_me_up = 0;
    }
}
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
}
void testrun_performance_twister512(void){
	uint64_t t;
	char str[16];
	uint8_t data[64];
	twister_big_ctx_t ctx;
	
	calibrateTimer();
	print_overhead();
	
	memset(data, 0, 64);
	
	startTimer(1);
	twister_big_init(&ctx, 512);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	
	startTimer(1);
	twister_big_nextBlock(&ctx, data);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tone-block time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	
	startTimer(1);
	twister_big_lastBlock(&ctx, data, 0);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tlast block time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	startTimer(1);
	twister_big_ctx2hash(data, &ctx, 512);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx2hash time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);

	uart_putstr_P(PSTR("\r\n"));
}
Exemple #16
0
int8_t hh10d_read(struct packet_t *packet) {
    int RH;
    char buf[6];

    uart_putstr_P(PSTR("hh10d read\r\n"));
    RH = (offset - (double)old_cnt) * sens / 4096.0;

#ifdef DEBUG
    itoa(old_cnt,buf,10);
    uart_putstr(buf);
    uart_putstr_P(PSTR("\r\n"));

    itoa(RH,buf,10);
    uart_putstr(buf);
    uart_putstr_P(PSTR("\r\n"));
#endif

    if (get_remaining_length(packet) < 2) return -1;
    return set_data_int16(packet,RH);
}
Exemple #17
0
void recv_set(struct packet_t *packet) {
	uint8_t device_src,device_dst;
	application_t* app;
	uart_putstr_P(PSTR("recv_set()\r\n"));

	while (get_devices(packet,&device_src,&device_dst)) {
		app=app_get(device_dst);
		if (app == NULL) continue; 
		if (app->set == NULL) continue;
		app->set(packet);
	}
}
void testrun_performance_sha256(void){
	uint64_t t;
	char str[16];
	uint8_t data[32];
	sha256_ctx_t ctx;
	
	calibrateTimer();
	print_overhead();
	
	memset(data, 0, 32);
	
	startTimer(1);
	sha256_init(&ctx);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tctx-gen time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	
	startTimer(1);
	sha256_nextBlock(&ctx, data);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tone-block time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	
	startTimer(1);
	sha256_lastBlock(&ctx, data, 0);
	t = stopTimer();
	uart_putstr_P(PSTR("\r\n\tlast block time: "));
	ultoa((unsigned long)t, str, 10);
	uart_putstr(str);
	
	uart_putstr_P(PSTR("\r\n"));
}
//hexdump utility
void uart_hexdump(unsigned char *buf, int len)
{
	unsigned char x=0;
	char sbuf[3];

	while(len--){
		itoa(*buf++, sbuf, 16);
		if (sbuf[1] == 0) uart_putc(' ');
		uart_putstr(sbuf);
		uart_putc(' ');
		if(++x == 16) {
			uart_putstr_P(PSTR("\r\n"));
			x = 0;
		}
	}
}
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"));
}
Exemple #21
0
int main ( void )
{
  unsigned char i=0;
  char buf[16];

  drive(LED1);
  drive(LED2);

  set_output(LED1);
  set_output(LED2);
	
  uart_init();
  sei();

  uart_putstr_P(PSTR("AVR init complete\r\n"));

  while (1) {
    _delay_ms(200);
    sprintf(buf,"Foo : %d\r\n",i);
    uart_putstr(buf);
    toggle_output(LED2);
    i++;
  }
}
Exemple #22
0
/* Initialise board */
void bugone_init(application_t* applications) {
	char buf[16];
	uint8_t i;
        uint8_t nb_devices=0;
        application_t *app=applications;

	led_init();
	uart_init();
	rfm12_init();
	config_init();
	/* Count how many devices are declared */
        while (!((app->init == NULL) && 
              (app->get == NULL) && 
              (app->set == NULL) && 
              (app->cfg == NULL))) { 
            nb_devices++;
            app++;
        }
        set_apps(applications,nb_devices);

	uart_putstr_P(PSTR("Firmware version "));
	uart_putstr_P(PSTR(FWVERSION_STR));
	uart_putstr_P(PSTR("\r\n"));

	uart_putstr_P(PSTR("Node address : "));
	itoa(config.address,buf,10);
	uart_putstr(buf);
	uart_putstr_P(PSTR("\r\n"));

	for (i=0 ; i < nb_devices; i++) {
                uart_putc('*');
		if (applications[i].init == NULL) { continue; }
		applications[i].init(applications[i].cfg);
	}

	timer1_init();

	sei();

	uart_putstr_P(PSTR("AVR init complete\r\n"));
	//clr_output(LED1);
	//clr_output(LED2);
}
Exemple #23
0
int8_t led_get(struct packet_t *packet) {
	uart_putstr_P(PSTR("led_get()\r\n"));
	return set_data_int16(packet,get_output(LED1));
}
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);
	
}