1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-10-30 14:46:23 +00:00

Merge branch 'osnma-cesare' of https://github.com/cesaaargm/osnma into osnma-cesare

This commit is contained in:
Carles Fernandez 2024-08-07 18:16:19 +02:00
commit dd378e6f4c
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
3 changed files with 12 additions and 10 deletions

View File

@ -271,7 +271,7 @@ void osnma_msg_receiver::process_osnma_message(const std::shared_ptr<OSNMA_msg>&
{ {
d_flag_PK_renewal = false; d_flag_PK_renewal = false;
uint32_t final_GST = d_helper->compute_gst(osnma_msg->WN_sf0, osnma_msg->TOW_sf0); uint32_t final_GST = d_helper->compute_gst(osnma_msg->WN_sf0, osnma_msg->TOW_sf0);
double duration_hours = (final_GST - d_GST_PKR_PKREV_start) / 3600; double duration_hours = (final_GST - d_GST_PKR_PKREV_start) / 3600.0;
LOG(INFO) << "Galileo OSNMA: Public Key Renewal :: Finished at GST=" << duration_hours << ", Duration=" << duration_hours << " h"; LOG(INFO) << "Galileo OSNMA: Public Key Renewal :: Finished at GST=" << duration_hours << ", Duration=" << duration_hours << " h";
std::cout << "Galileo OSNMA: Public Key Renewal :: Finished at GST=" << duration_hours << ", Duration=" << duration_hours << " h" << std::endl; std::cout << "Galileo OSNMA: Public Key Renewal :: Finished at GST=" << duration_hours << ", Duration=" << duration_hours << " h" << std::endl;
} }
@ -1400,7 +1400,7 @@ std::vector<uint8_t> osnma_msg_receiver::build_message(Tag& tag) const
// Add applicable NavData bits to message // Add applicable NavData bits to message
std::string applicable_nav_data = d_nav_data_manager->get_navigation_data(tag); std::string applicable_nav_data = d_nav_data_manager->get_navigation_data(tag);
std::vector<uint8_t> applicable_nav_data_bytes = d_helper->bytes(applicable_nav_data); std::vector<uint8_t> applicable_nav_data_bytes = d_helper->bytes(applicable_nav_data);
tag.nav_data = applicable_nav_data; // update tag with applicable data tag.nav_data = std::move(applicable_nav_data); // update tag with applicable data
// Convert and add OSNMA_NavData bytes into the message, taking care of that NMAS has only 2 bits // Convert and add OSNMA_NavData bytes into the message, taking care of that NMAS has only 2 bits
for (uint8_t byte : applicable_nav_data_bytes) for (uint8_t byte : applicable_nav_data_bytes)
@ -1619,11 +1619,11 @@ bool osnma_msg_receiver::verify_macseq(const MACK_message& mack)
// Assign relevant sequence based on subframe time // Assign relevant sequence based on subframe time
if (mack.TOW % 60 < 30) // tried GST_Sf and it does not support the data present. if (mack.TOW % 60 < 30) // tried GST_Sf and it does not support the data present.
{ {
applicable_sequence = sq1; applicable_sequence = std::move(sq1);
} }
else if (mack.TOW % 60 >= 30) else if (mack.TOW % 60 >= 30)
{ {
applicable_sequence = sq2; applicable_sequence = std::move(sq2);
} }
if (mack.tag_and_info.size() != applicable_sequence.size() - 1) if (mack.tag_and_info.size() != applicable_sequence.size() - 1)
{ {
@ -1864,11 +1864,11 @@ std::vector<MACK_tag_and_info> osnma_msg_receiver::verify_macseq_new(const MACK_
// Assign relevant sequence based on subframe time // Assign relevant sequence based on subframe time
if (mack.TOW % 60 < 30) // tried GST_Sf and it does not support the data present. if (mack.TOW % 60 < 30) // tried GST_Sf and it does not support the data present.
{ {
applicable_sequence = sq1; applicable_sequence = std::move(sq1);
} }
else if (mack.TOW % 60 >= 30) else if (mack.TOW % 60 >= 30)
{ {
applicable_sequence = sq2; applicable_sequence = std::move(sq2);
} }
if (mack.tag_and_info.size() != applicable_sequence.size() - 1) if (mack.tag_and_info.size() != applicable_sequence.size() - 1)
{ {

View File

@ -25,6 +25,7 @@
#include <iomanip> #include <iomanip>
#include <iostream> #include <iostream>
#include <iterator> #include <iterator>
#include <utility>
#if USE_GNUTLS_FALLBACK #if USE_GNUTLS_FALLBACK
#include <cstring> #include <cstring>
@ -625,7 +626,7 @@ std::vector<uint8_t> Gnss_Crypto::compute_HMAC_SHA_256(const std::vector<uint8_t
EVP_MAC_CTX_free(ctx); EVP_MAC_CTX_free(ctx);
EVP_MAC_free(mac); EVP_MAC_free(mac);
hmac.resize(output_length); hmac.resize(output_length);
output = hmac; output = std::move(hmac);
#else // OpenSSL 1.x #else // OpenSSL 1.x
unsigned int outputLength = EVP_MAX_MD_SIZE; unsigned int outputLength = EVP_MAX_MD_SIZE;
unsigned char* result = HMAC(EVP_sha256(), key.data(), key.size(), input.data(), input.size(), output.data(), &outputLength); unsigned char* result = HMAC(EVP_sha256(), key.data(), key.size(), input.data(), input.size(), output.data(), &outputLength);
@ -739,7 +740,7 @@ std::vector<uint8_t> Gnss_Crypto::compute_CMAC_AES(const std::vector<uint8_t>& k
EVP_MAC_free(mac); EVP_MAC_free(mac);
aux.resize(output_length); aux.resize(output_length);
output = aux; output = std::move(aux);
#else // OpenSSL 1.x #else // OpenSSL 1.x
size_t mac_length = 0; // to hold the length of the MAC output size_t mac_length = 0; // to hold the length of the MAC output

View File

@ -22,6 +22,7 @@
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <fstream> #include <fstream>
#include <iterator> #include <iterator>
#include <utility>
class GnssCryptoTest : public ::testing::Test class GnssCryptoTest : public ::testing::Test
{ {
@ -296,7 +297,7 @@ TEST(GnssCryptoTest, VerifySignatureP256)
d_crypto->set_public_key(publicKey); d_crypto->set_public_key(publicKey);
ASSERT_TRUE(d_crypto->verify_signature_ecdsa_p256(message, signature)); ASSERT_TRUE(d_crypto->verify_signature_ecdsa_p256(message, signature));
std::vector<uint8_t> wrong_signature = signature; std::vector<uint8_t> wrong_signature = std::move(signature);
wrong_signature[1] = 1; wrong_signature[1] = 1;
ASSERT_FALSE(d_crypto->verify_signature_ecdsa_p256(message, wrong_signature)); ASSERT_FALSE(d_crypto->verify_signature_ecdsa_p256(message, wrong_signature));
} }
@ -340,7 +341,7 @@ TEST(GnssCryptoTest, VerifySignatureP521)
d_crypto->set_public_key(publicKey); d_crypto->set_public_key(publicKey);
ASSERT_TRUE(d_crypto->verify_signature_ecdsa_p521(message, signature)); ASSERT_TRUE(d_crypto->verify_signature_ecdsa_p521(message, signature));
std::vector<uint8_t> wrong_signature = signature; std::vector<uint8_t> wrong_signature = std::move(signature);
wrong_signature[1] = 1; wrong_signature[1] = 1;
ASSERT_FALSE(d_crypto->verify_signature_ecdsa_p521(message, wrong_signature)); ASSERT_FALSE(d_crypto->verify_signature_ecdsa_p521(message, wrong_signature));
} }