Merge pull request #11134 from RCGV1/codex/verify-packet-auth-config-docker
fix(security): round-trip packet policy defaults
This commit is contained in:
@@ -1138,9 +1138,9 @@ void AdminModule::handleSetConfig(const meshtastic_Config &c, bool fromOthers)
|
|||||||
}
|
}
|
||||||
#if MESHTASTIC_EXCLUDE_PKI || MESHTASTIC_EXCLUDE_XEDDSA
|
#if MESHTASTIC_EXCLUDE_PKI || MESHTASTIC_EXCLUDE_XEDDSA
|
||||||
if (incoming.packet_signature_policy !=
|
if (incoming.packet_signature_policy !=
|
||||||
meshtastic_Config_SecurityConfig_PacketSignaturePolicy_PACKET_SIGNATURE_POLICY_BALANCED) {
|
meshtastic_Config_SecurityConfig_PacketSignaturePolicy_PACKET_SIGNATURE_POLICY_COMPATIBLE) {
|
||||||
incoming.packet_signature_policy =
|
incoming.packet_signature_policy =
|
||||||
meshtastic_Config_SecurityConfig_PacketSignaturePolicy_PACKET_SIGNATURE_POLICY_BALANCED;
|
meshtastic_Config_SecurityConfig_PacketSignaturePolicy_PACKET_SIGNATURE_POLICY_COMPATIBLE;
|
||||||
const char *warning = "Packet authenticity policy is unavailable on this firmware build";
|
const char *warning = "Packet authenticity policy is unavailable on this firmware build";
|
||||||
LOG_WARN(warning);
|
LOG_WARN(warning);
|
||||||
sendWarning(warning);
|
sendWarning(warning);
|
||||||
|
|||||||
@@ -304,6 +304,26 @@ void test_local_security_config_keeps_private_key(void)
|
|||||||
admin->drainReply();
|
admin->drainReply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A local client writes this device-owned policy, then receives the same value in its next config read.
|
||||||
|
void test_local_security_config_round_trips_packet_signature_policy(void)
|
||||||
|
{
|
||||||
|
meshtastic_Config set = meshtastic_Config_init_zero;
|
||||||
|
set.which_payload_variant = meshtastic_Config_security_tag;
|
||||||
|
set.payload_variant.security = config.security;
|
||||||
|
set.payload_variant.security.packet_signature_policy =
|
||||||
|
meshtastic_Config_SecurityConfig_PacketSignaturePolicy_PACKET_SIGNATURE_POLICY_STRICT;
|
||||||
|
admin->handleSetConfig(set, false);
|
||||||
|
|
||||||
|
meshtastic_MeshPacket req = makeGetConfigRequest(0);
|
||||||
|
admin->handleGetConfig(req, meshtastic_AdminMessage_ConfigType_SECURITY_CONFIG);
|
||||||
|
|
||||||
|
meshtastic_Config_SecurityConfig sec;
|
||||||
|
TEST_ASSERT_TRUE(decodeSecurityFromReply(admin->reply(), sec));
|
||||||
|
TEST_ASSERT_EQUAL(meshtastic_Config_SecurityConfig_PacketSignaturePolicy_PACKET_SIGNATURE_POLICY_STRICT,
|
||||||
|
sec.packet_signature_policy);
|
||||||
|
admin->drainReply();
|
||||||
|
}
|
||||||
|
|
||||||
// Decode the NetworkConfig / MqttConfig out of the response a handler queued in myReply.
|
// Decode the NetworkConfig / MqttConfig out of the response a handler queued in myReply.
|
||||||
static bool decodeNetworkFromReply(meshtastic_MeshPacket *reply, meshtastic_Config_NetworkConfig &out)
|
static bool decodeNetworkFromReply(meshtastic_MeshPacket *reply, meshtastic_Config_NetworkConfig &out)
|
||||||
{
|
{
|
||||||
@@ -652,6 +672,7 @@ void setup()
|
|||||||
RUN_TEST(test_session_gate_accepts_key_from_a_get_response);
|
RUN_TEST(test_session_gate_accepts_key_from_a_get_response);
|
||||||
RUN_TEST(test_remote_security_config_omits_private_key);
|
RUN_TEST(test_remote_security_config_omits_private_key);
|
||||||
RUN_TEST(test_local_security_config_keeps_private_key);
|
RUN_TEST(test_local_security_config_keeps_private_key);
|
||||||
|
RUN_TEST(test_local_security_config_round_trips_packet_signature_policy);
|
||||||
RUN_TEST(test_remote_network_config_omits_wifi_psk);
|
RUN_TEST(test_remote_network_config_omits_wifi_psk);
|
||||||
RUN_TEST(test_local_network_config_keeps_wifi_psk);
|
RUN_TEST(test_local_network_config_keeps_wifi_psk);
|
||||||
RUN_TEST(test_remote_mqtt_config_omits_password);
|
RUN_TEST(test_remote_mqtt_config_omits_password);
|
||||||
|
|||||||
Reference in New Issue
Block a user