Fixes for SD and modern NRF SDK
This commit is contained in:
parent
f3e0affe8f
commit
0cd7a12cd0
|
@ -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})
|
18
aes.c
18
aes.c
|
@ -2,23 +2,19 @@
|
||||||
#include "block.h"
|
#include "block.h"
|
||||||
|
|
||||||
#ifndef HOST_BUILD
|
#ifndef HOST_BUILD
|
||||||
#include "nrf.h"
|
#include <nrf_soc.h>
|
||||||
#else
|
#else
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#endif /* HOST_BUILD */
|
#endif /* HOST_BUILD */
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
static ecbdata_t g_ecbdata;
|
static nrf_ecb_hal_data_t g_ecbdata;
|
||||||
|
|
||||||
void aes128_init(const uint8_t *key) {
|
void aes128_init(const uint8_t *key) {
|
||||||
if (key != NULL) {
|
if (key != NULL) {
|
||||||
memmove(g_ecbdata.key, key, 16);
|
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) {
|
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_set_encrypt_key(g_ecbdata.key, 128, &key);
|
||||||
AES_encrypt(in, g_ecbdata.out, &key);
|
AES_encrypt(in, g_ecbdata.out, &key);
|
||||||
#else
|
#else
|
||||||
memcpy(g_ecbdata.in, in, 16);
|
memcpy(g_ecbdata.cleartext, in, 16);
|
||||||
NRF_ECB->TASKS_STARTECB = 1;
|
sd_ecb_block_encrypt(&g_ecbdata);
|
||||||
while (!NRF_ECB->EVENTS_ENDECB) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
NRF_ECB->EVENTS_ENDECB = 0;
|
|
||||||
#endif /* HOST_BUILD */
|
#endif /* HOST_BUILD */
|
||||||
return g_ecbdata.out;
|
return g_ecbdata.ciphertext;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HOST_BUILD
|
#ifdef HOST_BUILD
|
||||||
|
|
Loading…
Reference in New Issue