9#ifndef BOTAN_MODE_PADDING_H_
10#define BOTAN_MODE_PADDING_H_
12#include <botan/secmem.h>
33 static std::unique_ptr<BlockCipherModePaddingMethod>
create(std::string_view algo_spec);
49 virtual size_t unpad(
const uint8_t block[],
size_t len)
const = 0;
60 virtual std::string
name()
const = 0;
75 size_t unpad(
const uint8_t[],
size_t)
const override;
79 std::string
name()
const override {
return "PKCS7"; }
89 size_t unpad(
const uint8_t[],
size_t)
const override;
93 std::string
name()
const override {
return "X9.23"; }
103 size_t unpad(
const uint8_t[],
size_t)
const override;
107 std::string
name()
const override {
return "OneAndZeros"; }
117 size_t unpad(
const uint8_t[],
size_t)
const override;
121 std::string
name()
const override {
return "ESP"; }
132 size_t unpad(
const uint8_t[],
size_t size)
const override {
return size; }
136 std::string
name()
const override {
return "NoPadding"; }
std::string name() const override
void add_padding(secure_vector< uint8_t > &buffer, size_t final_block_bytes, size_t block_size) const override
size_t unpad(const uint8_t[], size_t) const override
bool valid_blocksize(size_t bs) const override
virtual std::string name() const =0
static std::unique_ptr< BlockCipherModePaddingMethod > create(std::string_view algo_spec)
virtual bool valid_blocksize(size_t block_size) const =0
virtual size_t unpad(const uint8_t block[], size_t len) const =0
virtual ~BlockCipherModePaddingMethod()=default
virtual void add_padding(secure_vector< uint8_t > &buffer, size_t final_block_bytes, size_t block_size) const =0
std::string name() const override
bool valid_blocksize(size_t bs) const override
size_t unpad(const uint8_t[], size_t) const override
void add_padding(secure_vector< uint8_t > &buffer, size_t final_block_bytes, size_t block_size) const override
size_t unpad(const uint8_t[], size_t size) const override
std::string name() const override
bool valid_blocksize(size_t) const override
void add_padding(secure_vector< uint8_t > &, size_t, size_t) const override
size_t unpad(const uint8_t[], size_t) const override
std::string name() const override
void add_padding(secure_vector< uint8_t > &buffer, size_t final_block_bytes, size_t block_size) const override
bool valid_blocksize(size_t bs) const override
void add_padding(secure_vector< uint8_t > &buffer, size_t final_block_bytes, size_t block_size) const override
bool valid_blocksize(size_t bs) const override
size_t unpad(const uint8_t[], size_t) const override
std::string name() const override
std::vector< T, secure_allocator< T > > secure_vector