MCKL
Monte Carlo Kernel Library
Classes | Namespaces | Macros | Typedefs
aes.hpp File Reference
#include <mckl/random/internal/common.hpp>
#include <mckl/random/internal/aes_constants.hpp>
#include <mckl/random/internal/aes_generic.hpp>
#include <mckl/random/internal/aes_key_seq.hpp>
#include <mckl/random/counter.hpp>
#include <mckl/random/increment.hpp>
#include <mckl/random/internal/aes_aesni.hpp>

Go to the source code of this file.

Classes

class  mckl::AESGenerator< KeySeqType >
 RNG generator using AES round functions. More...
 

Namespaces

 mckl
 
 mckl::internal
 

Macros

#define MCKL_AES128_ROUNDS   10
 AES128Engine default rounds. More...
 
#define MCKL_AES192_ROUNDS   12
 AES192Engine default rounds. More...
 
#define MCKL_AES256_ROUNDS   14
 AES256Engine default rounds. More...
 
#define MCKL_ARS_ROUNDS   5
 ARSEngine default rounds. More...
 

Typedefs

using mckl::AES128 = AES128Engine< std::uint32_t >
 AES-128 RNG engine with 32-bit integers output. More...
 
using mckl::AES128_64 = AES128Engine< std::uint64_t >
 AES-128 RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 10>
using mckl::AES128Engine = AESEngine< ResultType, AES128KeySeq< Rounds > >
 AES-128 RNG engine. More...
 
template<std::size_t Rounds = 10>
using mckl::AES128KeySeq = internal::AESKeySeqImpl< Rounds, internal::AES128KeySeqGenerator >
 AES128Engine key sequence generator. More...
 
using mckl::internal::AES128KeySeqGenerator = AES128KeySeqGeneratorAESNIImpl
 
using mckl::AES192 = AES192Engine< std::uint32_t >
 AES-192 RNG engine with 32-bit integers output. More...
 
using mckl::AES192_64 = AES192Engine< std::uint64_t >
 AES-192 RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 12>
using mckl::AES192Engine = AESEngine< ResultType, AES192KeySeq< Rounds > >
 AES-192 RNG engine. More...
 
template<std::size_t Rounds = 12>
using mckl::AES192KeySeq = internal::AESKeySeqImpl< Rounds, internal::AES192KeySeqGenerator >
 AES192Engine key sequence generator. More...
 
using mckl::internal::AES192KeySeqGenerator = AES192KeySeqGeneratorAESNIImpl
 
using mckl::AES256 = AES256Engine< std::uint32_t >
 AES-256 RNG engine with 32-bit integers output. More...
 
using mckl::AES256_64 = AES256Engine< std::uint64_t >
 AES-256 RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 14>
using mckl::AES256Engine = AESEngine< ResultType, AES256KeySeq< Rounds > >
 AES-256 RNG engine. More...
 
template<std::size_t Rounds = 14>
using mckl::AES256KeySeq = internal::AESKeySeqImpl< Rounds, internal::AES256KeySeqGenerator >
 AES256Engine key sequence generator. More...
 
using mckl::internal::AES256KeySeqGenerator = AES256KeySeqGeneratorAESNIImpl
 
template<typename ResultType , typename KeySeqType >
using mckl::AESEngine = CounterEngine< ResultType, AESGenerator< KeySeqType > >
 RNG engine using AES round function. More...
 
template<typename KeySeqType >
using mckl::internal::AESGeneratorImpl = AESGeneratorAESNIImpl< KeySeqType >
 
using mckl::ARS = ARSEngine< std::uint32_t >
 ARS RNG engine with 32-bit integers output. More...
 
using mckl::ARS_64 = ARSEngine< std::uint64_t >
 ARS RNG engine with 64-bit integers output. More...
 
template<typename ResultType , std::size_t Rounds = 5, typename Constants = ARSConstants>
using mckl::ARSEngine = AESEngine< ResultType, ARSKeySeq< Rounds, Constants > >
 ARS RNG engine. More...
 
template<std::size_t Rounds = 5, typename Constants = ARSConstants>
using mckl::ARSKeySeq = internal::ARSKeySeqImpl< Rounds, internal::ARSKeySeqGenerator< Constants > >
 Default ARSEngine key sequence generator. More...
 
template<typename Constants >
using mckl::internal::ARSKeySeqGenerator = ARSKeySeqGeneratorAESNIImpl< Constants >