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 enum class InitRetCode { kOk, kOccupied, kServerFailure, kStorageFailure, kSecondaryFailure, kBadP12, kPkcs11Failure };
12 
13 class Initializer {
14  public:
15  Initializer(const ProvisionConfig& config_in, std::shared_ptr<INvStorage> storage_in,
16  std::shared_ptr<HttpInterface> http_client_in, KeyManager& keys_in,
17  const std::map<Uptane::EcuSerial, std::shared_ptr<Uptane::SecondaryInterface> >& secondary_info_in);
18  bool isSuccessful() const { return success_; }
19 
20  private:
21  const ProvisionConfig& config_;
22  std::shared_ptr<INvStorage> storage_;
23  std::shared_ptr<HttpInterface> http_client_;
24  KeyManager& keys_;
25  const std::map<Uptane::EcuSerial, std::shared_ptr<Uptane::SecondaryInterface> >& secondary_info_;
26  bool success_;
27 
28  bool initDeviceId();
29  void resetDeviceId();
30  bool initEcuSerials();
31  void resetEcuSerials();
32  bool initPrimaryEcuKeys();
33  bool initSecondaryEcuKeys();
34  void resetEcuKeys();
35  InitRetCode initTlsCreds();
36  void resetTlsCreds();
37  InitRetCode initEcuRegister();
38  bool loadSetTlsCreds(); // TODO -> metadownloader
39  bool initEcuReportCounter();
40 };
41 
42 #endif // INITIALIZER_H_
ProvisionConfig
Definition: config.h:38
KeyManager
Definition: keymanager.h:13
Uptane::EcuSerial
Definition: tuf.h:174
Initializer
Definition: initializer.h:13