nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator > Struct Template Reference
CCM encryption and decryption. More...
#include <ccm.hpp>
Collaboration diagram for nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator >:
Classes | |
struct | bind |
Public Types | |
typedef BlockCipher | cipher_type |
typedef detail::ccm_decryption_policy< cipher_type, padding_type, NonceBits, TagBits, LengthBits, Allocator > | decryption_policy |
typedef detail::ccm_encryption_policy< cipher_type, padding_type, NonceBits, TagBits, LengthBits, Allocator > | encryption_policy |
typedef Padding< BlockCipher > | padding_type |
Detailed Description
template<typename BlockCipher, template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, std::size_t LengthBits = 3 * CHAR_BIT, template< typename > class Allocator = std::allocator>
struct nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator >
CCM encryption and decryption.
- See also
- RFC 3610
- Template Parameters
-
BlockCipher A 128-bit BlockCipher Padding TagBits Size of the authentication tag (even values between 4 and 16 are accepted) L length of L parameter. The total message length must be less than 2**L bytes, and the nonce is 15-L bytes.
Member Typedef Documentation
◆ cipher_type
template<typename BlockCipher , template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, std::size_t LengthBits = 3 * CHAR_BIT, template< typename > class Allocator = std::allocator>
typedef BlockCipher nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator >::cipher_type |
◆ decryption_policy
template<typename BlockCipher , template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, std::size_t LengthBits = 3 * CHAR_BIT, template< typename > class Allocator = std::allocator>
typedef detail::ccm_decryption_policy<cipher_type, padding_type, NonceBits, TagBits, LengthBits, Allocator> nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator >::decryption_policy |
◆ encryption_policy
template<typename BlockCipher , template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, std::size_t LengthBits = 3 * CHAR_BIT, template< typename > class Allocator = std::allocator>
typedef detail::ccm_encryption_policy<cipher_type, padding_type, NonceBits, TagBits, LengthBits, Allocator> nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator >::encryption_policy |
◆ padding_type
template<typename BlockCipher , template< typename > class Padding, std::size_t NonceBits, std::size_t TagBits = 16 * CHAR_BIT, std::size_t LengthBits = 3 * CHAR_BIT, template< typename > class Allocator = std::allocator>
typedef Padding<BlockCipher> nil::crypto3::block::modes::ccm< BlockCipher, Padding, NonceBits, TagBits, LengthBits, Allocator >::padding_type |
The documentation for this struct was generated from the following file: