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;
49 virtual size_t pad_bytes(
size_t block_size,
50 size_t position)
const;
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;
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;
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;
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"; }
void pad(byte[], size_t, size_t) const
size_t unpad(const byte[], size_t) const
bool valid_blocksize(size_t) const
virtual std::string name() const =0
virtual size_t unpad(const byte block[], size_t size) const =0
virtual bool valid_blocksize(size_t block_size) const =0
virtual size_t pad_bytes(size_t block_size, size_t position) const
virtual ~BlockCipherModePaddingMethod()
virtual void pad(byte block[], size_t size, size_t current_position) const =0
void pad(byte[], size_t, size_t) const
bool valid_blocksize(size_t) const
size_t unpad(const byte[], size_t size) const
size_t pad_bytes(size_t, size_t) const
size_t unpad(const byte[], size_t) const
bool valid_blocksize(size_t) const
void pad(byte[], size_t, size_t) const
void pad(byte[], size_t, size_t) const
size_t unpad(const byte[], size_t) const
bool valid_blocksize(size_t) const