nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k > Struct Template Reference

exploder_step obtains an output value represented in OutputEndianness endianness from an input value represented in InputEndianness endianness when k output bits have already been processed. It uses unit_reverser and bit_reverser to deal with the order of units and bits in the output value, respectively. Shift constant is determined by the exploder_shift trait. More...

#include <exploder.hpp>

+ Collaboration diagram for nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >:

Static Public Member Functions

template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 
template<typename InputValue , typename OutputIterator >
static void step (InputValue const &in, OutputIterator &out)
 

Static Public Attributes

constexpr static int const shift
 

Detailed Description

template<typename InputEndianness, typename OutputEndianness, int UnitBits, int InputBits, int OutputBits, int k>
struct nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >

exploder_step obtains an output value represented in OutputEndianness endianness from an input value represented in InputEndianness endianness when k output bits have already been processed. It uses unit_reverser and bit_reverser to deal with the order of units and bits in the output value, respectively. Shift constant is determined by the exploder_shift trait.

Template Parameters
InputEndianness
OutputEndianness
UnitBits
InputBits
OutputBits
k

Member Function Documentation

◆ step() [1/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [2/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [3/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [4/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [5/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [6/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [7/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

◆ step() [8/8]

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
template<typename InputValue , typename OutputIterator >
static void nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::step ( InputValue const &  in,
OutputIterator &  out 
)
inlinestatic

Member Data Documentation

◆ shift

template<typename InputEndianness , typename OutputEndianness , int UnitBits, int InputBits, int OutputBits, int k>
constexpr static int const nil::crypto3::detail::exploder_step< InputEndianness, OutputEndianness, UnitBits, InputBits, OutputBits, k >::shift
staticconstexpr
Initial value:
=
exploder_shift<InputEndianness, UnitBits, InputBits, OutputBits, k>::value

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