From ec956a326364b3c745818a676eb3185773cdd81b Mon Sep 17 00:00:00 2001 From: schneider Date: Sat, 23 Jul 2011 15:35:00 +0200 Subject: [PATCH] working encrypted filetransfer. --- firmware/applications/vcard.c | 16 +++++++++++++--- firmware/funk/filetransfer.c | 4 ++++ firmware/funk/rftransfer.c | 11 ++++++++--- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/firmware/applications/vcard.c b/firmware/applications/vcard.c index 6cbda10..1cab24b 100644 --- a/firmware/applications/vcard.c +++ b/firmware/applications/vcard.c @@ -215,8 +215,10 @@ void receiveFile(void) } lcdRefresh(); #else - uint32_t k[4] = {0xffff,0xffff,0xffff,0xffff}; - if( filetransfer_receive(mac,(uint32_t*)k) ) + //uint32_t k[4] = {0xffff,0xffff,0xffff,0xffff}; + + //k[0] = 0; k[1] = 0; k[2] = 0; k[3] = 0; + if( filetransfer_receive(mac,(uint32_t*)k1) ) continue; lcdPrintln("Done"); lcdPrintln("Right=OK"); @@ -270,7 +272,8 @@ void sendFile(char *filename) #else delayms(3000); uint32_t k[4] = {0xffff,0xffff,0xffff,0xffff}; - filetransfer_send((uint8_t*)filename, 0, mac, (uint32_t*)k); + k[0] = 0; k[1] = 0; k[2] = 0; k[3] = 0; + filetransfer_send((uint8_t*)filename, 0, mac, (uint32_t*)k1); lcdPrintln("Done"); lcdPrintln("Right=OK"); lcdPrintln("Left=Retry"); @@ -340,6 +343,13 @@ void main_vcard(void) { lcdPrintln("Done"); lcdRefresh(); }else if(key==BTN_RIGHT){ + DoString(0,8,"MSC Enabled."); + lcdDisplay(); + usbMSCInit(); + while(!getInputRaw())delayms(10); + DoString(0,16,"MSC Disabled."); + usbMSCOff(); + } //encryption_decryption_demo("This is encrypted", diff --git a/firmware/funk/filetransfer.c b/firmware/funk/filetransfer.c index aa8618a..683a000 100644 --- a/firmware/funk/filetransfer.c +++ b/firmware/funk/filetransfer.c @@ -17,6 +17,7 @@ int filetransfer_send(uint8_t *filename, uint16_t size, FRESULT res; UINT readbytes; + if( size > MAXSIZE ) return 1; //File to big @@ -25,6 +26,9 @@ int filetransfer_send(uint8_t *filename, uint16_t size, return res; //res = f_read(&file, (char *)buf, size, &readbytes); + for(uint16_t i=0; i> 8; buf[4] = rand & 0xFF; - for(i=5; i0; i++,size--){ + for(i=5; i0; i++,size--){ buf[i] = *data++; } index++; @@ -45,6 +45,7 @@ void rftransfer_send(uint16_t size, uint8_t *data) //nrf_snd_pkt_crc(5,buf); //crc packet nrf_snd_pkt_crc(32,buf); //setup packet delayms(20); + lcdPrint("crc="); lcdPrintIntHex(crc);lcdPrintln("");lcdRefresh(); } uint16_t rftransfer_receive(uint8_t *buffer, uint16_t maxlen, uint16_t timeout) @@ -67,7 +68,8 @@ uint16_t rftransfer_receive(uint8_t *buffer, uint16_t maxlen, uint16_t timeout) pos = 0; if( size <= maxlen ){ lcdClear(); - lcdPrintln("got l"); lcdRefresh(); + lcdPrint("got l="); lcdPrintInt(size); + lcdPrintln(""); lcdRefresh(); state = 1; } } @@ -79,7 +81,7 @@ uint16_t rftransfer_receive(uint8_t *buffer, uint16_t maxlen, uint16_t timeout) lcdPrintln(" in seq"); lcdRefresh(); //if( (pos + n - 5)