8 #include <botan/mode_pad.h>
9 #include <botan/exceptn.h>
10 #include <botan/internal/assert.h>
27 const size_t bytes_remaining = size - position;
28 const byte pad_value =
static_cast<byte>(bytes_remaining);
31 "Overflow in PKCS7_Padding");
33 for(
size_t j = 0; j != size; ++j)
42 size_t position = block[size-1];
45 for(
size_t j = size-position; j != size-1; ++j)
46 if(block[j] != position)
48 return (size-position);
56 if(size > 0 && size < 256)
67 for(
size_t j = 0; j != size-position; ++j)
69 block[size-position-1] =
static_cast<byte>(size-position);
77 size_t position = block[size-1];
80 for(
size_t j = size-position; j != size-1; ++j)
83 return (size-position);
91 if(size > 0 && size < 256)
103 for(
size_t j = 1; j != size; ++j)
114 if(block[size-1] == 0x80)
116 if(block[size-1] != 0x00)
bool valid_blocksize(size_t) const
size_t unpad(const byte[], size_t) const
void pad(byte[], size_t, size_t) const
bool valid_blocksize(size_t) const
size_t unpad(const byte[], size_t) const
#define BOTAN_ASSERT_EQUAL(value1, value2, msg)
bool valid_blocksize(size_t) const
virtual size_t pad_bytes(size_t block_size, size_t position) const
size_t unpad(const byte[], size_t) const
void pad(byte[], size_t, size_t) const
void pad(byte[], size_t, size_t) const