17 enum class SystemType :
int {
34 OpenSSLInterface& operator=(OpenSSLInterface
const&);
35 OpenSSLInterface(OpenSSLInterface
const&);
41 virtual ~OpenSSLInterface() =
default;
43 virtual bool generateKeyPair(::std::string& privateKey, ::std::string& publicKey) ;
46 constructPublicKey(::std::string
const& modulus, ::std::string
const& exponent, ::std::string& keyOut) ;
48 virtual ::std::string encryptData(
49 ::std::string
const& publicKey,
50 ::std::string
const& data,
51 ::Crypto::Asymmetric::Padding paddingType,
52 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
56 virtual ::std::string decryptData(
57 ::std::string
const& privateKey,
58 ::std::string
const& data,
59 ::Crypto::Asymmetric::Padding paddingType
62 virtual ::std::string signData(
63 ::std::string
const& privateKey,
64 ::std::string
const& data,
65 ::Crypto::Hash::HashType hash,
66 ::Crypto::Asymmetric::PrivateKeySigningFormat format
69 virtual bool verifyData(
70 ::std::string
const& publicKey,
71 ::std::string
const& signature,
72 ::std::string
const& data,
73 ::Crypto::Hash::HashType hash
77 computeSharedSecret(::std::string
const& myPrivateKey, ::std::string
const& peerPublicKey) ;
86 ::std::string
const& privateKey,
87 ::std::string
const& data,
88 ::Crypto::Asymmetric::Padding paddingType
92 ::std::string
const& publicKey,
93 ::std::string
const& data,
94 ::Crypto::Asymmetric::Padding paddingType,
95 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
107 MCNAPI
bool $constructPublicKey(::std::string
const& modulus, ::std::string
const& exponent, ::std::string& keyOut);
110 ::std::string
const& publicKey,
111 ::std::string
const& data,
112 ::Crypto::Asymmetric::Padding paddingType,
113 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
118 $decryptData(::std::string
const& privateKey, ::std::string
const& data, ::Crypto::Asymmetric::Padding paddingType);
121 ::std::string
const& privateKey,
122 ::std::string
const& data,
123 ::Crypto::Hash::HashType hash,
124 ::Crypto::Asymmetric::PrivateKeySigningFormat format
128 ::std::string
const& publicKey,
129 ::std::string
const& signature,
130 ::std::string
const& data,
131 ::Crypto::Hash::HashType hash
134 MCNAPI ::std::string
$computeSharedSecret(::std::string
const& myPrivateKey, ::std::string
const& peerPublicKey);
MCAPI::std::string $encryptData(::std::string const &publicKey, ::std::string const &data, ::Crypto::Asymmetric::Padding paddingType, ::Crypto::Asymmetric::PubKeyFormat keyFormat, bool useSHA256)
MCAPI::std::string _encryptDataRSA(::std::string const &publicKey, ::std::string const &data, ::Crypto::Asymmetric::Padding paddingType, ::Crypto::Asymmetric::PubKeyFormat keyFormat, bool useSHA256)