18#include "Poco/Net/HTTPServerRequest.h"
27[[nodiscard]] std::string
hashPassword(
const std::string& password);
29[[nodiscard]]
bool verifyPassword(
const std::string& password,
const std::string& storedHash);
31[[nodiscard]]
bool jwt_grants_clearance(
const std::string& jwt,
const std::string& hmac_secret,
int min_clearance);
36 [[nodiscard]]
static bool is_authorized(
const Poco::Net::HTTPServerRequest& req,
std::string hashPassword(const std::string &password)
Definition AuthUtils.cpp:128
bool verifyPassword(const std::string &password, const std::string &storedHash)
Definition AuthUtils.cpp:149
bool jwt_grants_clearance(const std::string &jwt, const std::string &hmac_secret, int min_clearance)
Definition AuthUtils.cpp:159
bool jwt_secret_is_strong(std::string_view secret) noexcept
Definition AuthUtils.cpp:124
bool constant_time_equal(std::string_view a, std::string_view b) noexcept
Definition AuthUtils.cpp:113
constexpr std::size_t k_password_min_length
Definition AuthUtils.hpp:21
constexpr std::size_t k_jwt_secret_min_bytes
Definition AuthUtils.hpp:20
AuthClearance
Definition AuthUtils.hpp:33
@ BLACK
Definition AuthUtils.hpp:33
@ SECRET
Definition AuthUtils.hpp:33
@ PRIVATE
Definition AuthUtils.hpp:33
@ TOP_SECRET
Definition AuthUtils.hpp:33
@ NONE
Definition AuthUtils.hpp:33
@ PUBLIC
Definition AuthUtils.hpp:33
Definition AuthUtils.hpp:35
static bool is_authorized(const Poco::Net::HTTPServerRequest &req, AuthClearance minClearance=AuthClearance::SECRET)
Definition AuthUtils.cpp:186