-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RAS-A Signed Packet Support #31
Conversation
Thanks, looks fine
|
|
Hope you don't mind, I also added a note to the readme about how to run the tests. I've never used doctest before, and took me a minute to figure out how to actually do it, so hopefully this can save someone else time in the future. |
If you have signing enabled on a NetworkRuntime, would ever not want to |
Depends. The standard is inspecific. To quote RAS-A:
So the rejection needs to be done at the application level and it is not a decision libmav can make. You could make an argument that libmav should always at least try to validate? We could perhaps have libmav always do the calculation and then set a field on the message if invalid, and then the application could choose to check the validity field if it wants. |
Kudos, SonarCloud Quality Gate passed! 0 Bugs No Coverage information |
@ThomasDebrunner Is there some way you can configure SonarCloud to ignore |
527ff25
to
6bdd059
Compare
@stuart-auterion Just rebase this to main - let's see what sonarcloud says. I guess it should be possible to exclude picohash. I think it looks good outside of that |
99b4b64
to
fb34435
Compare
+ Add (and use) constants for packet signature field sizes + Rework Network API into two simpler functions for enable/disable signing + Remove individual Message sign() function and integrate into finalize() + Add errors when accessing the signature of an unfinalized message + Add a default timestamp function + Update unit tests accordingly
fb34435
to
935ae37
Compare
Hmmm, looks like its still tracking coverage on picosha. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! Thanks for adding the docs on running the unit tests as well.
Although, this is still an issue. |
Yeah, I asked Jakob, maybe he knows why |
Co-authored-by: Jakob Widauer <[email protected]>
Aw bummer. Looks like I'm still 0.8% short on new code coverage. I'll address that when I can. Thanks for fixing sonarcloud! |
@ThomasDebrunner should be ready now. |
Merged, thanks @stuart-auterion |
I expect this one to be controversial... but here goes. QGC-Gov is required to be RAS-A compliant. This means we should support the standard as written, and as "THE" RAS-A ground station, we need to include even the optional parts of RAS-A. I understand there are differing opinions about the usefulness of the signed packets portions of RAS-A, but regardless it is an official part of the standard. Since we are using libmav to handle all our low-level MAVlink packet encoding/decoding, we need libmav to support this.
Happy to provide details on or discuss design choices here if required. I can also walk through testing steps used to validate this. Or happy to discuss any of the above in more detail.