9 #ifndef BOTAN_MODE_PADDING_H__
10 #define BOTAN_MODE_PADDING_H__
12 #include <botan/secmem.h>
36 size_t final_block_bytes,
37 size_t block_size)
const = 0;
45 virtual size_t unpad(
const uint8_t block[],
46 size_t size)
const = 0;
52 virtual bool valid_blocksize(
size_t block_size)
const = 0;
57 virtual std::string name()
const = 0;
72 size_t final_block_bytes,
73 size_t block_size)
const override;
75 size_t unpad(
const uint8_t[],
size_t)
const override;
79 std::string
name()
const override {
return "PKCS7"; }
89 size_t final_block_bytes,
90 size_t block_size)
const override;
92 size_t unpad(
const uint8_t[],
size_t)
const override;
96 std::string
name()
const override {
return "X9.23"; }
106 size_t final_block_bytes,
107 size_t block_size)
const override;
109 size_t unpad(
const uint8_t[],
size_t)
const override;
113 std::string
name()
const override {
return "OneAndZeros"; }
123 size_t final_block_bytes,
124 size_t block_size)
const override;
126 size_t unpad(
const uint8_t[],
size_t)
const override;
130 std::string
name()
const override {
return "ESP"; }
141 size_t unpad(
const uint8_t[],
size_t size)
const override {
return size; }
145 std::string
name()
const override {
return "NoPadding"; }
152 BOTAN_DLL BlockCipherModePaddingMethod*
get_bc_pad(
const std::string& algo_spec);
bool valid_blocksize(size_t bs) const override
bool valid_blocksize(size_t bs) const override
BlockCipherModePaddingMethod * get_bc_pad(const std::string &algo_spec)
std::string name() const override
bool valid_blocksize(size_t) const override
std::vector< T, secure_allocator< T >> secure_vector
std::string name() const override
std::string name() const override
bool valid_blocksize(size_t bs) const override
bool valid_blocksize(size_t bs) const override
void add_padding(secure_vector< uint8_t > &, size_t, size_t) const override
std::string name() const override
size_t unpad(const uint8_t[], size_t size) const override
std::string name() const override