31 Asymmetric& operator=(Asymmetric
const&);
32 Asymmetric(Asymmetric
const&);
38 virtual ~Asymmetric() =
default;
40 virtual bool generateKeyPair(::std::string& privateKey, ::std::string& publicKey) ;
42 virtual ::Bedrock::Result<::std::string>
43 parsePrivateKey(::std::string
const& privateKey, ::Crypto::Asymmetric::PrivateKeySigningFormat format) ;
45 virtual ::Bedrock::Result<::std::string> derivePublicKey(::std::string
const& privateKey) ;
47 virtual ::Bedrock::Result<::std::string> constructPublicKey(
48 ::std::variant<::Crypto::Asymmetric::RsaPublicKeyComponents, ::Crypto::Asymmetric::EcPublicKeyComponents>
const&
52 virtual ::Bedrock::Result<
53 ::std::variant<::Crypto::Asymmetric::RsaPublicKeyComponents, ::Crypto::Asymmetric::EcPublicKeyComponents>>
54 deconstructPublicKey(::std::string
const& publicKey) ;
56 virtual ::std::string encryptData(
57 ::std::string
const& publicKey,
58 ::std::string
const& data,
59 ::Crypto::Asymmetric::Padding paddingType,
60 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
64 virtual ::std::string decryptData(
65 ::std::string
const& privateKey,
66 ::std::string
const& data,
67 ::Crypto::Asymmetric::Padding paddingType
70 virtual ::std::string signData(
71 ::std::string
const& privateKey,
72 ::std::string
const& data,
73 ::Crypto::Hash::HashType hash,
74 ::Crypto::Asymmetric::PrivateKeySigningFormat format
77 virtual bool verifyData(
78 ::std::string
const& publicKey,
79 ::std::string
const& signature,
80 ::std::string
const& data,
81 ::Crypto::Hash::HashType hash
85 computeSharedSecret(::std::string
const& myPrivateKey, ::std::string
const& peerPublicKey) ;
93 MCNAPI ::Bedrock::Result<::std::string>
94 $parsePrivateKey(::std::string
const& privateKey, ::Crypto::Asymmetric::PrivateKeySigningFormat format);
96 MCNAPI ::Bedrock::Result<::std::string>
$derivePublicKey(::std::string
const& privateKey);
99 ::std::variant<::Crypto::Asymmetric::RsaPublicKeyComponents, ::Crypto::Asymmetric::EcPublicKeyComponents>
const&
103 MCNAPI ::Bedrock::Result<
104 ::std::variant<::Crypto::Asymmetric::RsaPublicKeyComponents, ::Crypto::Asymmetric::EcPublicKeyComponents>>
108 ::std::string
const& publicKey,
109 ::std::string
const& data,
110 ::Crypto::Asymmetric::Padding paddingType,
111 ::Crypto::Asymmetric::PubKeyFormat keyFormat,
116 $decryptData(::std::string
const& privateKey, ::std::string
const& data, ::Crypto::Asymmetric::Padding paddingType);
119 ::std::string
const& privateKey,
120 ::std::string
const& data,
121 ::Crypto::Hash::HashType hash,
122 ::Crypto::Asymmetric::PrivateKeySigningFormat format
126 ::std::string
const& publicKey,
127 ::std::string
const& signature,
128 ::std::string
const& data,
129 ::Crypto::Hash::HashType hash
132 MCNAPI ::std::string
$computeSharedSecret(::std::string
const& myPrivateKey, ::std::string
const& peerPublicKey);