nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator > Struct Template Reference

See draft-irtf-cfrg-chacha20-poly1305-03 for specification If a nonce of 64 bits is used the older version described in draft-agl-tls-chacha20poly1305-04 is used instead. More...

#include <chacha20poly1305.hpp>

+ Collaboration diagram for nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >:

Classes

struct  bind
 

Public Types

typedef detail::chacha20poly1305_decryption_policy< padding_type, NonceBits, TagBits, stream_cipher_type, mac_type, Allocator > decryption_policy
 
typedef detail::chacha20poly1305_encryption_policy< padding_type, NonceBits, TagBits, stream_cipher_type, mac_type, Allocator > encryption_policy
 
typedef MessageAuthenticationCode mac_type
 
typedef Padding< StreamCipher > padding_type
 
typedef StreamCipher stream_cipher_type
 

Detailed Description

template<template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::chacha<>, typename MessageAuthenticationCode = mac::poly_1305, template< typename > class Allocator = std::allocator>
struct nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >

See draft-irtf-cfrg-chacha20-poly1305-03 for specification If a nonce of 64 bits is used the older version described in draft-agl-tls-chacha20poly1305-04 is used instead.

Template Parameters
StreamCipher
Padding
CiphertextStealingMode

Member Typedef Documentation

◆ decryption_policy

template<template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::chacha<>, typename MessageAuthenticationCode = mac::poly_1305, template< typename > class Allocator = std::allocator>
typedef detail::chacha20poly1305_decryption_policy<padding_type, NonceBits, TagBits, stream_cipher_type, mac_type, Allocator> nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::decryption_policy

◆ encryption_policy

template<template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::chacha<>, typename MessageAuthenticationCode = mac::poly_1305, template< typename > class Allocator = std::allocator>
typedef detail::chacha20poly1305_encryption_policy<padding_type, NonceBits, TagBits, stream_cipher_type, mac_type, Allocator> nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::encryption_policy

◆ mac_type

template<template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::chacha<>, typename MessageAuthenticationCode = mac::poly_1305, template< typename > class Allocator = std::allocator>
typedef MessageAuthenticationCode nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::mac_type

◆ padding_type

template<template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::chacha<>, typename MessageAuthenticationCode = mac::poly_1305, template< typename > class Allocator = std::allocator>
typedef Padding<StreamCipher> nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::padding_type

◆ stream_cipher_type

template<template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, typename StreamCipher = stream::chacha<>, typename MessageAuthenticationCode = mac::poly_1305, template< typename > class Allocator = std::allocator>
typedef StreamCipher nil::crypto3::stream::modes::chacha20poly1305< Padding, NonceBits, TagBits, StreamCipher, MessageAuthenticationCode, Allocator >::stream_cipher_type

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