diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-02-13 09:06:48 -0600 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-02-13 12:27:07 -0600 |
commit | 4ab6059293fba1f60d0f6316dab2c64a7847e584 (patch) | |
tree | ee4463e282014abdf739b5cc01e56b5c6c3da175 /src/cryptography/hazmat/primitives/padding.py | |
parent | 513b7cb41671ccf7d9345075534bfa3d92c1c05e (diff) | |
download | cryptography-4ab6059293fba1f60d0f6316dab2c64a7847e584.tar.gz cryptography-4ab6059293fba1f60d0f6316dab2c64a7847e584.tar.bz2 cryptography-4ab6059293fba1f60d0f6316dab2c64a7847e584.zip |
move padding
Diffstat (limited to 'src/cryptography/hazmat/primitives/padding.py')
-rw-r--r-- | src/cryptography/hazmat/primitives/padding.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/cryptography/hazmat/primitives/padding.py b/src/cryptography/hazmat/primitives/padding.py index 49cae9d6..8ad64dec 100644 --- a/src/cryptography/hazmat/primitives/padding.py +++ b/src/cryptography/hazmat/primitives/padding.py @@ -4,12 +4,13 @@ from __future__ import absolute_import, division, print_function +import abc + import six from cryptography import utils from cryptography.exceptions import AlreadyFinalized from cryptography.hazmat.bindings.utils import LazyLibrary, build_ffi -from cryptography.hazmat.primitives import interfaces TYPES = """ @@ -59,6 +60,21 @@ _ffi = build_ffi(cdef_source=TYPES, verify_source=FUNCTIONS) _lib = LazyLibrary(_ffi) +@six.add_metaclass(abc.ABCMeta) +class PaddingContext(object): + @abc.abstractmethod + def update(self, data): + """ + Pads the provided bytes and returns any available data as bytes. + """ + + @abc.abstractmethod + def finalize(self): + """ + Finalize the padding, returns bytes. + """ + + class PKCS7(object): def __init__(self, block_size): if not (0 <= block_size < 256): @@ -76,7 +92,7 @@ class PKCS7(object): return _PKCS7UnpaddingContext(self.block_size) -@utils.register_interface(interfaces.PaddingContext) +@utils.register_interface(PaddingContext) class _PKCS7PaddingContext(object): def __init__(self, block_size): self.block_size = block_size @@ -109,7 +125,7 @@ class _PKCS7PaddingContext(object): return result -@utils.register_interface(interfaces.PaddingContext) +@utils.register_interface(PaddingContext) class _PKCS7UnpaddingContext(object): def __init__(self, block_size): self.block_size = block_size |