Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
manifest.h
1 #ifndef AKTUALIZR_UPTANE_MANIFEST_H
2 #define AKTUALIZR_UPTANE_MANIFEST_H
3 
4 #include "json/json.h"
5 #include "tuf.h"
6 
7 #include <memory>
8 
9 class KeyManager;
10 
11 namespace Uptane {
12 
13 class Manifest : public Json::Value {
14  public:
15  Manifest(const Json::Value &value = Json::Value()) : Json::Value(value) {}
16 
17  public:
18  Hash installedImageHash() const;
19  std::string signature() const;
20  std::string signedBody() const;
21  bool verifySignature(PublicKey &&pub_key) const;
22 };
23 
25  public:
26  using Ptr = std::shared_ptr<ManifestIssuer>;
27 
28  public:
29  ManifestIssuer(std::shared_ptr<KeyManager> &key_mngr, Uptane::EcuSerial ecu_serial)
30  : ecu_serial_(std::move(ecu_serial)), key_mngr_(key_mngr) {}
31 
32  static Manifest assembleManifest(const InstalledImageInfo &installed_image_info, const Uptane::EcuSerial &ecu_serial);
33  static Hash generateVersionHash(const std::string &data);
34  static std::string generateVersionHashStr(const std::string &data);
35 
36  Manifest sign(const Manifest &manifest, const std::string &report_counter = "") const;
37 
38  Manifest assembleManifest(const InstalledImageInfo &installed_image_info) const;
39  Manifest assembleManifest(const Uptane::Target &target) const;
40 
41  Manifest assembleAndSignManifest(const InstalledImageInfo &installed_image_info) const;
42 
43  private:
44  const Uptane::EcuSerial ecu_serial_;
45  std::shared_ptr<KeyManager> key_mngr_;
46 };
47 
48 } // namespace Uptane
49 
50 #endif // AKTUALIZR_UPTANE_MANIFEST_H
KeyManager
Definition: keymanager.h:13
Uptane::ManifestIssuer
Definition: manifest.h:24
data
General data structures.
Definition: types.cc:44
Uptane::Hash
The hash of a file or TUF metadata.
Definition: tuf.h:209
Uptane::InstalledImageInfo
Definition: tuf.h:132
Uptane::EcuSerial
Definition: tuf.h:174
PublicKey
Definition: crypto.h:26
Uptane::Target
Definition: tuf.h:238
Uptane
Base data types that are used in The Update Framework (TUF), part of UPTANE.
Definition: secondary_tcp_server.h:8
Uptane::Manifest
Definition: manifest.h:13