26 virtual bool generateKeyPair(::std::string& privateKey, ::std::string& publicKey) = 0;
28 virtual ::Bedrock::Result<::std::string>
29 parsePrivateKey(::std::string
const& privateKey, ::Crypto::Asymmetric::PrivateKeySigningFormat format) = 0;
31 virtual ::Bedrock::Result<::std::string> derivePublicKey(::std::string
const& privateKey) = 0;
33 virtual ::Bedrock::Result<::std::string> constructPublicKey(
34 ::std::variant<::Crypto::Asymmetric::RsaPublicKeyComponents, ::Crypto::Asymmetric::EcPublicKeyComponents>
const&
38 virtual ::Bedrock::Result<
39 ::std::variant<::Crypto::Asymmetric::RsaPublicKeyComponents, ::Crypto::Asymmetric::EcPublicKeyComponents>>
40 deconstructPublicKey(::std::string
const& publicKey) = 0;
42 virtual ::std::string encryptData(
43 ::std::string
const& publicKey,
44 ::std::string
const& data,
45 ::Crypto::Asymmetric::Padding paddingType,
46 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
50 virtual ::std::string decryptData(
51 ::std::string
const& privateKey,
52 ::std::string
const& data,
53 ::Crypto::Asymmetric::Padding paddingType
56 virtual ::std::string signData(
57 ::std::string
const& privateKey,
58 ::std::string
const& data,
59 ::Crypto::Hash::HashType hash,
60 ::Crypto::Asymmetric::PrivateKeySigningFormat format
63 virtual bool verifyData(
64 ::std::string
const& publicKey,
65 ::std::string
const& signature,
66 ::std::string
const& data,
67 ::Crypto::Hash::HashType hash
71 computeSharedSecret(::std::string
const& myPrivateKey, ::std::string
const& peerPublicKey) = 0;