Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
partialverificationsecondary.h
1 #ifndef UPTANE_PARTIALVRIFICATIONSECONDARY_H_
2 #define UPTANE_PARTIALVRIFICATIONSECONDARY_H_
3 
4 #include <string>
5 #include <vector>
6 
7 #include <boost/filesystem.hpp>
8 #include "json/json.h"
9 
10 #include "libaktualizr/types.h"
11 #include "managedsecondary.h"
12 #include "primary/secondaryinterface.h"
13 
14 namespace Primary {
15 
17  public:
19 
20  public:
21  constexpr static const char* const Type = "partial-verification";
22 };
23 
24 } // namespace Primary
25 
26 namespace Uptane {
27 
29  public:
31 
32  void init(std::shared_ptr<SecondaryProvider> secondary_provider_in) override {
33  secondary_provider_ = std::move(secondary_provider_in);
34  }
35  std::string Type() const override { return Primary::PartialVerificationSecondaryConfig::Type; }
36  EcuSerial getSerial() const override {
37  if (!sconfig.ecu_serial.empty()) {
38  return Uptane::EcuSerial(sconfig.ecu_serial);
39  }
40  return Uptane::EcuSerial(public_key_.KeyId());
41  }
42  Uptane::HardwareIdentifier getHwId() const override { return Uptane::HardwareIdentifier(sconfig.ecu_hardware_id); }
43  PublicKey getPublicKey() const override { return public_key_; }
44 
45  data::InstallationResult putMetadata(const Target& target) override;
46  int getRootVersion(bool director) const override;
47  data::InstallationResult putRoot(const std::string& root, bool director) override;
48 
49  data::InstallationResult sendFirmware(const Uptane::Target& target) override;
50  data::InstallationResult install(const Uptane::Target& target) override;
51  Uptane::Manifest getManifest() const override;
52  bool ping() const override { return true; }
53 
54  private:
55  void storeKeys(const std::string& public_key, const std::string& private_key);
56  bool loadKeys(std::string* public_key, std::string* private_key);
57 
59  std::shared_ptr<SecondaryProvider> secondary_provider_;
60  Uptane::Root root_;
61  PublicKey public_key_;
62  std::string private_key_;
63 
64  std::string detected_attack_;
65  Uptane::Targets meta_targets_;
66 };
67 } // namespace Uptane
68 
69 #endif // UPTANE_PARTIALVRIFICATIONSECONDARY_H_
Base data types that are used in The Update Framework (TUF), part of Uptane.
Definition: types.h:304