Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
initializer.h
1 #ifndef INITIALIZER_H_
2 #define INITIALIZER_H_
3 
4 #include "config/config.h"
5 #include "crypto/keymanager.h"
6 #include "http/httpinterface.h"
7 #include "uptane/secondaryinterface.h"
8 
9 const int MaxInitializationAttempts = 3;
10 
11 class Initializer {
12  public:
13  Initializer(const ProvisionConfig& config_in, std::shared_ptr<INvStorage> storage_in,
14  std::shared_ptr<HttpInterface> http_client_in, KeyManager& keys_in,
15  const std::map<Uptane::EcuSerial, std::shared_ptr<Uptane::SecondaryInterface> >& secondaries_in);
16 
17  class Error : public std::runtime_error {
18  public:
19  Error(const std::string& what) : std::runtime_error(std::string("Initializer error: ") + what) {}
20  };
21  class KeyGenerationError : public Error {
22  public:
23  KeyGenerationError(const std::string& what) : Error(std::string("Could not generate uptane key pair: ") + what) {}
24  };
25  class StorageError : public Error {
26  public:
27  StorageError(const std::string& what) : Error(std::string("Storage error: ") + what) {}
28  };
29  class ServerError : public Error {
30  public:
31  ServerError(const std::string& what) : Error(std::string("Server error: ") + what) {}
32  };
33  class ServerOccupied : public Error {
34  public:
35  ServerOccupied() : Error("") {}
36  };
37 
38  private:
39  const ProvisionConfig& config_;
40  std::shared_ptr<INvStorage> storage_;
41  std::shared_ptr<HttpInterface> http_client_;
42  KeyManager& keys_;
43  const std::map<Uptane::EcuSerial, Uptane::SecondaryInterface::Ptr>& secondaries_;
44 
45  void initDeviceId();
46  void resetDeviceId();
47  void initEcuSerials();
48  void resetEcuSerials();
49  void initPrimaryEcuKeys();
50  void resetEcuKeys();
51  void initTlsCreds();
52  void resetTlsCreds();
53  void initEcuRegister();
54  bool loadSetTlsCreds();
55  void initEcuReportCounter();
56 };
57 
58 #endif // INITIALIZER_H_
Initializer::StorageError
Definition: initializer.h:25
ProvisionConfig
Definition: config.h:38
Initializer::ServerError
Definition: initializer.h:29
KeyManager
Definition: keymanager.h:13
Initializer::ServerOccupied
Definition: initializer.h:33
Uptane::EcuSerial
Definition: tuf.h:177
Initializer::KeyGenerationError
Definition: initializer.h:21
Initializer
Definition: initializer.h:11
Initializer::Error
Definition: initializer.h:17