78 Generic(Type::X25519, std::move(keypair)) {}
117 return X25519::MakePointer<X25519>(*
this);
125 return X25519::MakePointer<X25519>(std::move(*
this));
133 std::optional<Secure::Password>
Share(std::string_view peerPublicKey)
const noexcept override;
143 std::string_view peerPublicKey)
noexcept;
Abstract key-agreement object.
Definition generic.hxx:81
X25519 shared-secret derivation.
Definition x25519.hxx:67
X25519(X25519 &&other) noexcept=default
Move constructor.
X25519(const X25519 &other)=default
Copy constructor.
Generic::PointerType Move() override
Move this object into a new instance.
Definition x25519.hxx:124
std::optional< Secure::Password > Share(std::string_view peerPublicKey) const noexcept override
Derive a shared secret.
static std::optional< Secure::Password > DeriveSharedSecret(KeyPair::Generic::PointerType keypair, std::string_view peerPublicKey) noexcept
Derive a shared secret without an instance.
X25519(KeyPair::Generic::PointerType keypair) noexcept
Construct from an X25519 keypair (needs private key).
Definition x25519.hxx:77
~X25519() noexcept
Destructor.
Root namespace of the StormByte suite.
#define STORMBYTE_CRYPTO_PUBLIC
Definition visibility.h:53