RESTinio
Classes | Namespaces | Typedefs | Functions | Variables
sha1.hpp File Reference
#include <restinio/utils/impl/bitops.hpp>
#include <string>
#include <array>
#include <exception>
#include <iostream>
#include <algorithm>

Go to the source code of this file.

Classes

struct  restinio::utils::sha1::builder_t
 

Namespaces

namespace  restinio
 
namespace  restinio::utils
 
namespace  restinio::utils::sha1
 
namespace  restinio::utils::sha1::details
 

Typedefs

using restinio::utils::sha1::byte_block_t = std::array< std::uint8_t, block_size >
 
using restinio::utils::sha1::int_block_t = std::array< std::uint32_t, block_ints >
 
using restinio::utils::sha1::digest_t = std::array< std::uint32_t, digest_array_size >
 

Functions

template<class T >
std::uint8_t restinio::utils::sha1::as_uint8 (T what)
 
template<class T >
std::uint32_t restinio::utils::sha1::as_uint32 (T what)
 
template<class T >
const std::uint8_t * restinio::utils::sha1::as_uint8_ptr (const T *what)
 
template<unsigned int Shift>
std::uint32_t restinio::utils::sha1::rotate_left (const std::uint32_t x)
 
template<unsigned int Shift>
std::uint8_t restinio::utils::sha1::octet_from (std::uint32_t x)
 
void restinio::utils::sha1::R0 (const int_block_t &block, const uint32_t v, uint32_t &w, const uint32_t x, const uint32_t y, uint32_t &z, const size_t i)
 
void restinio::utils::sha1::R1 (int_block_t &block, const uint32_t v, uint32_t &w, const uint32_t x, const uint32_t y, uint32_t &z, const size_t i)
 
void restinio::utils::sha1::R2 (int_block_t &block, const uint32_t v, uint32_t &w, const uint32_t x, const uint32_t y, uint32_t &z, const size_t i)
 
void restinio::utils::sha1::R3 (int_block_t &block, const uint32_t v, uint32_t &w, const uint32_t x, const uint32_t y, uint32_t &z, const size_t i)
 
void restinio::utils::sha1::R4 (int_block_t &block, const uint32_t v, uint32_t &w, const uint32_t x, const uint32_t y, uint32_t &z, const size_t i)
 
void restinio::utils::sha1::transform (digest_t &digest, const byte_block_t &buf)
 
template<unsigned int Shift>
unsigned int restinio::utils::sha1::details::halfbyte (digest_t::value_type v)
 
template<unsigned int Shift>
unsigned int restinio::utils::sha1::details::byte (digest_t::value_type v)
 
std::string restinio::utils::sha1::to_hex_string (const digest_t &what)
 
std::string restinio::utils::sha1::to_string (const digest_t &what)
 
digest_t restinio::utils::sha1::make_digest (const std::uint8_t *what, std::size_t length)
 
template<class T >
digest_t restinio::utils::sha1::make_digest (const T *begin, const T *end)
 
digest_t restinio::utils::sha1::make_digest (const char *what, std::size_t length)
 
digest_t restinio::utils::sha1::make_digest (string_view_t sv)
 

Variables

constexpr std::uint8_t restinio::utils::sha1::block_size = 64
 
constexpr std::uint8_t restinio::utils::sha1::block_ints = 16
 
constexpr std::uint8_t restinio::utils::sha1::word_size = 4
 
constexpr std::uint8_t restinio::utils::sha1::digest_size = 20
 
constexpr std::size_t restinio::utils::sha1::digest_array_size = digest_size / word_size