* Clang Tidy fixes
* Fix reading of .crt files with GnuTLS
* Hide d_crypto pointer from public API
* Read public key type also from .pem files
---------
Co-authored-by: cesaaargm <cesare.martinez@proton.me>
* Clang Tidy fixes
* Get time zone offset in a more standard way
Account for leap seconds
Use GNSS-SDR.osnma_mode=strict to check for local time
* Fix for C++20
* Initialize tm in a more portable way
* Remove unnecessary data members in osnma_msg_receiver
---------
Co-authored-by: cesaaargm <cesare.martinez@proton.me>
* Report GMP version if found
* Bump local version of GoogleTest to 1.15.2 and Protocol Buffers to 27.3
* Avoid code duplication in CMake modules
* Update CMake modules
* Update clang-tidy job
if d_flag_debug=false, now system clock is used to for the receiver synchronisation. It uses the UTC time and the GST epoch start time (adjusted for local time zone difference) to create a local estimation of GST, then compares with GST_SIS (coming from NavData Words 5 and 6)
* Test show that behavior is as expected.
* interestingly, the first batch of Tags after OAM received fail, then succeeds, until OAM is verified and OSNMA is disabled.
* it was based on the HF field, which is not correct. It was discovered when the PK was P521 instead of P256 then the Padding size check was failing due to this.
* The solution is temporary:
** GNSS_Crypto: when reading the key, the type is inferred (only for OSSL for the moment)
** when PK comes through the satellites, the public key type is taken from the NPKT field.
* Fix set_public_key when using GnuTLS
* Fix for OpenSSL 1.1.1
* Fix formatting
* Fix formatting
* Fix ECDSA-P521 signature verification when using GnuTLS
* Improve finding of the GMP library in Debian-based systems
* Improve finding of the GMP library in Debian-based systems
* Keep GMP usage private
* reverted commit [TAS-247][FEAT][Kroot] enable hotstart with last known Kroot
* DSM-KROOT loaded during startup
* if new DSM verified => stored
* this improves TTFAF from 4 min to 1 minute.
* New class: osnma_nav_data_manager => manages navigation data coming to osnma
* navigation data is grouped now avoiding duplication => a NavData entry has now TOW_start and TOW_end
* tag accumulation: now, navigation data has verified_bits field, which shows how many tags have verified that data. unless L_T_min achieved, validation is not considered successful