32 OSNMA_DSM_Reader() =
default;
33 uint8_t get_nmas(uint8_t nma_header)
const;
34 uint8_t get_cid(uint8_t nma_header)
const;
35 uint8_t get_cpks(uint8_t nma_header)
const;
36 bool get_nma_header_reserved(uint8_t nma_header)
const;
38 uint8_t get_dsm_id(uint8_t dsm_header)
const;
39 uint8_t get_dsm_block_id(uint8_t dsm_header)
const;
41 uint8_t get_number_blocks_index(uint8_t dsm_msg_0)
const;
42 uint8_t get_pkid(
const std::vector<uint8_t>& dsm_msg)
const;
43 uint8_t get_cidkr(
const std::vector<uint8_t>& dsm_msg)
const;
44 uint8_t get_dsm_reserved1(
const std::vector<uint8_t>& dsm_msg)
const;
45 uint8_t get_hf(
const std::vector<uint8_t>& dsm_msg)
const;
46 uint8_t get_mf(
const std::vector<uint8_t>& dsm_msg)
const;
47 uint8_t get_ks(
const std::vector<uint8_t>& dsm_msg)
const;
48 uint8_t get_ts(
const std::vector<uint8_t>& dsm_msg)
const;
49 uint8_t get_maclt(
const std::vector<uint8_t>& dsm_msg)
const;
50 uint8_t get_dsm_reserved(
const std::vector<uint8_t>& dsm_msg)
const;
51 uint16_t get_wn_k(
const std::vector<uint8_t>& dsm_msg)
const;
52 uint8_t get_towh_k(
const std::vector<uint8_t>& dsm_msg)
const;
53 uint64_t get_alpha(
const std::vector<uint8_t>& dsm_msg)
const;
54 uint16_t get_l_dk_bits(uint8_t nb_dk)
const;
55 uint16_t get_lk_bits(uint8_t ks)
const;
56 std::vector<uint8_t> get_kroot(
const std::vector<uint8_t>& dsm_msg, uint16_t bytes_lk)
const;
57 std::string get_hash_function(uint8_t hf)
const;
58 std::string get_nmas_status(uint8_t nmas)
const;
59 std::string get_cpks_status(uint8_t cpks)
const;
61 uint8_t get_mid(
const std::vector<uint8_t>& dsm_msg)
const;
62 uint8_t get_npkt(
const std::vector<uint8_t>& dsm_msg)
const;
63 uint8_t get_npktid(
const std::vector<uint8_t>& dsm_msg)
const;
66 static constexpr std::uint8_t mask_nmas{0xC0};
67 static constexpr std::uint8_t mask_cid{0x30};
68 static constexpr std::uint8_t mask_cpks{0x0E};
69 static constexpr std::uint8_t mask_nma_header_reserved{0x01};
70 static constexpr std::uint8_t mask_dsm_id{0xF0};
71 static constexpr std::uint8_t mask_dsm_block_id{0x0F};
72 static constexpr std::uint8_t mask_dsm_number_blocks{0xF0};
73 static constexpr std::uint8_t mask_dsm_pkid{0x0F};
74 static constexpr std::uint8_t mask_dsm_cidkr{0xC0};
75 static constexpr std::uint8_t mask_dsm_reserved1{0x30};
76 static constexpr std::uint8_t mask_dsm_hf{0x0C};
77 static constexpr std::uint8_t mask_dsm_mf{0x03};
78 static constexpr std::uint8_t mask_dsm_ks{0xF0};
79 static constexpr std::uint8_t mask_dsm_ts{0x0F};
80 static constexpr std::uint8_t mask_dsm_reserved{0xF0};
81 static constexpr std::uint8_t mask_dsm_wk_k_msbyte{0x0F};
82 static constexpr std::uint8_t mask_dsm_mid{0x0F};
83 static constexpr std::uint8_t mask_dsm_npkt{0xF0};
84 static constexpr std::uint8_t mask_dsm_npktid{0x0F};