Qrypt Security
All Classes Namespaces Files Functions Variables Enumerations Enumerator
qryptsecurity.h
Go to the documentation of this file.
1 #ifndef QRYPTSECURITY_H
2 #define QRYPTSECURITY_H
3 
4 #include <memory>
5 #include <string>
6 #include <vector>
7 #include "qryptsecurity_http.h"
8 
9 namespace QryptSecurity {
10 
14 const std::string QRYPTSECURITY_VERSION = "0.11";
15 
19 const size_t AES_256_SIZE = 32;
20 
25 
29  std::vector<uint8_t> key;
30 
34  std::vector<uint8_t> metadata;
35 };
36 
41 
45  uint32_t ttl = 0;
46 
50  KeyConfiguration(const uint32_t& ttl = 0) : ttl(ttl) {}
51 };
52 
57 
62 
66  std::string caCertPath = "";
67 };
68 
77  public:
78 
81 
87  static std::unique_ptr<IKeyGenDistributedClient> create();
88 
94  virtual void initialize(std::string qryptToken) = 0;
95 
102  virtual void initialize(std::string qryptToken, const ClientConfiguration clientConfig) = 0;
103 
110  virtual SymmetricKeyData genInit(const size_t keySize) = 0;
111 
119  virtual SymmetricKeyData genInit(const size_t keySize, const KeyConfiguration keyConfig) = 0;
120 
127  virtual std::vector<uint8_t> genSync(std::vector<uint8_t> metadata) = 0;
128 };
129 
130 } // namespace
131 
132 #endif
QryptSecurity
Definition: qryptsecurity.h:9
QryptSecurity::IKeyGenDistributedClient::genSync
virtual std::vector< uint8_t > genSync(std::vector< uint8_t > metadata)=0
Generate symmetric key for this client from metadata
QryptSecurity::ClientConfiguration::customHttpClient
HttpClient * customHttpClient
Custom HTTP client
Definition: qryptsecurity.h:61
QryptSecurity::ClientConfiguration::caCertPath
std::string caCertPath
Absolute path to a CA Root Certificate for use with libCurl
Definition: qryptsecurity.h:66
qryptsecurity_http.h
QryptSecurity::KeyConfiguration::KeyConfiguration
KeyConfiguration(const uint32_t &ttl=0)
Constructor for building the key configuration structure
Definition: qryptsecurity.h:50
QryptSecurity::IKeyGenDistributedClient::IKeyGenDistributedClient
IKeyGenDistributedClient()
Definition: qryptsecurity.h:79
QryptSecurity::AES_256_SIZE
const size_t AES_256_SIZE
Size of AES key
Definition: qryptsecurity.h:19
QryptSecurity::QRYPTSECURITY_VERSION
const std::string QRYPTSECURITY_VERSION
Minor SDK version
Definition: qryptsecurity.h:14
QryptSecurity::IKeyGenDistributedClient::initialize
virtual void initialize(std::string qryptToken)=0
Initializes the client
QryptSecurity::KeyConfiguration::ttl
uint32_t ttl
Time for key samples to live in seconds. A value of 0 indicates to use the default.
Definition: qryptsecurity.h:45
QryptSecurity::IKeyGenDistributedClient
KeyGenDistributedClient
Definition: qryptsecurity.h:76
QryptSecurity::IKeyGenDistributedClient::create
static std::unique_ptr< IKeyGenDistributedClient > create()
Factory function for creating objects
QryptSecurity::SymmetricKeyData::metadata
std::vector< uint8_t > metadata
Symmetric key metadata
Definition: qryptsecurity.h:34
QryptSecurity::IKeyGenDistributedClient::~IKeyGenDistributedClient
virtual ~IKeyGenDistributedClient()
Definition: qryptsecurity.h:80
QryptSecurity::SymmetricKeyData::key
std::vector< uint8_t > key
Symmetric key
Definition: qryptsecurity.h:29
QryptSecurity::KeyConfiguration
Structure to store additional key configuration parameters
Definition: qryptsecurity.h:40
QryptSecurity::ClientConfiguration
Structure to store additional client configuration parameters
Definition: qryptsecurity.h:56
QryptSecurity::SymmetricKeyData
Structure to store symmetric key data
Definition: qryptsecurity.h:24
QryptSecurity::IKeyGenDistributedClient::genInit
virtual SymmetricKeyData genInit(const size_t keySize)=0
Generate symmetric key for this client and metadata for other client
QryptSecurity::HttpClient
Abstract base class for HTTP clients.
Definition: qryptsecurity_http.h:64