firmware/src
Jonathan Bennett 74afd13171
Re-implement PKI from #1509 (#4379)
* 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>
2024-08-10 13:45:41 -05:00
..
buzz
concurrency
detect Make STM compile again and update toolchain. (#2960) 2024-07-25 20:16:21 -05:00
Fusion
gps Adds MESHTASTIC_EXCLUDE_TZ option (#4423) 2024-08-09 00:52:31 -05:00
graphics "Scan and Select" input for Canned Messages (#4365) 2024-08-06 17:16:56 -05:00
input "Scan and Select" input for Canned Messages (#4365) 2024-08-06 17:16:56 -05:00
mesh Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
modules Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
mqtt Make SPI frequency and TOPHONE queue size configurable on Native (#4369) 2024-08-01 19:29:49 -05:00
nimble Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
platform Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
serialization Macro to trace log all MeshPackets as JSON (#4336) 2024-07-28 19:49:10 -05:00
AccelerometerThread.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
airtime.cpp
airtime.h
AmbientLightingThread.h
AudioThread.h
BluetoothCommon.cpp Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
BluetoothCommon.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
ButtonThread.cpp Make SPI frequency and TOPHONE queue size configurable on Native (#4369) 2024-08-01 19:29:49 -05:00
ButtonThread.h Cleanup - remove unused defines. (#4353) 2024-07-31 06:56:06 -05:00
commands.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
configuration.h Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
DebugConfiguration.cpp Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
DebugConfiguration.h Remove LED_INVERTED, see below for why ;-) (#4382) 2024-08-05 06:02:32 -05:00
DisplayFormatters.cpp
DisplayFormatters.h
error.h
freertosinc.h Make STM compile again and update toolchain. (#2960) 2024-07-25 20:16:21 -05:00
FSCommon.cpp Make STM compile again and update toolchain. (#2960) 2024-07-25 20:16:21 -05:00
FSCommon.h Make STM compile again and update toolchain. (#2960) 2024-07-25 20:16:21 -05:00
GpioLogic.cpp Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
GpioLogic.h Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
GPSStatus.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
Led.cpp Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
Led.h Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
main.cpp Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
main.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
memGet.cpp
memGet.h
meshUtils.cpp Move printBytes to meshUtils (#4424) 2024-08-09 01:43:13 -05:00
meshUtils.h Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
network-stubs.cpp
NodeStatus.h
Observer.cpp
Observer.h
Power.cpp Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
power.h Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
PowerFSM.cpp Add more exclude options to save program ram/flash (#4408) 2024-08-06 18:48:55 -05:00
PowerFSM.h Add more exclude options to save program ram/flash (#4408) 2024-08-06 18:48:55 -05:00
PowerFSMThread.h Add more exclude options to save program ram/flash (#4408) 2024-08-06 18:48:55 -05:00
PowerMon.cpp Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
PowerMon.h Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
PowerStatus.h
RedirectablePrint.cpp Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
RedirectablePrint.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
RF95Configuration.h
SafeFile.cpp bug #4184: fix config file loss due to filesystem write errors (#4397) 2024-08-06 13:59:06 -05:00
SafeFile.h bug #4184: fix config file loss due to filesystem write errors (#4397) 2024-08-06 13:59:06 -05:00
SerialConsole.cpp Re-implement PKI from #1509 (#4379) 2024-08-10 13:45:41 -05:00
SerialConsole.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
shutdown.h Revert "Sync Wio lr1110 refresh with master (#4288)" 2024-07-22 15:30:36 +02:00
sleep.cpp Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
sleep.h Finish powermon/powerstress (#4230) 2024-08-06 12:35:54 -05:00
SPILock.cpp
SPILock.h
Status.h
target_specific.h
xmodem.cpp Make STM compile again and update toolchain. (#2960) 2024-07-25 20:16:21 -05:00
xmodem.h Make STM compile again and update toolchain. (#2960) 2024-07-25 20:16:21 -05:00