GUVWAF
893efe4f11
Always set the channel corresponding to a node ( #5287 )
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
2024-11-09 11:30:12 +08:00
GUVWAF
3bd3911913
Only PKC encrypt when packet originates from us ( #5267 )
2024-11-06 22:00:26 +01:00
Ben Meadors
f769c50fa5
More reduction ( #5256 )
...
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* Now with even fewer ings
* Ye
* Mo
* QMA6100PSensor
2024-11-04 19:15:59 -06:00
Ben Meadors
50dac38a1b
Pass#2: Lots more savings in logs and string reduction surgery ( #5251 )
...
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* Pass#2: Lots more savings in logs and string reduction surgery
* Don't need Thread suffix either
* Warn
2024-11-04 12:16:25 -06:00
Tom Fifield
276067065e
Log cleanups ( #5135 )
...
* Log cleanups
change log levels, shorten log messages, delete commented out logs
* Address comments from review
* Remove full stops
* EDEBUG --> DEBUG
2024-11-04 06:09:23 -06:00
GUVWAF
da7424a604
Improve ACK logic for responses and repeated packets ( #5232 )
...
* Don't send ACKs to responses over multiple hops
* Move repeated sending logic to `wasSeenRecently()`
* Add exception for simulator for duplicate packets from PhoneAPI
* Add short debug message
2024-11-03 06:21:45 -06:00
Technologyman00
bee474ee54
Spell check all Code ( #5228 )
...
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* Spelling Fixes
* More Spelling Errors
* More Spelling Checks
* fixed wording
* Undo mesh\generated changes
* Missed one file on readd
* missed second file
2024-11-03 09:25:05 +08:00
GUVWAF
2d4d36c605
Drop oldest packet from radio when queue is full ( #5212 )
...
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
And still notify Router
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-11-01 15:48:55 -05:00
Ben Meadors
936260fca3
Default rebroadcast mode for Router and Repeater to ignore problematic portnums ( #5178 )
...
* Default rebroadcast mode for Router and Repeater to ignore problematic portnums
* Verbiage
* IS_ONE_OF
2024-10-29 05:44:32 -05:00
Ben Meadors
4575352d8c
Initial NODENUM_BROADCAST_NO_LORA implementation with NeighborInfo module ( #5087 )
...
* Initial NODENUM_BROADCAST_NO_LORA implementation with NeighborInfo module
* isBroadcast
* Trunkt
2024-10-19 12:48:00 -05:00
Thomas Göttgens
05e4a639a1
remove newline from logging statements. ( #5022 )
...
remove newline from logging statements in code. The LOG_* functions will now magically add it at the end.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-10-14 15:11:43 +11:00
GUVWAF
d55c08d5cd
Uplink DMs not to us if MQTT encryption enabled ( #5025 )
...
* Uplink DMs not to us if MQTT encryption enabled
* Only really need to try uplinking encrypted packet if MQTT encryption is enabled
* Add log about publishing nothing when packet is not decrypted and encryption_enabled is false
* Improve comment
2024-10-10 15:11:58 -05:00
Jonathan Bennett
7ff4bafe22
Disentangle NodeDB from the CryptoEngine ( #5013 )
2024-10-10 18:14:11 +08:00
Jonathan Bennett
ad8747d914
Possibly forward PKC DMs over MQTT ( #5012 )
2024-10-09 17:56:08 -05:00
GUVWAF
ddd4a45bc3
Ignore packets coming from the broadcast address ( #4998 )
2024-10-09 11:59:00 +08:00
GUVWAF
673fe294f3
Add rxDupe
, txRelay
and txRelayCanceled
to LocalStats ( #4936 )
...
* Introduce `isFromUs()` and `isToUs()`
* Add rxDupe, txRelay and txRelayCanceled to LocalStats
2024-10-04 06:28:51 -05:00
Ben Meadors
00f15459ec
Userprefs prefix macros for clarity and consistency ( #4923 )
...
* Convert userprefs macros to prefixed ones for clarity
* Fix key
2024-10-02 06:14:24 -05:00
Ben Meadors
18f12584ab
Consolidate and shrink down the re-used strings in logs ( #4907 )
...
* Consolidate and shrink down the re-used strings in GPS
* Condense all the things
---------
Co-authored-by: GUVWAF <thijs@havinga.eu>
2024-10-01 15:38:36 -05:00
Ben Meadors
dc55d7dd98
Trunk it
2024-09-30 18:07:11 -05:00
TheMalkavien
4794cdb120
Fix (some ?) memory alignment issues on the crypto part - resulting in crashes or strange behavior ( #4867 )
...
* Replace multiple potentially non aligned pointer dereference (#4855 )
First step to fix some Crypto crashes or strange behaviors
* Makes the two Crypto byte buffers aligned (#4855 )
Fix #4855 , and probably multiple Crypto problems depending on hardware
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: GUVWAF <78759985+GUVWAF@users.noreply.github.com>
2024-09-26 17:44:11 -05:00
Jonathan Bennett
fa1cc59841
Rename message length headers and set payload max to 255 ( #4827 )
...
* Rename message length headers and set payload max to 255
* Add MESHTASTIC_PKC_OVERHEAD
* compare to MESHTASTIC_HEADER_LENGTH
---------
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2024-09-23 09:20:32 -05:00
Jonathan Bennett
18aac0ba25
Consider the LoRa header when checking packet length
2024-09-22 16:09:46 -05:00
Jonathan Bennett
a967dd52f3
More useful PKC logging ( #4742 )
2024-09-17 06:31:39 -05:00
Jonathan Bennett
ff8baa1c85
Don't use PKC on a non-primary channel unless specifically requested ( #4715 )
...
* Don't use PKC on a non-primary channel unless specifically requested
* Don't change from channel 0 if we can send a PKC packet.
2024-09-15 09:26:43 -05:00
Jonathan Bennett
bf34329033
Adds the data bitfield and ok_to_mqtt bit ( #4643 )
...
* Don't filter PKI packets just for being encrypted.
* Add ok_to_mqtt config and bit
* Bitfield
* Adjust dontmqttmebro logic.
* Manipulate bitfield only in router.cpp
* Want_ack is not want_response
* Bitfield macros
* Use new Bitfield macro in MQTT.cpp
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-09-07 18:21:59 -05:00
Jonathan Bennett
b71e12c5e5
Phone admin work ( #4599 )
...
* Don't throw an error on the sessionkey admin tag
* Throw an error on packet sent to 0
2024-08-31 15:04:35 -05:00
GUVWAF
eb071ec80d
Set high priority for text messages ( #4592 )
2024-08-30 14:54:44 -05:00
Jonathan Bennett
b9a8683a4b
Mask out random bits when doing queue ordering ( #4561 )
...
* Mask out random bits when doing queue ordering
* Parenthesis
2024-08-26 15:48:47 -05:00
Jonathan Bennett
23e3e6db92
Add 4 bytes of random nonce to PKI ( #4493 )
2024-08-18 07:23:56 -05:00
Jonathan Bennett
cec8233cd1
Don't attempt PKI decryption on broadcast packets
2024-08-16 19:33:06 -05:00
Jonathan Bennett
1be635a797
Merge remote-tracking branch 'origin/master' into 2.5-changes
2024-08-14 19:01:06 -05:00
Christopher Hoover
181325103a
Improves ignore messages in Router.cpp ( #4442 )
...
Signed-off-by: Christopher Hoover <ch@murgatroid.com>
.
2024-08-14 07:51:32 -05:00
Jonathan Bennett
8ce1c07c4e
Check for blank key coming from client
2024-08-13 22:34:21 -05:00
Jonathan Bennett
b528290fde
Failure returns PKI_FAILED message if client requested PKI
2024-08-13 18:45:40 -05:00
Jonathan Bennett
80fd121d87
Add meshtastic_Routing_Error_NO_CHANNEL
2024-08-13 18:45:40 -05:00
Jonathan Bennett
f3fa8daedf
Revert "Add Routing_Error_NONE"
...
This reverts commit e1985fa0f9
.
2024-08-13 18:45:40 -05:00
Jonathan Bennett
308c0a6bb8
Add Routing_Error_NONE
2024-08-13 18:45:40 -05:00
Jonathan Bennett
e7dfabc20f
Exclude position packets from PKI (at least for now)
2024-08-13 18:43:19 -05:00
Jonathan Bennett
c86a3200f0
Add missed function rename. (Thanks VSCode)
2024-08-13 18:43:19 -05:00
Jonathan Bennett
c3aa56ef30
Refactor platform cryptography, add tests
2024-08-13 18:43:19 -05:00
Jonathan Bennett
b726792efd
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-13 18:43:19 -05:00
Ben Meadors
95682c9095
Add ClientNotification hello world
2024-08-13 18:43:19 -05:00
Jonathan Bennett
c6a9edf8c7
Move printBytes to meshUtils ( #4424 )
2024-08-09 01:43:13 -05:00
Tom Fifield
02ae24b6fa
Remove outdated comments ( #4417 )
...
These comments from four years ago no longer reflect how things
work.
2024-08-08 20:08:14 -05:00
Ben Meadors
bcdda4de8a
Missed some includes of userPrefs that would allow behavior we don't want
2024-07-31 08:53:59 -05:00
Ben Meadors
29fe6e7448
Event mode: Block problematic portnums of traffic ( #4362 )
2024-07-31 05:52:17 -05:00
Ben Meadors
59cc57fc29
Event mode: Enforce reliable hop limit and disallow default public MQTT ( #4343 )
...
* Event mode: Enforce reliable hop limit
* Event mode: Short circuit wantsLink on MQTT for default broker address
* Just enforce at channels level since everything uses this
* For events never forward packets with excessive hop_limit
* In EVENT_MODE, don't respond with hop_limit set more then the configured max.
* Correct hop_start when correcting hop_limit in event mode.
* Make EVENT_MODE work from userPrefs.h
* Event mode: Disallow Router or Repeater roles
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2024-07-29 20:16:47 -05:00
Ben Meadors
811a9ae261
Macro to trace log all MeshPackets as JSON ( #4336 )
...
* Macro to trace log all MeshPackets as JSON
* Comment
* Add trace logging to file for native target
* bytes to hex
* Add time_ms
---------
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2024-07-28 19:49:10 -05:00
Jonathan Bennett
300c3d32aa
Just a bit of security hygiene. ( #4313 )
...
* Make sure to call randomSeed() on esp32
* Randomize the top 22 bits of the Message ID
* Make it clear that we are not calling randomSeed() on purpose
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-07-23 11:52:14 -05:00
Ben Meadors
9c46bdad1a
New new BLE logging characteristic with LogRecord protos ( #4220 )
...
* New UUID
* New log radio characteristic with LogRecord protobuf
* LogRecord
* Merge derp
* How did you get there
* Trunk
* Fix length
* Remove assert
2024-07-03 16:29:07 -05:00