2 #ifndef SSP21_ICRYTPTOBACKEND_H 3 #define SSP21_ICRYTPTOBACKEND_H 5 #include "ssp21/crypto/BufferTypes.h" 7 #include "ser4cpp/util/Uncopyable.h" 9 #include <system_error> 10 #include <initializer_list> 24 virtual void zero_memory(
const wseq32_t& data) = 0;
26 virtual void gen_random(
const wseq32_t& dest) = 0;
28 virtual bool secure_equals(
const seq32_t& lhs,
const seq32_t& rhs) = 0;
30 virtual void hash_sha256(
31 const std::initializer_list<seq32_t>& data,
35 virtual void hmac_sha256(
37 const std::initializer_list<seq32_t>& data,
41 virtual void gen_keypair_x25519(
KeyPair& pair) = 0;
43 virtual void dh_x25519(
50 virtual void hkdf_sha256(
52 const std::initializer_list<seq32_t>& input_key_material,
57 virtual void gen_keypair_ed25519(
KeyPair& pair) = 0;
59 virtual void sign_ed25519(
const seq32_t& input,
const seq32_t& private_key,
DSAOutput& output, std::error_code& ec) = 0;
61 virtual bool verify_ed25519(
const seq32_t& message,
const seq32_t& signature,
const seq32_t& public_key) = 0;
SSP21-cpp main namespace.