19 static std::pair<std::string, ccf::crypto::MDType> parse_want_repr_digest(
20 const std::string& want_repr_digest)
22 std::string best_algo;
26 for (
const auto& entry :
ccf::nonstd::split(want_repr_digest,
","))
28 auto [algo, pref_sv] =
29 ccf::nonstd::split_1(ccf::nonstd::trim(entry),
"=");
30 auto algo_name = ccf::nonstd::trim(algo);
33 auto pref_trimmed = ccf::nonstd::trim(pref_sv);
34 if (!pref_trimmed.empty())
36 const auto [p, ec] = std::from_chars(
37 pref_trimmed.data(), pref_trimmed.data() + pref_trimmed.size(), pref);
38 if (ec != std::errc() || pref < 1)
49 if (algo_name ==
"sha-256")
53 else if (algo_name ==
"sha-384")
57 else if (algo_name ==
"sha-512")
64 best_algo = std::string(algo_name);
75 return std::make_pair(best_algo, best_md);
MDType
Definition md_type.h:10
Definition http_accept.h:13
Definition app_interface.h:13