This is a “Hazardous Materials” module. You should
ONLY
use it if you’re
100% absolutely sure that you know what you’re doing because this module is
full of land mines, dragons, and dinosaurs with laser guns.
Padding is a way to take data that may or may not be a multiple of the block
size for a cipher and extend it out so that it is. This is required for many
block cipher modes as they require the data to be encrypted to be an exact
multiple of the block size.
class
cryptography.hazmat.primitives.padding.
PKCS7
(
block_size
)
[source]
PKCS7 padding is a generalization of PKCS5 padding (also known as standard
padding). PKCS7 padding works by appending
N
bytes with the value of
chr(N)
, where
N
is the number of bytes required to make the final
block of data the same size as the block size. A simple example of padding
is:
class
cryptography.hazmat.primitives.padding.
ANSIX923
(
block_size
)
[source]
Added in version 1.3.
ANSI X9.23
padding works by appending
N-1
bytes with the value of
0
and a last byte with the value of
chr(N)
, where
N
is the
number of bytes required to make the final block of data the same size as
the block size. A simple example of padding is:
class
cryptography.hazmat.primitives.padding.
PaddingContext
[source]
When calling
padder()
or
unpadder()
the result will conform to the
PaddingContext
interface. You can then call
update(data)
with data
until you have fed everything into the context. Once that is done call
finalize()
to finish the operation and obtain the remainder of the
data.