mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-01 18:29:56 +00:00
74afd13171
* Re-implement PKI from #1509 co-authored-by: edinnen <ethanjdinnen@protonmail.com> * Set the key lengnth to actually make PKI work. * Remove unused variable and initialize keys to null * move printBytes() to meshUtils * Don't reset PKI key son reboot unless needed. * Remove double encryption for PKI messages * Cleanup encrypt logic * Add the MESHTASTIC_EXCLUDE_PKI option, and set it for minimal builds. Required for STM32 targets for now. * Use SHA-256 for PKI key hashing, and add MESHTASTIC_EXCLUDE_PKI_KEYGEN for STM32 * Fix a crash when node is null * Don't send PKI encrypted packets while licensed * use chIndex 8 for PKI * Don't be so clever, that you corrupt incoming packets * Pass on channel 8 for now * Typo * Lock keys once non-zero * We in fact need 2 scratch buffers, to store the encrypted bytes, unencrypted bytes, and decoded protobuf. * Lighter approach to retaining known key * Attach the public key to PKI decrypted packets in device memory * Turn PKI back off for STM32 :( * Don't just memcp over a protobuf * Don't PKI encrypt nodeinfo packets * Add a bit more memory logging around nodeDB * Use the proper macro to refer to NODENUM_BROADCAST * Typo fix * Don't PKI encrypt ROUTING (naks and acks) * Adds SecurityConfig protobuf * Add admin messages over PKI * Disable PKI for the WIO-e5 * Add MINIMUM_SAFE_FREE_HEAP macro and set to safe 1.5k * Add missed "has_security" * Add the admin_channel_enabled option * STM32 again * add missed configuration.h at the top of files * Add EXCLUDE_TZ and RTC * Enable PKI build on STM32 once again * Attempt 1 at moving PKI to aes-ccm * Fix buffers for encrypt/decrypt * Eliminate unused aes variable * Add debugging lines * Set hash to 0 for PKI * Fix debug lines so they don't print pointers. * logic fix and more debug * Rather important typo * Check for short packets before attempting decrypt * Don't forget to give cryptoEngine the keys! * Use the right scratch buffer * Cleanup * moar cleanups * Minor hardening * Remove some in-progress stuff * Turn PKI back off on STM32 * Return false * 2.5 protos * Sync up protos * Add initial cryptography test vector tests * re-add MINIMUM_SAFE_FREE_HEAP * Housekeeping and comment fixes * Add explanatory comment about weak dh25519 keys --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
67 lines
2.2 KiB
INI
67 lines
2.2 KiB
INI
; Common settings for ESP targes, mixin with extends = esp32_base
|
|
[esp32_base]
|
|
extends = arduino_base
|
|
custom_esp32_kind = esp32
|
|
platform = platformio/espressif32@6.7.0
|
|
|
|
build_src_filter =
|
|
${arduino_base.build_src_filter} -<platform/nrf52/> -<platform/stm32wl> -<platform/rp2040> -<mesh/eth/> -<mesh/raspihttp>
|
|
|
|
upload_speed = 921600
|
|
debug_init_break = tbreak setup
|
|
monitor_filters = esp32_exception_decoder
|
|
|
|
board_build.filesystem = littlefs
|
|
|
|
# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging.
|
|
# See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h
|
|
# This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h
|
|
build_unflags = -fno-lto
|
|
build_flags =
|
|
${arduino_base.build_flags}
|
|
-flto
|
|
-Wall
|
|
-Wextra
|
|
-Isrc/platform/esp32
|
|
-std=c++11
|
|
-DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG
|
|
-DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
|
|
-DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL
|
|
-DAXP_DEBUG_PORT=Serial
|
|
-DCONFIG_BT_NIMBLE_ENABLED
|
|
-DCONFIG_NIMBLE_CPP_LOG_LEVEL=2
|
|
-DCONFIG_BT_NIMBLE_MAX_CCCDS=20
|
|
-DCONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=5120
|
|
-DESP_OPENSSL_SUPPRESS_LEGACY_WARNING
|
|
-DSERIAL_BUFFER_SIZE=4096
|
|
-DLIBPAX_ARDUINO
|
|
-DLIBPAX_WIFI
|
|
-DLIBPAX_BLE
|
|
;-DDEBUG_HEAP
|
|
|
|
lib_deps =
|
|
${arduino_base.lib_deps}
|
|
${networking_base.lib_deps}
|
|
${environmental_base.lib_deps}
|
|
https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2
|
|
h2zero/NimBLE-Arduino@^1.4.2
|
|
https://github.com/dbSuS/libpax.git#7bcd3fcab75037505be9b122ab2b24cc5176b587
|
|
https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6
|
|
https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f
|
|
rweather/Crypto@^0.4.0
|
|
|
|
lib_ignore =
|
|
segger_rtt
|
|
ESP32 BLE Arduino
|
|
|
|
; leave this commented out to avoid breaking Windows
|
|
;upload_port = /dev/ttyUSB0
|
|
;monitor_port = /dev/ttyUSB0
|
|
|
|
; Please don't delete these lines. JM uses them.
|
|
;upload_port = /dev/cu.SLAB_USBtoUART
|
|
;monitor_port = /dev/cu.SLAB_USBtoUART
|
|
|
|
; customize the partition table
|
|
; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables
|
|
board_build.partitions = partition-table.csv |