37 #ifndef VIRGIL_CRYPTO_VIRGIL_DH_H 38 #define VIRGIL_CRYPTO_VIRGIL_DH_H 40 #include <virgil/crypto/VirgilByteArray.h> 44 namespace virgil {
namespace crypto {
inline namespace primitive {
76 return self_->doCalculate(publicKey, privateKey, privateKeyPassword);
93 struct Model : Concept {
95 explicit Model(Impl impl) : impl_(std::move(impl)) {}
101 return impl_.calculate(publicKey, privateKey, privateKeyPassword);
109 std::shared_ptr<const Concept> self_;
114 #endif //VIRGIL_CRYPTO_VIRGIL_DH_H Definition: VirgilHash.h:265
Root namespace for all Virgil Security libraries.
Definition: VirgilAsn1Compatible.h:46
std::vector< unsigned char > VirgilByteArray
This type represents a sequence of bytes.
Definition: VirgilByteArray.h:54
static VirgilOperationDH getDefault()
Return default implementation.
VirgilByteArray calculate(const VirgilByteArray &publicKey, const VirgilByteArray &privateKey, const VirgilByteArray &privateKeyPassword=VirgilByteArray()) const
Compute shared key by using Diffie-Hellman algorithm.
Definition: VirgilOperationDH.h:73
Define proxy interface for the Diffie-Hellman functionality.
Definition: VirgilOperationDH.h:51
VirgilOperationDH(Impl impl)
Captures implementation object.
Definition: VirgilOperationDH.h:63