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  std::string Type() const override { return Primary::PartialVerificationSecondaryConfig::Type; }
34  EcuSerial getSerial() const override {
35  if (!sconfig.ecu_serial.empty()) {
36  return Uptane::EcuSerial(sconfig.ecu_serial);
37  }
38  return Uptane::EcuSerial(public_key_.KeyId());
39  }
40  Uptane::HardwareIdentifier getHwId() const override { return Uptane::HardwareIdentifier(sconfig.ecu_hardware_id); }
41  PublicKey getPublicKey() const override { return public_key_; }
42 
43  bool putMetadata(const RawMetaPack& meta) override;
44  int getRootVersion(bool director) const override;
45  bool putRoot(const std::string& root, bool director) override;
46 
47  bool sendFirmware(const std::string& data) override;
48  data::ResultCode::Numeric install(const std::string& target_name) override;
49  Uptane::Manifest getManifest() const override;
50  bool ping() const override { return true; }
51 
52  private:
53  void storeKeys(const std::string& public_key, const std::string& private_key);
54  bool loadKeys(std::string* public_key, std::string* private_key);
55 
57  Uptane::Root root_;
58  PublicKey public_key_;
59  std::string private_key_;
60 
61  std::string detected_attack_;
62  Uptane::Targets meta_targets_;
63 };
64 } // namespace Uptane
65 
66 #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:55
Uptane::HardwareIdentifier
Definition: tuf.h:143
Uptane::RawMetaPack
Definition: tuf.h:535
Uptane::EcuSerial
Definition: tuf.h:174
Uptane::Targets
Definition: tuf.h:440
Primary::ManagedSecondaryConfig
Definition: managedsecondary.h:17
PublicKey
Definition: crypto.h:26
data::ResultCode::Numeric
Numeric
Definition: types.h:128
Uptane::Root
Definition: tuf.h:385
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