diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ef55915 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,117 @@ +set(SRC aes.c + block.c + ckdf.c + cmac.c + ctr.c + eax.c) + +include_directories( + ${PROJECT_SOURCE_DIR} + ${NRF_SDK}/components/ble/ble_services/ble_ancs_c + ${NRF_SDK}/components/ble/ble_services/ble_ias_c + ${NRF_SDK}/components/libraries/pwm + ${NRF_SDK}/components/softdevice/${SOFTDEVICE_LOWER}/headers/nrf52 + ${NRF_SDK}/components/softdevice/${SOFTDEVICE_LOWER}/headers + ${NRF_SDK}/components/libraries/usbd/class/cdc/acm + ${NRF_SDK}/components/libraries/usbd/class/hid/generic + ${NRF_SDK}/components/libraries/usbd/class/msc + ${NRF_SDK}/components/libraries/usbd/class/hid + ${NRF_SDK}/modules/nrfx/hal + ${NRF_SDK}/components/libraries/log + ${NRF_SDK}/components/ble/ble_services/ble_gls + ${NRF_SDK}/components/libraries/fstorage + ${NRF_SDK}/components/libraries/mutex + ${NRF_SDK}/components/libraries/gpiote + ${NRF_SDK}/components/libraries/bootloader/ble_dfu + ${NRF_SDK}/components/libraries/serial/ + ${NRF_SDK}/components/boards + ${NRF_SDK}/components/ble/ble_advertising + ${NRF_SDK}/external/utf_converter + ${NRF_SDK}/components/ble/ble_services/ble_bas_c + ${NRF_SDK}/modules/nrfx/drivers/include + ${NRF_SDK}/components/libraries/experimental_task_manager + ${NRF_SDK}/components/ble/ble_services/ble_hrs_c + ${NRF_SDK}/components/libraries/queue + ${NRF_SDK}/components/libraries/pwr_mgmt + ${NRF_SDK}/components/ble/ble_dtm + ${NRF_SDK}/components/toolchain/cmsis/include + ${NRF_SDK}/components/ble/ble_services/ble_rscs_c + ${NRF_SDK}/components/ble/common + ${NRF_SDK}/components/ble/ble_services/ble_lls + ${NRF_SDK}/components/libraries/bsp + ${NRF_SDK}/components/ble/ble_services/ble_bas + ${NRF_SDK}/components/libraries/mpu + ${NRF_SDK}/components/libraries/experimental_section_vars + ${NRF_SDK}/components/ble/ble_services/ble_ans_c + ${NRF_SDK}/components/libraries/slip + ${NRF_SDK}/components/libraries/delay + ${NRF_SDK}/components/libraries/mem_manager + ${NRF_SDK}/components/libraries/csense_drv + ${NRF_SDK}/components/libraries/memobj + ${NRF_SDK}/components/ble/ble_services/ble_nus_c + ${NRF_SDK}/components/softdevice/common + ${NRF_SDK}/components/ble/ble_services/ble_ias + ${NRF_SDK}/components/libraries/usbd/class/hid/mouse + ${NRF_SDK}/components/libraries/low_power_pwm + ${NRF_SDK}/components/ble/ble_services/ble_dfu + ${NRF_SDK}/components/ble/ble_db_discovery + ${NRF_SDK}/components/ble/nrf_ble_gatt + ${NRF_SDK}/external/fprintf + ${NRF_SDK}/components/libraries/svc + ${NRF_SDK}/components/libraries/atomic + ${NRF_SDK}/components/libraries/atomic_flags + ${NRF_SDK}/components + ${NRF_SDK}/components/libraries/scheduler + ${NRF_SDK}/components/libraries/cli + ${NRF_SDK}/components/ble/ble_services/ble_lbs + ${NRF_SDK}/components/ble/ble_services/ble_hts + ${NRF_SDK}/components/libraries/crc16 + ${NRF_SDK}/components/libraries/util + ${NRF_SDK}/components/libraries/usbd/class/cdc + ${NRF_SDK}/components/libraries/csense + ${NRF_SDK}/components/libraries/balloc + ${NRF_SDK}/components/libraries/ecc + ${NRF_SDK}/components/libraries/hardfault + ${NRF_SDK}/components/ble/ble_services/ble_cscs + ${NRF_SDK}/components/libraries/hci + ${NRF_SDK}/components/libraries/timer + ${NRF_SDK}/integration/nrfx + ${NRF_SDK}/components/libraries/sortlist + ${NRF_SDK}/components/libraries/spi_mngr + ${NRF_SDK}/components/softdevice/${SOFTDEVICE_LOWER}/headers + ${NRF_SDK}/components/libraries/led_softblink + ${NRF_SDK}/components/libraries/sdcard + ${NRF_SDK}/modules/nrfx/mdk + ${NRF_SDK}/components/ble/ble_services/ble_cts_c + ${NRF_SDK}/components/ble/ble_services/ble_nus + ${NRF_SDK}/components/libraries/twi_mngr + ${NRF_SDK}/components/ble/ble_services/ble_hids + ${NRF_SDK}/components/libraries/strerror + ${NRF_SDK}/components/libraries/crc32 + ${NRF_SDK}/components/libraries/usbd/class/audio + ${NRF_SDK}/components/ble/peer_manager + ${NRF_SDK}/components/drivers_nrf/usbd + ${NRF_SDK}/components/libraries/ringbuf + ${NRF_SDK}/components/ble/ble_services/ble_tps + ${NRF_SDK}/components/ble/ble_services/ble_dis + ${NRF_SDK}/components/ble/nrf_ble_qwr + ${NRF_SDK}/components/libraries/gfx + ${NRF_SDK}/components/libraries/button + ${NRF_SDK}/modules/nrfx + ${NRF_SDK}/components/libraries/twi_sensor + ${NRF_SDK}/integration/nrfx/legacy + ${NRF_SDK}/components/libraries/usbd/class/hid/kbd + ${NRF_SDK}/external/segger_rtt + ${NRF_SDK}/components/libraries/atomic_fifo + ${NRF_SDK}/components/ble/ble_services/ble_lbs_c + ${NRF_SDK}/components/libraries/crypto + ${NRF_SDK}/components/ble/ble_racp + ${NRF_SDK}/components/libraries/fds + ${NRF_SDK}/components/ble/ble_services/ble_hrs + ${NRF_SDK}/components/ble/ble_services/ble_rscs + ${NRF_SDK}/components/libraries/usbd + ${NRF_SDK}/components/libraries/stack_guard + ${NRF_SDK}/components/libraries/log/src + ${NRF_SDK}/components/ble/nrf_ble_scan) + +add_library(nrf-crypto STATIC ${SRC}) \ No newline at end of file diff --git a/aes.c b/aes.c index cf6bd10..b5ad9a3 100644 --- a/aes.c +++ b/aes.c @@ -2,23 +2,19 @@ #include "block.h" #ifndef HOST_BUILD -#include "nrf.h" +#include #else #include #endif /* HOST_BUILD */ #include -static ecbdata_t g_ecbdata; +static nrf_ecb_hal_data_t g_ecbdata; void aes128_init(const uint8_t *key) { if (key != NULL) { memmove(g_ecbdata.key, key, 16); -#ifndef HOST_BUILD - NRF_ECB->ECBDATAPTR = (uint32_t)&g_ecbdata; -#endif /* HOST_BUILD */ } - return; } uint8_t *aes128_ecb(uint8_t const *const in) { @@ -27,14 +23,10 @@ uint8_t *aes128_ecb(uint8_t const *const in) { AES_set_encrypt_key(g_ecbdata.key, 128, &key); AES_encrypt(in, g_ecbdata.out, &key); #else - memcpy(g_ecbdata.in, in, 16); - NRF_ECB->TASKS_STARTECB = 1; - while (!NRF_ECB->EVENTS_ENDECB) { - ; - } - NRF_ECB->EVENTS_ENDECB = 0; + memcpy(g_ecbdata.cleartext, in, 16); + sd_ecb_block_encrypt(&g_ecbdata); #endif /* HOST_BUILD */ - return g_ecbdata.out; + return g_ecbdata.ciphertext; } #ifdef HOST_BUILD