8#ifndef BOTAN_GOST_28147_89_H_
9#define BOTAN_GOST_28147_89_H_
11#include <botan/block_cipher.h>
31 uint8_t sbox_entry(
size_t row,
size_t col)
const;
42 uint8_t sbox_pair(
size_t row,
size_t col)
const;
53 const uint8_t* m_sboxes;
63 void encrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
64 void decrypt_n(
const uint8_t in[], uint8_t out[],
size_t blocks)
const override;
66 void clear()
override;
68 std::string
name()
const override;
79 explicit GOST_28147_89(
const std::vector<uint32_t>& other_SBOX) :
80 m_SBOX(other_SBOX), m_EK(8) {}
82 void key_schedule(
const uint8_t[],
size_t)
override;
88 std::vector<uint32_t> m_SBOX;
90 secure_vector<uint32_t> m_EK;
std::string param_name() const
GOST_28147_89(const std::string ¶m_name)
BlockCipher * clone() const override
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
#define BOTAN_FUTURE_INTERNAL_HEADER(hdr)