nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds > Class Template Reference

#include <salsa20.hpp>

+ Collaboration diagram for nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >:

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
 

Public Member Functions

template<typename InputRange , typename OutputRange >
void process (OutputRange &out, InputRange &in, key_schedule_type &schedule, block_type &block)
 
 salsa20 (key_schedule_type &schedule, const key_type &key, const iv_type &iv=iv_type())
 
void seek (key_schedule_type &schedule, block_type &block, std::size_t offset)
 

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 max_key_bits = policy_type::max_key_bits
 
constexpr static const std::size_t min_key_bits = policy_type::min_key_bits
 
constexpr static const std::size_t rounds = policy_type::rounds
 

Detailed Description

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
class nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >

Template Parameters
IVBits
KeyBits
Rounds

Member Typedef Documentation

◆ block_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
typedef policy_type::block_type nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::block_type

◆ iv_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
typedef policy_type::iv_type nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::iv_type

◆ key_schedule_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
typedef policy_type::key_schedule_type nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::key_schedule_type

◆ key_type

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
typedef policy_type::key_type nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::key_type

Constructor & Destructor Documentation

◆ salsa20()

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::salsa20 ( key_schedule_type schedule,
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 Rounds = 20>
template<typename InputRange , typename OutputRange >
void nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::process ( OutputRange &  out,
InputRange &  in,
key_schedule_type schedule,
block_type block 
)
inline

◆ seek()

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
void nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::seek ( key_schedule_type schedule,
block_type block,
std::size_t  offset 
)
inline

Member Data Documentation

◆ iv_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::iv_bits = policy_type::iv_bits
staticconstexpr

◆ key_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::key_bits = policy_type::key_bits
staticconstexpr

◆ key_schedule_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::key_schedule_bits = policy_type::key_schedule_bits
staticconstexpr

◆ key_schedule_size

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::key_schedule_size = policy_type::key_schedule_size
staticconstexpr

◆ max_key_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::max_key_bits = policy_type::max_key_bits
staticconstexpr

◆ min_key_bits

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::min_key_bits = policy_type::min_key_bits
staticconstexpr

◆ rounds

template<std::size_t IVBits, std::size_t KeyBits, std::size_t Rounds = 20>
constexpr static const std::size_t nil::crypto3::stream::salsa20< IVBits, KeyBits, Rounds >::rounds = policy_type::rounds
staticconstexpr

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