8#ifndef BOTAN_GOST_28147_89_H_
9#define BOTAN_GOST_28147_89_H_
11#include <botan/block_cipher.h>
29 uint8_t
sbox_entry(
size_t row,
size_t col)
const;
40 uint8_t
sbox_pair(
size_t row,
size_t col)
const;
51 const uint8_t* m_sboxes;
61 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
62 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
64 void clear()
override;
66 std::string
name()
const override;
69 return std::make_unique<GOST_28147_89>(m_SBOX, m_name);
83 std::string_view
name) :
84 m_SBOX(other_SBOX), m_EK(8), m_name(
name) {}
87 void key_schedule(
const uint8_t[],
size_t)
override;
93 std::vector<uint32_t> m_SBOX;
uint8_t sbox_pair(size_t row, size_t col) const
std::string param_name() const
uint8_t sbox_entry(size_t row, size_t col) const
void encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const override
void decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const override
GOST_28147_89(std::string_view param_name)
std::unique_ptr< BlockCipher > new_object() const override
std::string name() const override
GOST_28147_89(const std::vector< uint32_t > &other_SBOX, std::string_view name)
bool has_keying_material() const override
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector