DJB's Poly1305. More...

#include <poly1305.hpp>

+ Collaboration diagram for nil::crypto3::mac::poly_1305:

Public Types

typedef policy_type::block_type block_type
 
typedef policy_type::key_schedule_type key_schedule_type
 
typedef policy_type::key_type key_type
 

Public Member Functions

void end_message (const block_type &block)
 
 poly_1305 (const key_type &key)
 
void process_block (const block_type &block)
 

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_schedule_bits = policy_type::key_schedule_bits
 
constexpr static const std::size_t key_schedule_words = policy_type::key_schedule_words
 
constexpr static const std::size_t key_words = policy_type::key_words
 

Protected Member Functions

void schedule_key (const key_type &key)
 

Protected Attributes

key_schedule_type schedule
 

Detailed Description

DJB's Poly1305.

Note
Each key can only be used once

Member Typedef Documentation

◆ block_type

◆ key_schedule_type

◆ key_type

Constructor & Destructor Documentation

◆ poly_1305()

nil::crypto3::mac::poly_1305::poly_1305 ( const key_type key)
inline

Member Function Documentation

◆ end_message()

void nil::crypto3::mac::poly_1305::end_message ( const block_type block)
inline

◆ process_block()

void nil::crypto3::mac::poly_1305::process_block ( const block_type block)
inline

◆ schedule_key()

void nil::crypto3::mac::poly_1305::schedule_key ( const key_type key)
inlineprotected

Member Data Documentation

◆ block_bits

constexpr static const std::size_t nil::crypto3::mac::poly_1305::block_bits = policy_type::block_bits
staticconstexpr

◆ block_words

constexpr static const std::size_t nil::crypto3::mac::poly_1305::block_words = policy_type::block_words
staticconstexpr

◆ key_bits

constexpr static const std::size_t nil::crypto3::mac::poly_1305::key_bits = policy_type::key_bits
staticconstexpr

◆ key_schedule_bits

constexpr static const std::size_t nil::crypto3::mac::poly_1305::key_schedule_bits = policy_type::key_schedule_bits
staticconstexpr

◆ key_schedule_words

constexpr static const std::size_t nil::crypto3::mac::poly_1305::key_schedule_words = policy_type::key_schedule_words
staticconstexpr

◆ key_words

constexpr static const std::size_t nil::crypto3::mac::poly_1305::key_words = policy_type::key_words
staticconstexpr

◆ schedule

key_schedule_type nil::crypto3::mac::poly_1305::schedule
protected

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