Skip to content

Add MAVLink 2 message signing support#14169

Merged
DonLakeFlyer merged 1 commit intomavlink:masterfrom
DonLakeFlyer:mavlink-signing-support
Mar 20, 2026
Merged

Add MAVLink 2 message signing support#14169
DonLakeFlyer merged 1 commit intomavlink:masterfrom
DonLakeFlyer:mavlink-signing-support

Conversation

@DonLakeFlyer
Copy link
Copy Markdown
Collaborator

@DonLakeFlyer DonLakeFlyer commented Mar 19, 2026

Fixes #14160

Summary

Implements MAVLink 2 message signing support with named key management, per-vehicle auto-detection, and a toolbar indicator.

Key Features

  • Named signing key storage - Passphrases are SHA-256 hashed to 32-byte keys, stored via QSettings. Custom builds can seed default keys via QSettings.
  • Auto-detection - When QGC receives signed packets from a vehicle, it automatically tries each stored key. On match, signing is configured on the link with no manual action needed.
  • Enable/Disable per vehicle - Send SETUP_SIGNING to enable a key on a vehicle, or send an all-zero key to disable. Messages are sent twice for reliability.
  • Toolbar indicator - Lock icon (green when signed) in the vehicle toolbar with full key management in expanded view.
  • Shared UI - SigningKeyManager.qml used by both toolbar indicator and Telemetry settings.
  • Active key tracking - Vehicle tracks which key is active with proper signal emission for QML bindings.
  • Key deletion protection - Cannot delete a key in use by any connected vehicle.

Tests

  • SigningTest (5 unit tests): initSigning, checkSigningLinkId, createSetupSigning, verifySignature, tryDetectKey
  • MockLinkSigningTest (3 integration tests): sendSetupSigning, sendDisableSigning, signingKeysAddRemove with QSignalSpy

Documentation

  • New MAVLink Signing section in Fly View toolbar docs
  • New MAVLink 2 Signing section in Telemetry settings docs
  • Renamed mavlink.md to telemetry.md to match current UI naming

Settings:
Screenshot 2026-03-19 at 2 35 16 PM

Toolbar:
Screenshot 2026-03-19 at 2 35 37 PM

@DonLakeFlyer
Copy link
Copy Markdown
Collaborator Author

@hamishwillee FYI. I believe this covers your complaints.

This comment was marked as resolved.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 19, 2026

Build Results

Platform Status

Platform Status Details
Linux Failed View
Windows Passed View
MacOS Passed View
Android Passed View

Some builds failed.

Pre-commit

Check Status Details
pre-commit Failed (non-blocking) View

Pre-commit hooks: 4 passed, 34 failed, 7 skipped.

Artifact Sizes

Artifact Size
QGroundControl 320.63 MB
QGroundControl 330.55 MB
QGroundControl-installer-AMD64 150.86 MB
QGroundControl-installer-AMD64-ARM64 77.09 MB
QGroundControl-installer-ARM64 78.05 MB
QGroundControl-mac 184.57 MB
QGroundControl-windows 184.60 MB
No baseline available for comparison---
Updated: 2026-03-20 03:52:09 UTC • Triggered by: Android

@DonLakeFlyer DonLakeFlyer force-pushed the mavlink-signing-support branch from e590e09 to 992e662 Compare March 20, 2026 00:57
@DonLakeFlyer DonLakeFlyer requested a review from Copilot March 20, 2026 00:58

This comment was marked as outdated.

This comment was marked as outdated.

This comment was marked as resolved.

Implement MAVLink 2 message signing with named key management, per-vehicle
auto-detection from incoming signed packets, and toolbar indicator.

Key features:
- Named signing key storage (SHA-256 hashed passphrases) via MAVLinkSigningKeys
- Auto-detect signing key from incoming signed packets (no manual setup needed)
- Send SETUP_SIGNING to enable/disable signing on vehicles
- Toolbar indicator showing signing status with full key management UI
- Shared SigningKeyManager QML component for settings and indicator
- Track active key name per vehicle with proper signal emission

Includes unit tests (SigningTest: 5 tests) and integration tests
(MockLinkSigningTest: 3 tests) with QSignalSpy verification.

Also renames docs/settings_view/mavlink.md to telemetry.md to match
current UI naming.

Fixes mavlink#14160
@DonLakeFlyer DonLakeFlyer force-pushed the mavlink-signing-support branch from 2216fd4 to 81ee9fe Compare March 20, 2026 03:03
@DonLakeFlyer DonLakeFlyer merged commit 561feaf into mavlink:master Mar 20, 2026
25 of 26 checks passed
@DonLakeFlyer DonLakeFlyer deleted the mavlink-signing-support branch March 20, 2026 03:56
@hamishwillee
Copy link
Copy Markdown
Collaborator

@hamishwillee FYI. I believe this covers your complaints.

@DonLakeFlyer Very nice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PX4 Mavlink Signing Issues

3 participants