nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits > Struct Template Reference

#include <rc4_functions.hpp>

+ Inheritance diagram for nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >:
+ Collaboration diagram for nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >:

Public Types

typedef policy_type::byte_type byte_type
 
typedef std::array< byte_type, iv_sizeiv_type
 
typedef policy_type::key_schedule_type key_schedule_type
 
typedef std::array< byte_type, key_sizekey_type
 
typedef rc4_policy< IVSize, KeyBits > policy_type
 
typedef policy_type::state_type state_type
 
typedef policy_type::word_type word_type
 

Public Member Functions

 BOOST_STATIC_ASSERT (min_key_bits<=KeyBits &&KeyBits<=max_key_bits)
 

Static Public Member Functions

static void generate (key_schedule_type &schedule, state_type &state)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x, 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 shl (word_type x)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shr (word_type x)
 
static word_type shr (word_type x, std::size_t n)
 

Static Public Attributes

constexpr static const std::size_t iv_bits
 
constexpr static const std::size_t iv_size
 
constexpr static const std::size_t key_bits
 
constexpr static const std::size_t key_schedule_bits = policy_type::key_schedule_bits
 
constexpr static const std::size_t key_schedule_size = policy_type::key_schedule_size
 
constexpr static const std::size_t key_size
 
constexpr static const std::size_t max_key_bits
 
constexpr static const std::size_t min_key_bits
 
constexpr static const std::size_t state_bits = policy_type::state_bits
 
constexpr static const std::size_t state_size = policy_type::state_size
 
constexpr static const std::size_t word_bits
 

Member Typedef Documentation

◆ byte_type

template<std::size_t IVSize, std::size_t KeyBits>
typedef policy_type::byte_type nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::byte_type

◆ iv_type

typedef std::array<byte_type, iv_size> nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::iv_type
inherited

◆ key_schedule_type

template<std::size_t IVSize, std::size_t KeyBits>
typedef policy_type::key_schedule_type nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::key_schedule_type

◆ key_type

typedef std::array<byte_type, key_size> nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::key_type
inherited

◆ policy_type

template<std::size_t IVSize, std::size_t KeyBits>
typedef rc4_policy<IVSize, KeyBits> nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::policy_type

◆ state_type

template<std::size_t IVSize, std::size_t KeyBits>
typedef policy_type::state_type nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::state_type

◆ word_type

template<std::size_t IVSize, std::size_t KeyBits>
typedef policy_type::word_type nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::word_type

Member Function Documentation

◆ BOOST_STATIC_ASSERT()

nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::BOOST_STATIC_ASSERT ( min_key_bits<=KeyBits &&KeyBits<=  max_key_bits)
inherited

◆ generate()

template<std::size_t IVSize, std::size_t KeyBits>
static void nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::generate ( key_schedule_type schedule,
state_type state 
)
inlinestatic

◆ rotl() [1/2]

static word_type nil::crypto3::stream::detail::basic_functions< WordBits >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [2/2]

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

◆ rotr() [1/2]

static word_type nil::crypto3::stream::detail::basic_functions< WordBits >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [2/2]

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

◆ shl() [1/2]

static word_type nil::crypto3::stream::detail::basic_functions< WordBits >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [2/2]

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

◆ shr() [1/2]

static word_type nil::crypto3::stream::detail::basic_functions< WordBits >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [2/2]

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

Member Data Documentation

◆ iv_bits

constexpr static const std::size_t nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::iv_bits
staticconstexprinherited

◆ iv_size

constexpr static const std::size_t nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::iv_size
staticconstexprinherited

◆ key_bits

constexpr static const std::size_t nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::key_bits
staticconstexprinherited

◆ key_schedule_bits

template<std::size_t IVSize, std::size_t KeyBits>
constexpr static const std::size_t nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::key_schedule_bits = policy_type::key_schedule_bits
staticconstexpr

◆ key_schedule_size

template<std::size_t IVSize, std::size_t KeyBits>
constexpr static const std::size_t nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::key_schedule_size = policy_type::key_schedule_size
staticconstexpr

◆ key_size

constexpr static const std::size_t nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::key_size
staticconstexprinherited

◆ max_key_bits

constexpr static const std::size_t nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::max_key_bits
staticconstexprinherited

◆ min_key_bits

constexpr static const std::size_t nil::crypto3::stream::detail::rc4_policy< IVBits, KeyBits, std::allocator >::min_key_bits
staticconstexprinherited

◆ state_bits

template<std::size_t IVSize, std::size_t KeyBits>
constexpr static const std::size_t nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::state_bits = policy_type::state_bits
staticconstexpr

◆ state_size

template<std::size_t IVSize, std::size_t KeyBits>
constexpr static const std::size_t nil::crypto3::stream::detail::rc4_functions< IVSize, KeyBits >::state_size = policy_type::state_size
staticconstexpr

◆ word_bits

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

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