mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-10-30 22:56:22 +00:00
Merge branch 'osnma-cesare' of https://github.com/cesaaargm/osnma into osnma-cesare
This commit is contained in:
commit
dd378e6f4c
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user