1 #ifndef UPTANE_FETCHER_H_ 2 #define UPTANE_FETCHER_H_ 4 #include "config/config.h" 5 #include "http/httpinterface.h" 6 #include "storage/invstorage.h" 11 constexpr int64_t kMaxRootSize = 64 * 1024;
12 constexpr int64_t kMaxDirectorTargetsSize = 64 * 1024;
13 constexpr int64_t kMaxTimestampSize = 64 * 1024;
14 constexpr int64_t kMaxSnapshotSize = 64 * 1024;
15 constexpr int64_t kMaxImagesTargetsSize = 1024 * 1024;
19 : hash_type{target_in.hashes()[0].type()},
20 events_channel{std::move(events_channel_in)},
21 target{std::move(target_in)} {}
22 uint64_t downloaded_length{};
24 const Hash::Type hash_type;
27 case Hash::Type::kSha256:
29 case Hash::Type::kSha512:
32 throw std::runtime_error(
"Unknown hash algorithm");
35 std::shared_ptr<event::Channel> events_channel;
45 Fetcher(
const Config& config_in, std::shared_ptr<INvStorage> storage_in, std::shared_ptr<HttpInterface> http_in,
46 std::shared_ptr<event::Channel> events_channel_in =
nullptr)
47 : http(std::move(http_in)),
48 storage(std::move(storage_in)),
50 events_channel(std::move(events_channel_in)) {}
51 bool fetchVerifyTarget(
const Target& target);
54 return fetchRole(result, maxsize, repo, role,
Version());
58 std::shared_ptr<HttpInterface> http;
59 std::shared_ptr<INvStorage> storage;
61 std::shared_ptr<event::Channel> events_channel;
Metadata version numbers.
Configuration object for an aktualizr instance running on a primary ECU.
RepositoryType
This must match the repo_type table in sqlstorage.
Base data types that are used in The Update Framework (TUF), part of UPTANE.