RESTinio
Namespaces | Classes | Typedefs | Functions | Variables
restinio::utils::sha1 Namespace Reference

Namespaces

namespace  details
 

Classes

struct  builder_t
 

Typedefs

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

Functions

template<class T >
std::uint8_t as_uint8 (T what)
 
template<class T >
std::uint32_t as_uint32 (T what)
 
template<class T >
const std::uint8_t * as_uint8_ptr (const T *what)
 
template<unsigned int Shift>
std::uint32_t rotate_left (const std::uint32_t x)
 
template<unsigned int Shift>
std::uint8_t octet_from (std::uint32_t x)
 
void 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 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 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 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 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 transform (digest_t &digest, const byte_block_t &buf)
 
std::string to_hex_string (const digest_t &what)
 
std::string to_string (const digest_t &what)
 
digest_t make_digest (const std::uint8_t *what, std::size_t length)
 
template<class T >
digest_t make_digest (const T *begin, const T *end)
 
digest_t make_digest (const char *what, std::size_t length)
 
digest_t make_digest (string_view_t sv)
 

Variables

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

Typedef Documentation

◆ byte_block_t

using restinio::utils::sha1::byte_block_t = typedef std::array< std::uint8_t, block_size >

Definition at line 43 of file sha1.hpp.

◆ digest_t

using restinio::utils::sha1::digest_t = typedef std::array< std::uint32_t, digest_array_size >

Definition at line 45 of file sha1.hpp.

◆ int_block_t

using restinio::utils::sha1::int_block_t = typedef std::array< std::uint32_t, block_ints >

Definition at line 44 of file sha1.hpp.

Function Documentation

◆ as_uint32()

template<class T >
std::uint32_t restinio::utils::sha1::as_uint32 ( what)
inline

Definition at line 56 of file sha1.hpp.

◆ as_uint8()

template<class T >
std::uint8_t restinio::utils::sha1::as_uint8 ( what)
inline

Definition at line 49 of file sha1.hpp.

◆ as_uint8_ptr()

template<class T >
const std::uint8_t * restinio::utils::sha1::as_uint8_ptr ( const T *  what)

Definition at line 63 of file sha1.hpp.

◆ make_digest() [1/4]

digest_t restinio::utils::sha1::make_digest ( const char *  what,
std::size_t  length 
)
inline

Definition at line 434 of file sha1.hpp.

◆ make_digest() [2/4]

digest_t restinio::utils::sha1::make_digest ( const std::uint8_t *  what,
std::size_t  length 
)
inline

Definition at line 417 of file sha1.hpp.

◆ make_digest() [3/4]

template<class T >
digest_t restinio::utils::sha1::make_digest ( const T *  begin,
const T *  end 
)
inline

Definition at line 424 of file sha1.hpp.

◆ make_digest() [4/4]

digest_t restinio::utils::sha1::make_digest ( string_view_t  sv)
inline

Definition at line 441 of file sha1.hpp.

◆ octet_from()

template<unsigned int Shift>
std::uint8_t restinio::utils::sha1::octet_from ( std::uint32_t  x)
inline

Definition at line 77 of file sha1.hpp.

◆ R0()

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 
)
inline

Definition at line 89 of file sha1.hpp.

◆ R1()

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 
)
inline

Definition at line 97 of file sha1.hpp.

◆ R2()

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 
)
inline

Definition at line 106 of file sha1.hpp.

◆ R3()

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 
)
inline

Definition at line 114 of file sha1.hpp.

◆ R4()

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 
)
inline

Definition at line 123 of file sha1.hpp.

◆ rotate_left()

template<unsigned int Shift>
std::uint32_t restinio::utils::sha1::rotate_left ( const std::uint32_t  x)

Definition at line 70 of file sha1.hpp.

◆ to_hex_string()

std::string restinio::utils::sha1::to_hex_string ( const digest_t what)
inline

Definition at line 373 of file sha1.hpp.

◆ to_string()

std::string restinio::utils::sha1::to_string ( const digest_t what)
inline

Definition at line 398 of file sha1.hpp.

◆ transform()

void restinio::utils::sha1::transform ( digest_t digest,
const byte_block_t buf 
)
inline

Definition at line 131 of file sha1.hpp.

Variable Documentation

◆ block_ints

constexpr std::uint8_t restinio::utils::sha1::block_ints = 16
constexpr

Definition at line 32 of file sha1.hpp.

◆ block_size

constexpr std::uint8_t restinio::utils::sha1::block_size = 64
constexpr

Definition at line 29 of file sha1.hpp.

◆ digest_array_size

constexpr std::size_t restinio::utils::sha1::digest_array_size = digest_size / word_size
constexpr

Definition at line 41 of file sha1.hpp.

◆ digest_size

constexpr std::uint8_t restinio::utils::sha1::digest_size = 20
constexpr

Definition at line 38 of file sha1.hpp.

◆ word_size

constexpr std::uint8_t restinio::utils::sha1::word_size = 4
constexpr

Definition at line 35 of file sha1.hpp.