nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize > Class Template Reference

#include <rc4.hpp>

+ Collaboration diagram for nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >:

Public Types

typedef policy_type::block_type block_type
 
typedef policy_type::iv_type iv_type
 
typedef policy_type::key_schedule_type key_schedule_type
 
typedef policy_type::key_type key_type
 
typedef policy_type::state_type state_type
 

Public Member Functions

template<typename OutputRange , typename InputRange >
void process (OutputRange &out, InputRange &in, key_schedule_type &schedule, state_type &state, const block_type &block)
 
 rc4 (key_schedule_type &schedule, state_type &state, const key_type &key, const iv_type &iv=iv_type())
 

Static Public Attributes

constexpr static const std::size_t iv_bits = policy_type::iv_bits
 
constexpr static const std::size_t key_bits = policy_type::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 = policy_type::key_size
 
constexpr static const std::size_t skip_size = SkipSize
 
constexpr static const std::size_t state_bits = policy_type::state_bits
 
constexpr static const std::size_t state_size = policy_type::state_size
 

Protected Member Functions

void schedule_key (block_type &block, key_schedule_type &schedule, state_type &state, const key_type &key)
 

Detailed Description

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
class nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >

Template Parameters
IVBits
KeyBits

Member Typedef Documentation

◆ block_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
typedef policy_type::block_type nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::block_type

◆ iv_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
typedef policy_type::iv_type nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::iv_type

◆ key_schedule_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
typedef policy_type::key_schedule_type nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::key_schedule_type

◆ key_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
typedef policy_type::key_type nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::key_type

◆ state_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
typedef policy_type::state_type nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::state_type

Constructor & Destructor Documentation

◆ rc4()

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::rc4 ( key_schedule_type schedule,
state_type state,
const key_type key,
const iv_type iv = iv_type() 
)
inline

Member Function Documentation

◆ process()

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
template<typename OutputRange , typename InputRange >
void nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::process ( OutputRange &  out,
InputRange &  in,
key_schedule_type schedule,
state_type state,
const block_type block 
)
inline

◆ schedule_key()

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
void nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::schedule_key ( block_type block,
key_schedule_type schedule,
state_type state,
const key_type key 
)
inlineprotected

Member Data Documentation

◆ iv_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::iv_bits = policy_type::iv_bits
staticconstexpr

◆ key_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::key_bits = policy_type::key_bits
staticconstexpr

◆ key_schedule_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::key_schedule_bits = policy_type::key_schedule_bits
staticconstexpr

◆ key_schedule_size

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::key_schedule_size = policy_type::key_schedule_size
staticconstexpr

◆ key_size

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::key_size = policy_type::key_size
staticconstexpr

◆ skip_size

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::skip_size = SkipSize
staticconstexpr

◆ state_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::state_bits = policy_type::state_bits
staticconstexpr

◆ state_size

template<std::size_t IVBits, std::size_t KeyBits, std::size_t SkipSize>
constexpr static const std::size_t nil::crypto3::stream::rc4< IVBits, KeyBits, SkipSize >::state_size = policy_type::state_size
staticconstexpr

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