diff --git a/src/eac.c b/src/eac.c index 9492aac..1821516 100644 --- a/src/eac.c +++ b/src/eac.c @@ -21,6 +21,11 @@ #include "mbedtls/cmac.h" #include "asn1.h" #include "apdu.h" +#ifdef ENABLE_EMULATION +#include "usb/emulation/emulation.h" +#else +#include "usb/usb.h" +#endif static uint8_t sm_nonce[8]; static uint8_t sm_kmac[16]; @@ -144,7 +149,7 @@ int sm_wrap() { if (sm_indicator == 0) { return PICOKEY_OK; } - uint8_t input[2048]; + uint8_t input[USB_BUFFER_SIZE]; size_t input_len = 0; memset(input, 0, sizeof(input)); mbedtls_mpi ssc; @@ -232,7 +237,7 @@ void sm_update_iv() { } int sm_verify() { - uint8_t input[2048]; + uint8_t input[USB_BUFFER_SIZE]; memset(input, 0, sizeof(input)); uint16_t input_len = 0; int r = 0; diff --git a/src/fs/flash.c b/src/fs/flash.c index b5c8bf3..e71a985 100644 --- a/src/fs/flash.c +++ b/src/fs/flash.c @@ -22,7 +22,11 @@ #if !defined(PICO_PLATFORM) #define XIP_BASE 0 -#define FLASH_SECTOR_SIZE 4096 +#ifdef ENABLE_EMULATION +#define FLASH_SECTOR_SIZE 0x4000 +#else +#define FLASH_SECTOR_SIZE 0x1000 +#endif #ifdef ESP_PLATFORM uint32_t FLASH_SIZE_BYTES = (1 * 1024 * 1024); #else diff --git a/src/fs/low_flash.c b/src/fs/low_flash.c index 3c72333..e2f7c6a 100644 --- a/src/fs/low_flash.c +++ b/src/fs/low_flash.c @@ -58,7 +58,11 @@ #endif #include "queue.h" #endif - #define FLASH_SECTOR_SIZE 4096 + #ifdef ENABLE_EMULATION + #define FLASH_SECTOR_SIZE 0x4000 + #else + #define FLASH_SECTOR_SIZE 0x1000 + #endif #define XIP_BASE 0 int fd_map = 0; uint8_t *map = NULL; diff --git a/src/usb/emulation/emulation.h b/src/usb/emulation/emulation.h index a926d81..75c90dc 100644 --- a/src/usb/emulation/emulation.h +++ b/src/usb/emulation/emulation.h @@ -24,7 +24,7 @@ #include "board.h" #include -#define USB_BUFFER_SIZE 2048 +#define USB_BUFFER_SIZE 4096 extern int emul_init(char *host, uint16_t port); extern uint8_t emul_rx[USB_BUFFER_SIZE]; extern uint16_t emul_rx_size, emul_tx_size; diff --git a/src/usb/usb.h b/src/usb/usb.h index 962709b..c34ee48 100644 --- a/src/usb/usb.h +++ b/src/usb/usb.h @@ -106,7 +106,9 @@ extern void driver_exec_finished_emul(uint8_t itf, uint16_t size_next); extern void driver_exec_finished_cont_emul(uint8_t itf, uint16_t size_next, uint16_t offset); #endif +#ifndef USB_BUFFER_SIZE #define USB_BUFFER_SIZE 2048 +#endif PACK( typedef struct {