Aktualizr
C++ SOTA Client
p11_config.h
1 #ifndef CRYPTO_P11_CONFIG_H_
2 #define CRYPTO_P11_CONFIG_H_
3 
4 #include <string>
5 
6 #include <boost/filesystem.hpp>
7 #include <boost/property_tree/ini_parser.hpp>
8 
9 #include "utilities/config_utils.h"
10 
11 // declare p11 types as incomplete so that the header can be used without libp11
12 struct PKCS11_ctx_st;
13 struct PKCS11_slot_st;
14 
15 struct P11Config {
16  boost::filesystem::path module;
17  std::string pass;
18  std::string uptane_key_id;
19  std::string tls_cacert_id;
20  std::string tls_pkey_id;
21  std::string tls_clientcert_id;
22 
23  void updateFromPropertyTree(const boost::property_tree::ptree &pt) {
24  CopyFromConfig(module, "module", pt);
25  CopyFromConfig(pass, "pass", pt);
26  CopyFromConfig(uptane_key_id, "uptane_key_id", pt);
27  CopyFromConfig(tls_cacert_id, "tls_cacert_id", pt);
28  CopyFromConfig(tls_pkey_id, "tls_pkey_id", pt);
29  CopyFromConfig(tls_clientcert_id, "tls_clientcert_id", pt);
30  }
31 
32  void writeToStream(std::ostream &out_stream) const {
33  writeOption(out_stream, module, "module");
34  writeOption(out_stream, pass, "pass");
35  writeOption(out_stream, uptane_key_id, "uptane_key_id");
36  writeOption(out_stream, tls_cacert_id, "tls_ca_id");
37  writeOption(out_stream, tls_pkey_id, "tls_pkey_id");
38  writeOption(out_stream, tls_clientcert_id, "tls_clientcert_id");
39  }
40 };
41 
42 #endif // CRYPTO_P11_CONFIG_H_