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;
    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()
size_t unpad(const byte[], size_t size) const
bool valid_blocksize(size_t) const
void pad(byte[], size_t, size_t) const
size_t pad_bytes(size_t, size_t) const