Kasumi. A 64-bit cipher used in 3GPP mobile phone protocols. There is no reason to use it outside of this context. More...

#include <kasumi.hpp>

+ Collaboration diagram for nil::crypto3::block::kasumi:

Classes

struct  stream_processor
 

Public Types

typedef policy_type::block_type block_type
 
typedef stream_endian::little_octet_big_bit endian_type
 
typedef policy_type::key_type key_type
 
typedef policy_type::word_type word_type
 

Public Member Functions

block_type decrypt (const block_type &ciphertext) const
 
block_type encrypt (const block_type &plaintext) const
 
 kasumi (const key_type &key)
 
 ~kasumi ()
 

Static Public Attributes

constexpr static const std::size_t block_bits = policy_type::block_bits
 
constexpr static const std::size_t block_words = policy_type::block_words
 
constexpr static const std::size_t key_bits = policy_type::key_bits
 
constexpr static const std::size_t key_words = policy_type::key_words
 
constexpr static const std::size_t rounds = policy_type::rounds
 
constexpr static const std::size_t word_bits = policy_type::word_bits
 

Protected Types

typedef policy_type::key_schedule_type key_schedule_type
 
typedef detail::kasumi_functions policy_type
 

Protected Member Functions

block_type decrypt_block (const block_type &ciphertext, const key_schedule_type &key_schedule) const
 
block_type encrypt_block (const block_type &plaintext, const key_schedule_type &key_schedule) const
 
void schedule_key (key_schedule_type &key_schedule, const key_type &key)
 

Protected Attributes

key_schedule_type key_schedule
 

Static Protected Attributes

constexpr static const std::size_t key_schedule_size = policy_type::key_schedule_size
 

Detailed Description

Kasumi. A 64-bit cipher used in 3GPP mobile phone protocols. There is no reason to use it outside of this context.

Member Typedef Documentation

◆ block_type

◆ endian_type

◆ key_schedule_type

◆ key_type

◆ policy_type

◆ word_type

Constructor & Destructor Documentation

◆ kasumi()

nil::crypto3::block::kasumi::kasumi ( const key_type key)
inline

◆ ~kasumi()

nil::crypto3::block::kasumi::~kasumi ( )
inline

Member Function Documentation

◆ decrypt()

block_type nil::crypto3::block::kasumi::decrypt ( const block_type ciphertext) const
inline

◆ decrypt_block()

block_type nil::crypto3::block::kasumi::decrypt_block ( const block_type ciphertext,
const key_schedule_type key_schedule 
) const
inlineprotected

◆ encrypt()

block_type nil::crypto3::block::kasumi::encrypt ( const block_type plaintext) const
inline

◆ encrypt_block()

block_type nil::crypto3::block::kasumi::encrypt_block ( const block_type plaintext,
const key_schedule_type key_schedule 
) const
inlineprotected

◆ schedule_key()

void nil::crypto3::block::kasumi::schedule_key ( key_schedule_type key_schedule,
const key_type key 
)
inlineprotected

Member Data Documentation

◆ block_bits

constexpr static const std::size_t nil::crypto3::block::kasumi::block_bits = policy_type::block_bits
staticconstexpr

◆ block_words

constexpr static const std::size_t nil::crypto3::block::kasumi::block_words = policy_type::block_words
staticconstexpr

◆ key_bits

constexpr static const std::size_t nil::crypto3::block::kasumi::key_bits = policy_type::key_bits
staticconstexpr

◆ key_schedule

key_schedule_type nil::crypto3::block::kasumi::key_schedule
protected

◆ key_schedule_size

constexpr static const std::size_t nil::crypto3::block::kasumi::key_schedule_size = policy_type::key_schedule_size
staticconstexprprotected

◆ key_words

constexpr static const std::size_t nil::crypto3::block::kasumi::key_words = policy_type::key_words
staticconstexpr

◆ rounds

constexpr static const std::size_t nil::crypto3::block::kasumi::rounds = policy_type::rounds
staticconstexpr

◆ word_bits

constexpr static const std::size_t nil::crypto3::block::kasumi::word_bits = policy_type::word_bits
staticconstexpr

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