11 #include <botan/block_cipher.h>
23 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
24 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
26 void clear()
override;
28 std::string provider()
const override;
29 std::string
name()
const override {
return "AES-128"; }
31 size_t parallelism()
const override;
34 void key_schedule(
const uint8_t key[],
size_t length)
override;
36 #if defined(BOTAN_HAS_AES_VPERM)
37 void vperm_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
38 void vperm_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
39 void vperm_key_schedule(
const uint8_t key[],
size_t length);
42 #if defined(BOTAN_HAS_AES_NI)
43 void aesni_key_schedule(
const uint8_t key[],
size_t length);
46 #if defined(BOTAN_HAS_AES_POWER8) || defined(BOTAN_HAS_AES_ARMV8) || defined(BOTAN_HAS_AES_NI)
47 void hw_aes_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
48 void hw_aes_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
60 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
61 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
63 void clear()
override;
65 std::string provider()
const override;
66 std::string
name()
const override {
return "AES-192"; }
68 size_t parallelism()
const override;
71 #if defined(BOTAN_HAS_AES_VPERM)
72 void vperm_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
73 void vperm_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
74 void vperm_key_schedule(
const uint8_t key[],
size_t length);
77 #if defined(BOTAN_HAS_AES_NI)
78 void aesni_key_schedule(
const uint8_t key[],
size_t length);
81 #if defined(BOTAN_HAS_AES_POWER8) || defined(BOTAN_HAS_AES_ARMV8) || defined(BOTAN_HAS_AES_NI)
82 void hw_aes_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
83 void hw_aes_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
86 void key_schedule(
const uint8_t key[],
size_t length)
override;
97 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
98 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
100 void clear()
override;
102 std::string provider()
const override;
104 std::string
name()
const override {
return "AES-256"; }
106 size_t parallelism()
const override;
109 #if defined(BOTAN_HAS_AES_VPERM)
110 void vperm_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
111 void vperm_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
112 void vperm_key_schedule(
const uint8_t key[],
size_t length);
115 #if defined(BOTAN_HAS_AES_NI)
116 void aesni_key_schedule(
const uint8_t key[],
size_t length);
119 #if defined(BOTAN_HAS_AES_POWER8) || defined(BOTAN_HAS_AES_ARMV8) || defined(BOTAN_HAS_AES_NI)
120 void hw_aes_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
121 void hw_aes_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
124 void key_schedule(
const uint8_t key[],
size_t length)
override;
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::string name() const override
BlockCipher * clone() const override
std::vector< T, secure_allocator< T >> secure_vector
std::string name() const override
BlockCipher * clone() const override
BlockCipher * clone() const override
std::string name() const override
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)