The OSNMA message receiver has been refactored to correct errors. It introduces new functions to process local time verification as well as DSM blocks. Flow of information between these functions is also changed, to improve readabilty and responsibility. Several TODO comments have been addressed as part of the changes. This commit also includes minor changes to the unit tests and system parameters classes.
Introduced unit tests in `gnss_crypto_test.cc` to verify the functionality set_public_key and verify_signature. The added tests check the correctness of signature verification and public key import processes. Further minor changes
The time difference limit between local time and OSNMA subframe time has been increased from 15 to 120. Additionally, key length retrieval condensed. Minor adjustments in tesla key, padding of bits, and success messaging during data verification.
Refactored the code to use Galileo_Utc_Model's GST_to_UTC_time function.
Last two reverts are because I wrongly made the class static plus other brilliant ideas that turned out to be garbage.
In osnma_msg_receiver, the time synchronization between OSNMA subframes and local time has been updated. To facilitate this, the Galileo_Utc_Model has been refactored to be used statically, instead of being passed through the osnma_msg_receiver constructor. Additional changes include: adjusting variable declarations, adding an initialization method, altering the function GST_to_UTC_time to be static, and removing an unused instantiation of the model in osnma_msg_receiver.
* In osnma_msg_receiver: d_old_navdata_buffer to store last 10 NavData.
* In osnma_msg_receiver::process_mack_message: pass needed data to the newly created structure osnma_data::NavData, generate needed vectors for tag verification.
* In osnma_data.h/cc: Create NavData structure, Create osnma_data.cc source file, add to CMakeLists source file.