Aktualizr
C++ SOTA Client
initializer.h
1 #include "config/config.h"
2 #include "crypto/keymanager.h"
3 #include "http/httpinterface.h"
4 #include "uptane/secondaryinterface.h"
5 
6 const int MaxInitializationAttempts = 3;
7 
8 enum class InitRetCode { kOk, kOccupied, kServerFailure, kStorageFailure, kSecondaryFailure, kBadP12, kPkcs11Failure };
9 
10 class Initializer {
11  public:
12  Initializer(const ProvisionConfig& config_in, std::shared_ptr<INvStorage> storage_in,
13  std::shared_ptr<HttpInterface> http_client_in, KeyManager& keys_in,
14  const std::map<Uptane::EcuSerial, std::shared_ptr<Uptane::SecondaryInterface> >& secondary_info_in);
15  bool isSuccessful() const { return success_; }
16 
17  private:
18  const ProvisionConfig& config_;
19  std::shared_ptr<INvStorage> storage_;
20  std::shared_ptr<HttpInterface> http_client_;
21  KeyManager& keys_;
22  const std::map<Uptane::EcuSerial, std::shared_ptr<Uptane::SecondaryInterface> >& secondary_info_;
23  bool success_;
24 
25  bool initDeviceId();
26  void resetDeviceId();
27  bool initEcuSerials();
28  void resetEcuSerials();
29  bool initPrimaryEcuKeys();
30  bool initSecondaryEcuKeys();
31  void resetEcuKeys();
32  InitRetCode initTlsCreds();
33  void resetTlsCreds();
34  InitRetCode initEcuRegister();
35  bool loadSetTlsCreds(); // TODO -> metadownloader
36 };