2 #ifndef SSP21_CRYTPTO_H 3 #define SSP21_CRYTPTO_H 5 #include "ssp21/crypto/ICryptoBackend.h" 18 static std::shared_ptr<ICryptoBackend> backend;
24 static bool initialize(
const std::shared_ptr<ICryptoBackend>& backend);
28 static void zero_memory(
const wseq32_t& data);
30 static void gen_random(
const wseq32_t& dest);
34 static void hash_sha256(
35 const std::initializer_list<seq32_t>& data,
39 static void hmac_sha256(
41 const std::initializer_list<seq32_t>& data,
45 static void gen_keypair_x25519(
KeyPair& pair);
47 static void dh_x25519(
54 static void hkdf_sha256(
56 const std::initializer_list<seq32_t>& input_key_material,
61 static void gen_keypair_ed25519(
KeyPair& pair);
63 static void sign_ed25519(
const seq32_t& input,
const seq32_t& private_key,
DSAOutput& output, std::error_code& ec);
65 static bool verify_ed25519(
const seq32_t& message,
const seq32_t& signature,
const seq32_t& public_key);
SSP21-cpp main namespace.