aboutsummaryrefslogtreecommitdiffstats
path: root/src/cryptography/hazmat/primitives/padding.py
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-02-13 09:06:48 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-02-13 12:27:07 -0600
commit4ab6059293fba1f60d0f6316dab2c64a7847e584 (patch)
treeee4463e282014abdf739b5cc01e56b5c6c3da175 /src/cryptography/hazmat/primitives/padding.py
parent513b7cb41671ccf7d9345075534bfa3d92c1c05e (diff)
downloadcryptography-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.py22
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