2 #ifndef SSP21_SODIUM_CRYPTOBACKEND_H 3 #define SSP21_SODIUM_CRYPTOBACKEND_H 5 #include "ssp21/crypto/ICryptoBackend.h" 20 static bool initialize();
22 virtual void zero_memory(
const wseq32_t& data)
override;
24 virtual void gen_random(
const wseq32_t& dest)
override;
26 virtual bool secure_equals(
const seq32_t& lhs,
const seq32_t& rhs)
override;
28 virtual void hash_sha256(
29 const std::initializer_list<seq32_t>& data,
33 virtual void hmac_sha256(
35 const std::initializer_list<seq32_t>& data,
39 virtual void gen_keypair_x25519(
KeyPair& pair)
override;
41 virtual void dh_x25519(
48 virtual void hkdf_sha256(
50 const std::initializer_list<seq32_t>& input_key_material,
55 virtual void gen_keypair_ed25519(
KeyPair& pair)
override;
57 virtual void sign_ed25519(
const seq32_t& input,
const seq32_t& private_key,
DSAOutput& output, std::error_code& ec)
override;
59 virtual bool verify_ed25519(
const seq32_t& message,
const seq32_t& signature,
const seq32_t& public_key)
override;
SSP21-cpp main namespace.