Vanetza
Loading...
Searching...
No Matches
hashed_id.hpp
1#ifndef CE45A952_0EE7_4D20_82CB_D42BF87F5B15
2#define CE45A952_0EE7_4D20_82CB_D42BF87F5B15
3
4#include <vanetza/security/sha.hpp>
5#include <array>
6#include <cstdint>
7#include <functional>
8#include <string>
9
10namespace vanetza
11{
12namespace security
13{
14
15using HashedId8 = std::array<uint8_t, 8>;
16using HashedId3 = std::array<uint8_t, 3>;
17
18HashedId3 truncate(const HashedId8&);
19
20HashedId8 create_hashed_id8(const Sha256Digest&);
21HashedId8 create_hashed_id8(const Sha384Digest&);
22
23std::string to_string(const vanetza::security::HashedId3&);
24std::string to_string(const vanetza::security::HashedId8&);
25
26} // namespace security
27} // namespace vanetza
28
29namespace std
30{
31// std::hash specialization for HashedId3
32template<> struct hash<vanetza::security::HashedId3>
33{
34 size_t operator()(const vanetza::security::HashedId3&) const;
35};
36
37/// std::hash specialization for HashedId8
38template<> struct hash<vanetza::security::HashedId8>
39{
40 size_t operator()(const vanetza::security::HashedId8&) const;
41};
42} // namespace std
43
44#endif /* CE45A952_0EE7_4D20_82CB_D42BF87F5B15 */
STL namespace.