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 "uptane/secondaryinterface.h"
11 #include "utilities/types.h"
12 
13 #include "managedsecondary.h"
14 
15 namespace Primary {
16 
18  public:
20 
21  public:
22  constexpr static const char* const Type = "partial-verification";
23 };
24 
25 } // namespace Primary
26 
27 namespace Uptane {
28 
30  public:
32 
33  EcuSerial getSerial() const override {
34  if (!sconfig.ecu_serial.empty()) {
35  return Uptane::EcuSerial(sconfig.ecu_serial);
36  }
37  return Uptane::EcuSerial(public_key_.KeyId());
38  }
39  Uptane::HardwareIdentifier getHwId() const override { return Uptane::HardwareIdentifier(sconfig.ecu_hardware_id); }
40  PublicKey getPublicKey() const override { return public_key_; }
41 
42  bool putMetadata(const RawMetaPack& meta) override;
43  int getRootVersion(bool director) const override;
44  bool putRoot(const std::string& root, bool director) override;
45 
46  bool sendFirmware(const std::string& data) override;
47  data::ResultCode::Numeric install(const std::string& target_name) override;
48  Uptane::Manifest getManifest() const override;
49 
50  private:
51  void storeKeys(const std::string& public_key, const std::string& private_key);
52  bool loadKeys(std::string* public_key, std::string* private_key);
53 
55  Uptane::Root root_;
56  PublicKey public_key_;
57  std::string private_key_;
58 
59  std::string detected_attack_;
60  Uptane::Targets meta_targets_;
61 };
62 } // namespace Uptane
63 
64 #endif // UPTANE_PARTIALVRIFICATIONSECONDARY_H_
types.h
Uptane::PartialVerificationSecondary
Definition: partialverificationsecondary.h:29
Primary::PartialVerificationSecondaryConfig
Definition: partialverificationsecondary.h:17
data
General data structures.
Definition: types.cc:44
Uptane::HardwareIdentifier
Definition: tuf.h:143
Uptane::RawMetaPack
Definition: tuf.h:532
Uptane::EcuSerial
Definition: tuf.h:174
Uptane::Targets
Definition: tuf.h:437
Primary::ManagedSecondaryConfig
Definition: managedsecondary.h:17
PublicKey
Definition: crypto.h:26
data::ResultCode::Numeric
Numeric
Definition: types.h:125
Uptane::Root
Definition: tuf.h:382
Uptane
Base data types that are used in The Update Framework (TUF), part of UPTANE.
Definition: secondary_tcp_server.h:8
Uptane::SecondaryInterface
Definition: secondaryinterface.h:12
Uptane::Manifest
Definition: manifest.h:13