#include #include #include #include #include #include "basic/basic.h" #include "lcd/render.h" #include "lcd/allfonts.h" #include "basic/ecc.h" #include "funk/nrf24l01p.h" #include "filesystem/ff.h" #include "filesystem/diskio.h" #include "funk/filetransfer.h" #include "lcd/print.h" FATFS FatFs[_VOLUMES]; /* File system object for logical drive */ /**************************************************************************/ uint8_t mac[5] = {1,2,3,2,1}; char *Px = "1c56d302cf642a8e1ba4b48cc4fbe2845ee32dce7"; char *Py = "45f46eb303edf2e62f74bd68368d979e265ee3c03"; char *Priv ="0e10e787036941e6c78daf8a0e8e1dbfac68e26d2"; void sendPublicKey(char *px, char *py) { uint8_t exp[2 + 4*NUMWORDS]; exp[0] = 'P'; bitstr_parse_export((char*)exp+2, px); exp[1] = 'X'; nrf_snd_pkt_crc(30, exp); delayms(10); exp[1] = 'Y'; bitstr_parse_export((char*)exp+2, py); nrf_snd_pkt_crc(30, exp); delayms(10); } void sendR(uint8_t *rx, uint8_t *ry) { uint8_t exp[2 + 4*NUMWORDS]; exp[0] = 'R'; for(int i=0; i<4*NUMWORDS; i++) exp[2+i] = rx[i]; exp[1] = 'X'; nrf_snd_pkt_crc(30, exp); delayms(10); exp[1] = 'Y'; for(int i=0; i<4*NUMWORDS; i++) exp[2+i] = ry[i]; nrf_snd_pkt_crc(30, exp); delayms(10); } int receiveKey(uint8_t type, uint8_t *x, uint8_t *y) { uint8_t buf[30]; uint8_t n; n = nrf_rcv_pkt_time(1000, 30, buf); if( n == 30 && buf[0] == type && buf[1] == 'X' ){ for(int i=0; i