mirror of https://github.com/ArduPilot/ardupilot
GCS_MAVLink: support disabling signing with zero key
This commit is contained in:
parent
c96ed2b4c6
commit
4ba09671a4
|
@ -130,8 +130,28 @@ void GCS_MAVLINK::load_signing_key(void)
|
|||
signing.flags = MAVLINK_SIGNING_FLAG_SIGN_OUTGOING;
|
||||
signing.accept_unsigned_callback = accept_unsigned_callback;
|
||||
|
||||
status->signing = &signing;
|
||||
status->signing_streams = &signing_streams;
|
||||
// if timestamp and key are all zero then we disable signing
|
||||
bool all_zero = (signing.timestamp == 0);
|
||||
for (uint8_t i=0; i<sizeof(key.secret_key); i++) {
|
||||
if (signing.secret_key[i] != 0) {
|
||||
all_zero = false;
|
||||
}
|
||||
}
|
||||
|
||||
// enable signing on all channels
|
||||
for (uint8_t i=0; i<MAVLINK_COMM_NUM_BUFFERS; i++) {
|
||||
mavlink_status_t *cstatus = mavlink_get_channel_status((mavlink_channel_t)(MAVLINK_COMM_0 + i));
|
||||
if (cstatus != NULL) {
|
||||
if (all_zero) {
|
||||
// disable signing
|
||||
cstatus->signing = NULL;
|
||||
cstatus->signing_streams = NULL;
|
||||
} else {
|
||||
cstatus->signing = &signing;
|
||||
cstatus->signing_streams = &signing_streams;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue