Skip to content

Commit 4a6ff65

Browse files
committed
feat: add packet signature policy schema
1 parent 1ae3be3 commit 4a6ff65

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

meshtastic/config.proto

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,6 +1286,28 @@ message Config {
12861286
}
12871287

12881288
message SecurityConfig {
1289+
/*
1290+
* Controls how the device authenticates remotely received mesh packets.
1291+
*/
1292+
enum PacketSignaturePolicy {
1293+
/*
1294+
* Prefer authenticated packets while retaining compatibility with unsigned packets from nodes not known to sign.
1295+
* This is the default and rejects unsigned, signable packets from nodes that have previously signed.
1296+
*/
1297+
PACKET_SIGNATURE_POLICY_BALANCED = 0;
1298+
1299+
/*
1300+
* Accept unsigned packets for maximum compatibility while still rejecting malformed or invalid signatures.
1301+
*/
1302+
PACKET_SIGNATURE_POLICY_COMPATIBLE = 1;
1303+
1304+
/*
1305+
* Accept only packets authenticated by a verified XEdDSA signature or successful PKI decryption.
1306+
* Unsigned, malformed, invalid, or unverifiable packets are ignored.
1307+
*/
1308+
PACKET_SIGNATURE_POLICY_STRICT = 2;
1309+
}
1310+
12891311
/*
12901312
* The public key of the user's device.
12911313
* Sent out to other nodes on the mesh to allow them to compute a shared secret key.
@@ -1324,6 +1346,11 @@ message Config {
13241346
* Allow incoming device control over the insecure legacy admin channel.
13251347
*/
13261348
bool admin_channel_enabled = 8;
1349+
1350+
/*
1351+
* Determines the packet signature policy applied to remotely received mesh packets.
1352+
*/
1353+
PacketSignaturePolicy packet_signature_policy = 9;
13271354
}
13281355

13291356
/*

meshtastic/mesh.proto

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2762,6 +2762,12 @@ message DeviceMetadata {
27622762
* (bitwise OR of ExcludedModules)
27632763
*/
27642764
uint32 excluded_modules = 12;
2765+
2766+
/*
2767+
* Indicates whether this firmware build includes XEdDSA packet signature verification.
2768+
* This is a read-only capability and must be false when XEdDSA is not compiled in.
2769+
*/
2770+
bool has_xeddsa = 14;
27652771
}
27662772

27672773
/*

0 commit comments

Comments
 (0)