8 #ifndef BOTAN_CBC_PADDING_H__
9 #define BOTAN_CBC_PADDING_H__
11 #include <botan/types.h>
33 virtual void pad(
byte block[],
35 size_t current_position)
const = 0;
41 virtual size_t unpad(
const byte block[],
42 size_t size)
const = 0;
50 size_t position)
const;
56 virtual bool valid_blocksize(
size_t block_size)
const = 0;
61 virtual std::string name()
const = 0;
75 void pad(
byte[],
size_t,
size_t)
const;
76 size_t unpad(
const byte[],
size_t)
const;
77 bool valid_blocksize(
size_t)
const;
78 std::string
name()
const {
return "PKCS7"; }
87 void pad(
byte[],
size_t,
size_t)
const;
88 size_t unpad(
const byte[],
size_t)
const;
89 bool valid_blocksize(
size_t)
const;
90 std::string
name()
const {
return "X9.23"; }
99 void pad(
byte[],
size_t,
size_t)
const;
100 size_t unpad(
const byte[],
size_t)
const;
101 bool valid_blocksize(
size_t)
const;
102 std::string
name()
const {
return "OneAndZeros"; }
111 void pad(
byte[],
size_t,
size_t)
const {
return; }
112 size_t unpad(
const byte[],
size_t size)
const {
return size; }
115 std::string
name()
const {
return "NoPadding"; }
virtual ~BlockCipherModePaddingMethod()
void pad(byte[], size_t, size_t) const
bool valid_blocksize(size_t) const
size_t pad_bytes(size_t, size_t) const
size_t unpad(const byte[], size_t size) const