summaryrefslogtreecommitdiff
path: root/usb-i2c-sl018
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-01-30 01:51:57 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-01-30 01:51:57 +0000
commit36be2115ad7cac6e8b9d314308c0fac5e8936102 (patch)
tree0735fc1e8b6c81752ecfac12aae5f5ab38e350ed /usb-i2c-sl018
parentname refactoring (diff)
some more cleanup
git-svn-id: https://svn.spreadspace.org/avr/trunk@100 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-i2c-sl018')
-rw-r--r--usb-i2c-sl018/tuer-rfid.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/usb-i2c-sl018/tuer-rfid.c b/usb-i2c-sl018/tuer-rfid.c
index 69d23cc..d225a0e 100644
--- a/usb-i2c-sl018/tuer-rfid.c
+++ b/usb-i2c-sl018/tuer-rfid.c
@@ -40,7 +40,7 @@
#define EEPROM_SIZE 1024
typedef uint8_t keyslot_t[8];
-keyslot_t EEMEM keyslots[EEPROM_SIZE/sizeof(keyslot_t)];
+keyslot_t EEMEM keystore[EEPROM_SIZE/sizeof(keyslot_t)];
#define TAG_STA_PIN PINB
#define TAG_STA_BIT 7
@@ -207,7 +207,7 @@ bool sl018_cmd_raw(const uint8_t* send_twi_buf, bool wait_for_answer)
return 0;
}
-bool sl018_reset()
+bool sl018_reset(void)
{
if(sl018_cmd_raw(SL018CMD_ComReset, 0)) {
fprintf(stdio, "I2C error\n\r");
@@ -240,7 +240,7 @@ bool sl018_cmd(const uint8_t* send_twi_buf)
-void flash_eeprom_from_stdio(void)
+void flash_keystore_from_stdio(void)
{
keyslot_t keyslot;
uint8_t keyslot_pos=0;
@@ -257,7 +257,7 @@ void flash_eeprom_from_stdio(void)
bytes_received--;
if (byte_pos == sizeof(keyslot)) {
byte_pos=0;
- eeprom_update_block(&keyslot,&keyslots[keyslot_pos],sizeof(keyslot));
+ eeprom_update_block(&keyslot,&keystore[keyslot_pos],sizeof(keyslot));
keyslot_pos++;
fprintf(stdio,".");
fflush(stdio);
@@ -269,13 +269,13 @@ void flash_eeprom_from_stdio(void)
led_off();
}
-void dump_eeprom_to_stdio(void)
+void dump_keystore_to_stdio(void)
{
keyslot_t keyslot;
uint8_t keyslot_pos=0;
for(keyslot_pos=0;keyslot_pos<EEPROM_SIZE/sizeof(keyslot);keyslot_pos++) {
- eeprom_read_block(&keyslot,&keyslots[keyslot_pos],sizeof(keyslot));
+ eeprom_read_block(&keyslot,&keystore[keyslot_pos],sizeof(keyslot));
for (uint8_t i=0; i< sizeof(keyslot); i++)
fprintf(stdio,"%02X",keyslot[i]);
fprintf(stdio,"\n\r");
@@ -306,13 +306,10 @@ void handle_stdio(uint8_t cmd)
fprintf(stdio, "ok\n\r");
break;
case 'e': //flash eeprom
- flash_eeprom_from_stdio();
+ flash_keystore_from_stdio();
break;
case 'd': //dump eeprom - this breaks security!
- dump_eeprom_to_stdio();
- break;
- case 's': //get eeprom size
- fprintf(stdio,"%d\n\r",EEPROM_SIZE);
+ dump_keystore_to_stdio();
break;
default: fprintf(stdio, "error, unknown command %02X '%c'\n\r",cmd, cmd); return;
}
@@ -340,25 +337,21 @@ uint8_t compare_keyslots(const keyslot_t a, const keyslot_t b)
bool check_card(const uint8_t * uid, uint8_t uid_len)
{
- keyslot_t card;
- keyslot_t eeprom_ks;
+ keyslot_t card, ks;
memset(card, 0, sizeof(card));
uid_len = uid_len > sizeof(keyslot_t) ? sizeof(keyslot_t) : uid_len;
for (uint8_t pos=0; pos<uid_len; pos++)
card[pos]=uid[uid_len-pos-1];
card[sizeof(keyslot_t) - 1]=generate_csum(card);
- keyslot_t * ks=keyslots;
bool valid=0;
for(uint8_t ks_num=0;ks_num<(EEPROM_SIZE/sizeof(card));ks_num++) {
- eeprom_read_block(&eeprom_ks,&ks[ks_num],sizeof(eeprom_ks));
- if(!compare_keyslots(card, eeprom_ks)) {
+ eeprom_read_block(&ks,&keystore[ks_num],sizeof(ks));
+ if(!compare_keyslots(card, ks)) {
valid=1;
// break; // this would break security (not const time)
}
}
- if(valid)
- return 1;
- return 0;
+ return valid;
}
void handle_card(void)