8 #ifndef BOTAN_SERPENT_H__
9 #define BOTAN_SERPENT_H__
11 #include <botan/block_cipher.h>
22 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
23 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
25 void clear()
override;
26 std::string provider()
const override;
27 std::string
name()
const override {
return "Serpent"; }
33 #if defined(BOTAN_HAS_SERPENT_SIMD)
37 void simd_encrypt_4(
const uint8_t in[64], uint8_t out[64])
const;
42 void simd_decrypt_4(
const uint8_t in[64], uint8_t out[64])
const;
50 {
return m_round_key; }
58 m_round_key.assign(&ks[0], &ks[132]);
62 void key_schedule(
const uint8_t key[],
size_t length)
override;
std::string name() const override
BlockCipher * clone() const override
void set_round_keys(const uint32_t ks[132])
std::vector< T, secure_allocator< T >> secure_vector
size_t parallelism() const override
const secure_vector< uint32_t > & get_round_keys() const