Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
tuf_hash_test.cc
1 #include <gtest/gtest.h>
2 
3 #include "logging/logging.h"
4 #include "uptane/exceptions.h"
5 #include "uptane/tuf.h"
6 #include "utilities/utils.h"
7 
8 TEST(TufHash, EncodeDecode) {
9  std::vector<Uptane::Hash> hashes = {{Uptane::Hash::Type::kSha256, "abcd"}, {Uptane::Hash::Type::kSha512, "defg"}};
10 
11  std::string encoded = Uptane::Hash::encodeVector(hashes);
12  std::vector<Uptane::Hash> decoded = Uptane::Hash::decodeVector(encoded);
13 
14  EXPECT_EQ(hashes, decoded);
15 }
16 
17 TEST(TufHash, DecodeBad) {
18  std::string bad1 = ":";
19  EXPECT_EQ(Uptane::Hash::decodeVector(bad1), std::vector<Uptane::Hash>{});
20 
21  std::string bad2 = ":abcd;sha256:12";
22  EXPECT_EQ(Uptane::Hash::decodeVector(bad2),
23  std::vector<Uptane::Hash>{Uptane::Hash(Uptane::Hash::Type::kSha256, "12")});
24 
25  std::string bad3 = "sha256;";
26  EXPECT_EQ(Uptane::Hash::decodeVector(bad3), std::vector<Uptane::Hash>{});
27 
28  std::string bad4 = "sha256:;";
29  EXPECT_EQ(Uptane::Hash::decodeVector(bad4), std::vector<Uptane::Hash>{});
30 }
31 
32 #ifndef __NO_MAIN__
33 int main(int argc, char** argv) {
34  ::testing::InitGoogleTest(&argc, argv);
35  logger_set_threshold(boost::log::trivial::trace);
36  return RUN_ALL_TESTS();
37 }
38 #endif
Uptane::Hash
The hash of a file or TUF metadata.
Definition: tuf.h:209