aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2013-10-29 14:38:06 -0700
committerAlex Gaynor <alex.gaynor@gmail.com>2013-10-29 14:38:06 -0700
commit5787fb5dcde454404bfa9c2ec1a601bbafd62404 (patch)
tree46633e83c9ad17a34502ffb83f6e29cb98ae89e0
parent60ad3e182476d84daeb7cff9d333623a688edd61 (diff)
downloadcryptography-5787fb5dcde454404bfa9c2ec1a601bbafd62404.tar.gz
cryptography-5787fb5dcde454404bfa9c2ec1a601bbafd62404.tar.bz2
cryptography-5787fb5dcde454404bfa9c2ec1a601bbafd62404.zip
raise an error if you unicode
-rw-r--r--cryptography/hazmat/primitives/padding.py6
-rw-r--r--tests/hazmat/primitives/test_padding.py10
2 files changed, 16 insertions, 0 deletions
diff --git a/cryptography/hazmat/primitives/padding.py b/cryptography/hazmat/primitives/padding.py
index 5c7c7e91..86ea26e3 100644
--- a/cryptography/hazmat/primitives/padding.py
+++ b/cryptography/hazmat/primitives/padding.py
@@ -47,6 +47,9 @@ class _PKCS7PaddingContext(object):
if self._buffer is None:
raise ValueError("Context was already finalized")
+ if isinstance(data, six.text_type):
+ raise TypeError("Unicode-objects must be encoded before padding")
+
self._buffer += data
finished_blocks = len(self._buffer) // (self.block_size // 8)
@@ -79,6 +82,9 @@ class _PKCS7UnpaddingContext(object):
if self._buffer is None:
raise ValueError("Context was already finalized")
+ if isinstance(data, six.text_type):
+ raise TypeError("Unicode-objects must be encoded before unpadding")
+
self._buffer += data
finished_blocks = max(
diff --git a/tests/hazmat/primitives/test_padding.py b/tests/hazmat/primitives/test_padding.py
index 798b2a77..3cefafaf 100644
--- a/tests/hazmat/primitives/test_padding.py
+++ b/tests/hazmat/primitives/test_padding.py
@@ -13,6 +13,8 @@
import pytest
+import six
+
from cryptography.hazmat.primitives import padding
@@ -34,6 +36,14 @@ class TestPKCS7(object):
unpadder.update(padded)
unpadder.finalize()
+ def test_non_bytes(self):
+ padder = padding.PKCS7(128).padder()
+ with pytest.raises(TypeError):
+ padder.update(six.u("abc"))
+ unpadder = padding.PKCS7(128).unpadder()
+ with pytest.raises(TypeError):
+ unpadder.update(six.u("abc"))
+
@pytest.mark.parametrize(("size", "unpadded", "padded"), [
(
128,