nil::crypto3::block::detail::md5_policy Struct Reference

#include <md5_policy.hpp>

+ Inheritance diagram for nil::crypto3::block::detail::md5_policy:
+ Collaboration diagram for nil::crypto3::block::detail::md5_policy:

Public Types

typedef std::array< word_type, block_wordsblock_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef std::array< word_type, roundsconstants_type
 
typedef std::array< unsigned, roundskey_indexes_type
 
typedef std::array< word_type, key_wordskey_type
 
typedef boost::uint_t< word_bits >::exact word_type
 
typedef boost::uint_t< word_bits >::exact word_type
 
typedef boost::uint_t< word_bits >::exact word_type
 

Static Public Member Functions

static word_type ff (word_type x, word_type y, word_type z)
 
static word_type gg (word_type x, word_type y, word_type z)
 
static word_type hh (word_type x, word_type y, word_type z)
 
static word_type ii (word_type x, word_type y, word_type z)
 
template<std::size_t n>
static word_type rotl (word_type x)
 
template<std::size_t n>
static word_type rotl (word_type x)
 
template<std::size_t n>
static word_type rotl (word_type x)
 
static word_type rotl (word_type x, std::size_t n)
 
static word_type rotl (word_type x, std::size_t n)
 
static word_type rotl (word_type x, std::size_t n)
 
template<std::size_t n>
static word_type rotr (word_type x)
 
template<std::size_t n>
static word_type rotr (word_type x)
 
template<std::size_t n>
static word_type rotr (word_type x)
 
static word_type rotr (word_type x, std::size_t n)
 
static word_type rotr (word_type x, std::size_t n)
 
static word_type rotr (word_type x, std::size_t n)
 
template<std::size_t n>
static word_type shl (word_type x)
 
template<std::size_t n>
static word_type shl (word_type x)
 
template<std::size_t n>
static word_type shl (word_type x)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shl (word_type x, std::size_t n)
 
template<std::size_t n>
static word_type shr (word_type x)
 
template<std::size_t n>
static word_type shr (word_type x)
 
template<std::size_t n>
static word_type shr (word_type x)
 
static word_type shr (word_type x, std::size_t n)
 
static word_type shr (word_type x, std::size_t n)
 
static word_type shr (word_type x, std::size_t n)
 

Static Public Attributes

constexpr static const std::size_t block_bits = 128
 
constexpr static const std::size_t block_words = block_bits / word_bits
 
constexpr static const std::size_t byte_bits = CHAR_BIT
 
constexpr static const constants_type constants
 
constexpr static const std::size_t key_bits = key_words * word_bits
 
constexpr static const key_indexes_type key_indexes
 
constexpr static const std::size_t key_words = 16
 
constexpr static const std::size_t rounds = 64
 
constexpr static const std::size_t word_bits = 32
 

Member Typedef Documentation

◆ block_type

◆ byte_type [1/3]

typedef boost::uint_t<byte_bits>::exact nil::crypto3::detail::basic_functions< 32 >::byte_type
inherited

◆ byte_type [2/3]

typedef boost::uint_t<byte_bits>::exact nil::crypto3::detail::basic_functions< 32 >::byte_type
inherited

◆ byte_type [3/3]

typedef boost::uint_t<byte_bits>::exact nil::crypto3::detail::basic_functions< 32 >::byte_type
inherited

◆ constants_type

◆ key_indexes_type

◆ key_type

◆ word_type [1/3]

typedef boost::uint_t<word_bits>::exact nil::crypto3::detail::basic_functions< 32 >::word_type
inherited

◆ word_type [2/3]

typedef boost::uint_t<word_bits>::exact nil::crypto3::detail::basic_functions< 32 >::word_type
inherited

◆ word_type [3/3]

typedef boost::uint_t<word_bits>::exact nil::crypto3::detail::basic_functions< 32 >::word_type
inherited

Member Function Documentation

◆ ff()

static word_type nil::crypto3::block::detail::md5_functions::ff ( word_type  x,
word_type  y,
word_type  z 
)
inlinestaticinherited

◆ gg()

static word_type nil::crypto3::block::detail::md5_functions::gg ( word_type  x,
word_type  y,
word_type  z 
)
inlinestaticinherited

◆ hh()

static word_type nil::crypto3::block::detail::md5_functions::hh ( word_type  x,
word_type  y,
word_type  z 
)
inlinestaticinherited

◆ ii()

static word_type nil::crypto3::block::detail::md5_functions::ii ( word_type  x,
word_type  y,
word_type  z 
)
inlinestaticinherited

◆ rotl() [1/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [2/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [3/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [4/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotl() [5/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotl() [6/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [1/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [2/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [3/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [4/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [5/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [6/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [1/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [2/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [3/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [4/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [5/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [6/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [1/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [2/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [3/6]

template<std::size_t n>
static word_type nil::crypto3::detail::basic_functions< 32 >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [4/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [5/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [6/6]

static word_type nil::crypto3::detail::basic_functions< 32 >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

Member Data Documentation

◆ block_bits

constexpr static const std::size_t nil::crypto3::block::detail::md5_policy::block_bits = 128
staticconstexpr

◆ block_words

constexpr static const std::size_t nil::crypto3::block::detail::md5_policy::block_words = block_bits / word_bits
staticconstexpr

◆ byte_bits

constexpr static const std::size_t nil::crypto3::stream::detail::basic_functions< 32 >::byte_bits = CHAR_BIT
staticconstexprinherited

◆ constants

constexpr md5_policy::constants_type const nil::crypto3::block::detail::md5_policy::constants
staticconstexpr
Initial value:
= {{
0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391,
}}

◆ key_bits

constexpr static const std::size_t nil::crypto3::block::detail::md5_policy::key_bits = key_words * word_bits
staticconstexpr

◆ key_indexes

constexpr md5_policy::key_indexes_type const nil::crypto3::block::detail::md5_policy::key_indexes
staticconstexpr
Initial value:
= {{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12,
5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2,
0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9,
}}

◆ key_words

constexpr static const std::size_t nil::crypto3::block::detail::md5_policy::key_words = 16
staticconstexpr

◆ rounds

constexpr static const std::size_t nil::crypto3::block::detail::md5_policy::rounds = 64
staticconstexpr

◆ word_bits

constexpr static const std::size_t nil::crypto3::stream::detail::basic_functions< 32 >::word_bits = 32
staticconstexprinherited

The documentation for this struct was generated from the following file: