28 static std::unique_ptr<HashFunction> create(std::string_view algo_spec, std::string_view provider =
"");
37 static std::unique_ptr<HashFunction> create_or_throw(std::string_view algo_spec, std::string_view provider =
"");
43 static std::vector<std::string> providers(std::string_view algo_spec);
49 virtual std::string
provider()
const {
return "base"; }
61 virtual std::string
name()
const = 0;
77 virtual std::unique_ptr<HashFunction>
copy_state()
const = 0;
82 virtual std::unique_ptr<HashFunction>
new_object()
const = 0;