14enum class OutputEncoding { kBinary, kBase16, kHex = kBase16, kBase64 };
 
   16enum class Pad { kWith, kWithout };
 
   18#ifndef USERVER_NO_CRYPTOPP_BLAKE2 
   23                       OutputEncoding encoding = OutputEncoding::kHex);
 
   29std::string 
Sha1(std::string_view data,
 
   30                 OutputEncoding encoding = OutputEncoding::kHex);
 
   35std::string 
Sha224(std::string_view data,
 
   36                   OutputEncoding encoding = OutputEncoding::kHex);
 
   41std::string 
Sha256(std::string_view data,
 
   42                   OutputEncoding encoding = OutputEncoding::kHex);
 
   47std::string 
Sha384(std::string_view data,
 
   48                   OutputEncoding encoding = OutputEncoding::kHex);
 
   53std::string 
Sha512(std::string_view data,
 
   54                   OutputEncoding encoding = OutputEncoding::kHex);
 
   62std::string 
HmacSha1(std::string_view key, std::string_view message,
 
   63                     OutputEncoding encoding = OutputEncoding::kHex);
 
   71std::string 
HmacSha256(std::string_view key, std::string_view message,
 
   72                       OutputEncoding encoding = OutputEncoding::kHex);
 
   80std::string 
HmacSha384(std::string_view key, std::string_view message,
 
   81                       OutputEncoding encoding = OutputEncoding::kHex);
 
   89std::string 
HmacSha512(std::string_view key, std::string_view message,
 
   90                       OutputEncoding encoding = OutputEncoding::kHex);
 
   98std::string 
Md5(std::string_view data,
 
   99                OutputEncoding encoding = OutputEncoding::kHex);