Hello ArduPilot team,
I am working on UAV firmware compliance as per DGCA India requirements.
As part of certification, the Certifying Body (CB) has asked for clarification and evidence related to firmware integrity and signing.
I would like to understand whether ArduPilot already supports the following, or what the recommended approach would be.
1. Firmware code checksum
-
Is there a method in ArduPilot to calculate a checksum or hash (e.g., SHA-256) of the firmware code section?
-
Can this checksum be:
-
Generated at build time, and/or
-
Retrieved or verified at runtime (e.g., via MAVLink / GCS)?
-
2. Parameter / data checksum
-
Is there a way to calculate a checksum or hash over:
-
All parameters, or
-
A defined subset of critical / locked parameters?
-
-
Does ArduPilot expose any parameter checksum that can be fetched by a GCS while the vehicle is running?
3. GCS-side access
-
Is there any existing MAVLink message or API that exposes:
-
Firmware code checksum
-
Parameter / data checksum?
-
-
If not, what is the recommended method to implement this in a compliant way?
4. Signed firmware & integrity
-
When using signed firmware and locked parameters, does ArduPilot internally maintain:
-
A firmware integrity hash?
-
A parameter integrity hash?
-
-
If yes, are these values accessible for external verification or reporting?
5. Firmware signing algorithm (RSA vs ECDSA)
-
Does ArduPilot support RSA-based firmware signing?
-
If yes:
- What RSA key sizes are supported (e.g., RSA-2048 / RSA-3072)?
-
If no:
- Is RSA support planned, or is ECDSA the only supported signing mechanism?
Note:
Indian Certifying Authorities currently issue RSA-based Digital Signature Certificates (DSC).
ECDSA certificates are not provided, so RSA support is mandatory for DGCA compliance.
DGCA compliance requires:
-
Code checksum and data (parameter) checksum to be calculated separately
-
Firmware to be digitally signed using a CA-issued certificate
-
Submission of these values to the Certifying Body
-
A mechanism to verify that:
-
Firmware has not been modified
-
Critical parameters remain unchanged
-
This request is for regulatory compliance and certification purposes only.