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_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
44 void aesni_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
45 void aesni_key_schedule(
const uint8_t key[],
size_t length);
48 #if defined(BOTAN_HAS_AES_ARMV8)
49 void armv8_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
50 void armv8_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
53 #if defined(BOTAN_HAS_AES_POWER8)
54 void power8_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
55 void power8_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
68 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
69 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
71 void clear()
override;
73 std::string provider()
const override;
74 std::string
name()
const override {
return "AES-192"; }
76 size_t parallelism()
const override;
79 #if defined(BOTAN_HAS_AES_VPERM)
80 void vperm_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
81 void vperm_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
82 void vperm_key_schedule(
const uint8_t key[],
size_t length);
85 #if defined(BOTAN_HAS_AES_NI)
86 void aesni_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
87 void aesni_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
88 void aesni_key_schedule(
const uint8_t key[],
size_t length);
91 #if defined(BOTAN_HAS_AES_ARMV8)
92 void armv8_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
93 void armv8_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
96 #if defined(BOTAN_HAS_AES_POWER8)
97 void power8_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
98 void power8_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
101 void key_schedule(
const uint8_t key[],
size_t length)
override;
113 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
114 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
116 void clear()
override;
118 std::string provider()
const override;
120 std::string
name()
const override {
return "AES-256"; }
122 size_t parallelism()
const override;
125 #if defined(BOTAN_HAS_AES_VPERM)
126 void vperm_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
127 void vperm_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
128 void vperm_key_schedule(
const uint8_t key[],
size_t length);
131 #if defined(BOTAN_HAS_AES_NI)
132 void aesni_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
133 void aesni_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
134 void aesni_key_schedule(
const uint8_t key[],
size_t length);
137 #if defined(BOTAN_HAS_AES_ARMV8)
138 void armv8_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
139 void armv8_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
142 #if defined(BOTAN_HAS_AES_POWER8)
143 void power8_encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
144 void power8_decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const;
147 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)