/* * spreadspace avr utils * * * Copyright (C) 2013 Christian Pointner * Othmar Gsenger * * This file is part of spreadspace avr utils. * * spreadspace avr utils 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 * any later version. * * spreadspace avr utils 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 spreadspace avr utils. If not, see . */ #include "keystore.h" #include #include #include #include "usb_serial.h" #include "led.h" #define EEPROM_SIZE 1024 typedef uint8_t keyslot_t[8]; keyslot_t EEMEM keystore[EEPROM_SIZE/sizeof(keyslot_t)]; void flash_keystore_from_stdio(void) { keyslot_t ks; uint8_t byte_pos=0; printf("Flashing keys:\n\r"); fflush(stdout); for(uint8_t ks_pos=0;ks_pos 0) { ks[byte_pos++]=fgetc(stdin); bytes_received--; if (byte_pos == sizeof(ks)) { byte_pos=0; eeprom_update_block(&ks,&keystore[ks_pos],sizeof(ks)); ks_pos++; fputc('.', stdout); fflush(stdout); led_toggle(); } } } printf("\n"); fputc(0, stdout); led_off(); } void dump_keystore_to_stdio(void) { keyslot_t ks; for(uint8_t ks_pos=0;ks_pos