nil::crypto3::block::detail::kasumi_functions Struct Reference

#include <kasumi_functions.hpp>

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

Public Types

typedef std::array< word_type, block_wordsblock_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef boost::uint_t< CHAR_BIT >::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, key_schedule_sizekey_schedule_type
 
typedef std::array< word_type, key_wordskey_type
 
typedef std::array< word_type, round_constants_sizeround_constants_type
 
typedef std::array< byte_type, s7_sbox_sizes7_substitution_type
 
typedef std::array< uint16_t, s9_substitution_sizes9_substitution_type
 
typedef kasumi_policy::word_type word_type
 

Static Public Member Functions

static word_type FI (word_type I, word_type K)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x)
 
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)
 
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)
 
static word_type rotr (word_type x)
 
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)
 
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)
 
static word_type shl (word_type x)
 
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)
 
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)
 
static word_type shr (word_type x)
 
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 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
 
constexpr static const std::size_t key_bits = 128
 
constexpr static const std::size_t key_schedule_size = 64
 
constexpr static const std::size_t key_words = key_bits / word_bits
 
constexpr static const round_constants_type round_constants
 
constexpr static const std::size_t round_constants_size = 16
 
constexpr static const std::size_t rounds = 8
 
constexpr static const std::size_t s7_sbox_size = 128
 
constexpr static const s7_substitution_type s7_substitution
 
constexpr static const s9_substitution_type s9_substitution
 
static const std::size_t s9_substitution_size = 512
 
constexpr static const std::size_t word_bits = kasumi_policy::word_bits
 

Member Typedef Documentation

◆ block_type

◆ byte_type [1/4]

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

◆ byte_type [2/4]

typedef boost::uint_t<CHAR_BIT>::exact nil::crypto3::detail::basic_functions< WordBits >::byte_type
inherited

◆ byte_type [3/4]

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

◆ byte_type [4/4]

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

◆ key_schedule_type

◆ key_type

◆ round_constants_type

◆ s7_substitution_type

◆ s9_substitution_type

◆ word_type

Member Function Documentation

◆ FI()

static word_type nil::crypto3::block::detail::kasumi_functions::FI ( word_type  I,
word_type  K 
)
inlinestatic

◆ rotl() [1/8]

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

◆ rotl() [2/8]

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

◆ rotl() [3/8]

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

◆ rotl() [4/8]

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

◆ rotl() [5/8]

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

◆ rotl() [6/8]

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

◆ rotl() [7/8]

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

◆ rotl() [8/8]

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

◆ rotr() [1/8]

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

◆ rotr() [2/8]

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

◆ rotr() [3/8]

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

◆ rotr() [4/8]

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

◆ rotr() [5/8]

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

◆ rotr() [6/8]

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

◆ rotr() [7/8]

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

◆ rotr() [8/8]

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

◆ shl() [1/8]

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

◆ shl() [2/8]

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

◆ shl() [3/8]

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

◆ shl() [4/8]

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

◆ shl() [5/8]

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

◆ shl() [6/8]

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

◆ shl() [7/8]

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

◆ shl() [8/8]

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

◆ shr() [1/8]

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

◆ shr() [2/8]

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

◆ shr() [3/8]

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

◆ shr() [4/8]

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

◆ shr() [5/8]

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

◆ shr() [6/8]

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

◆ shr() [7/8]

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

◆ shr() [8/8]

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

Member Data Documentation

◆ block_bits

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::block_bits = 128
staticconstexprinherited

◆ block_words

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::block_words = block_bits / word_bits
staticconstexprinherited

◆ byte_bits

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

◆ key_bits

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::key_bits = 128
staticconstexprinherited

◆ key_schedule_size

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::key_schedule_size = 64
staticconstexprinherited

◆ key_words

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::key_words = key_bits / word_bits
staticconstexprinherited

◆ round_constants

constexpr const kasumi_policy::round_constants_type nil::crypto3::block::detail::kasumi_policy::round_constants
staticconstexprinherited
Initial value:
= {0x0123, 0x4567, 0x89AB, 0xCDEF,
0xFEDC, 0xBA98, 0x7654, 0x3210}

◆ round_constants_size

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::round_constants_size = 16
staticconstexprinherited

◆ rounds

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::rounds = 8
staticconstexprinherited

◆ s7_sbox_size

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_policy::s7_sbox_size = 128
staticconstexprinherited

◆ s7_substitution

constexpr const kasumi_policy::s7_substitution_type nil::crypto3::block::detail::kasumi_policy::s7_substitution
staticconstexprinherited
Initial value:
= {
0x36, 0x32, 0x3E, 0x38, 0x16, 0x22, 0x5E, 0x60, 0x26, 0x06, 0x3F, 0x5D, 0x02, 0x12, 0x7B, 0x21,
0x37, 0x71, 0x27, 0x72, 0x15, 0x43, 0x41, 0x0C, 0x2F, 0x49, 0x2E, 0x1B, 0x19, 0x6F, 0x7C, 0x51,
0x35, 0x09, 0x79, 0x4F, 0x34, 0x3C, 0x3A, 0x30, 0x65, 0x7F, 0x28, 0x78, 0x68, 0x46, 0x47, 0x2B,
0x14, 0x7A, 0x48, 0x3D, 0x17, 0x6D, 0x0D, 0x64, 0x4D, 0x01, 0x10, 0x07, 0x52, 0x0A, 0x69, 0x62,
0x75, 0x74, 0x4C, 0x0B, 0x59, 0x6A, 0x00, 0x7D, 0x76, 0x63, 0x56, 0x45, 0x1E, 0x39, 0x7E, 0x57,
0x70, 0x33, 0x11, 0x05, 0x5F, 0x0E, 0x5A, 0x54, 0x5B, 0x08, 0x23, 0x67, 0x20, 0x61, 0x1C, 0x42,
0x66, 0x1F, 0x1A, 0x2D, 0x4B, 0x04, 0x55, 0x5C, 0x25, 0x4A, 0x50, 0x31, 0x44, 0x1D, 0x73, 0x2C,
0x40, 0x6B, 0x6C, 0x18, 0x6E, 0x53, 0x24, 0x4E, 0x2A, 0x13, 0x0F, 0x29, 0x58, 0x77, 0x3B, 0x03}

◆ s9_substitution

constexpr const kasumi_policy::s9_substitution_type nil::crypto3::block::detail::kasumi_policy::s9_substitution
staticconstexprinherited

◆ s9_substitution_size

const std::size_t nil::crypto3::block::detail::kasumi_policy::s9_substitution_size = 512
staticinherited

◆ word_bits

constexpr static const std::size_t nil::crypto3::block::detail::kasumi_functions::word_bits = kasumi_policy::word_bits
staticconstexpr

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