PrivMX Endpoint v2.7.0
Loading...
Searching...
No Matches
CryptoApi.hpp
1#ifndef _PRIVMXLIB_ENDPOINT_CRYPTO_CRYPTOAPI_HPP_
2#define _PRIVMXLIB_ENDPOINT_CRYPTO_CRYPTOAPI_HPP_
3
4#include <memory>
5#include <optional>
6#include <string>
7
8#include "privmx/endpoint/core/Buffer.hpp"
9#include "privmx/endpoint/crypto/Types.hpp"
10
11namespace privmx {
12namespace endpoint {
13namespace crypto {
14
15class CryptoApiImpl;
16
20class CryptoApi {
21public:
27 static CryptoApi create();
28
32 CryptoApi() = default;
33
41 core::Buffer signData(const core::Buffer& data, const std::string& privateKey);
42
51 bool verifySignature(const core::Buffer& data, const core::Buffer& signature, const std::string& publicKey);
52
59 std::string generatePrivateKey(const std::optional<std::string>& randomSeed);
60
69 [[deprecated("Use derivePrivateKey2(const std::string& password, const std::string& salt).")]]
70 std::string derivePrivateKey(const std::string& password, const std::string& salt);
71
81 std::string derivePrivateKey2(const std::string& password, const std::string& salt);
82
88 std::string derivePublicKey(const std::string& privateKey);
89
95
104
113
120 std::string convertPEMKeytoWIFKey(const std::string& pemKey);
121
128 std::string convertPGPAsn1KeyToBase58DERKey(const std::string& pgpKey);
129
137 BIP39_t generateBip39(std::size_t strength, const std::string& password = std::string());
138
146 BIP39_t fromMnemonic(const std::string& mnemonic, const std::string& password = std::string());
147
155 BIP39_t fromEntropy(const core::Buffer& entropy, const std::string& password = std::string());
156
163 std::string entropyToMnemonic(const core::Buffer& entropy);
164
171 core::Buffer mnemonicToEntropy(const std::string& mnemonic);
172
180 core::Buffer mnemonicToSeed(const std::string& mnemonic, const std::string& password = std::string());
181
182private:
183 CryptoApi(const std::shared_ptr<CryptoApiImpl>& impl);
184 std::shared_ptr<CryptoApiImpl> _impl;
185};
186
187} // namespace crypto
188} // namespace endpoint
189} // namespace privmx
190
191#endif // _PRIVMXLIB_ENDPOINT_CRYPTO_CRYPTOAPI_HPP_
Definition Buffer.hpp:13
core::Buffer decryptDataSymmetric(const core::Buffer &data, const core::Buffer &symmetricKey)
core::Buffer encryptDataSymmetric(const core::Buffer &data, const core::Buffer &symmetricKey)
std::string derivePrivateKey2(const std::string &password, const std::string &salt)
BIP39_t fromEntropy(const core::Buffer &entropy, const std::string &password=std::string())
core::Buffer mnemonicToSeed(const std::string &mnemonic, const std::string &password=std::string())
core::Buffer mnemonicToEntropy(const std::string &mnemonic)
BIP39_t fromMnemonic(const std::string &mnemonic, const std::string &password=std::string())
std::string convertPEMKeytoWIFKey(const std::string &pemKey)
std::string generatePrivateKey(const std::optional< std::string > &randomSeed)
std::string entropyToMnemonic(const core::Buffer &entropy)
BIP39_t generateBip39(std::size_t strength, const std::string &password=std::string())
std::string derivePublicKey(const std::string &privateKey)
bool verifySignature(const core::Buffer &data, const core::Buffer &signature, const std::string &publicKey)
std::string derivePrivateKey(const std::string &password, const std::string &salt)
std::string convertPGPAsn1KeyToBase58DERKey(const std::string &pgpKey)
core::Buffer signData(const core::Buffer &data, const std::string &privateKey)
Definition Types.hpp:25