aboutsummaryrefslogtreecommitdiffstats
path: root/tests/hazmat/primitives/test_block.py
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2017-02-16 22:20:38 -0600
committerAlex Gaynor <alex.gaynor@gmail.com>2017-02-16 23:20:38 -0500
commit9b34ca92c3ac061aee2301728dc1280a83890814 (patch)
tree250f7f978b69b1b933e2152a76477f0936705c0d /tests/hazmat/primitives/test_block.py
parent83d3adee771593f3b90a74ff2c2e1a7a2d98b668 (diff)
downloadcryptography-9b34ca92c3ac061aee2301728dc1280a83890814.tar.gz
cryptography-9b34ca92c3ac061aee2301728dc1280a83890814.tar.bz2
cryptography-9b34ca92c3ac061aee2301728dc1280a83890814.zip
add support for update_into on CipherContext (#3190)
* add support for update_into on CipherContext This allows you to provide your own buffer (like recv_into) to improve performance when repeatedly calling encrypt/decrypt on large payloads. * another skip_if * more skip_if complexity * maybe do this right * correct number of args * coverage for the coverage gods * add a cffi minimum test tox target and travis builder This tests against macOS so we capture some commoncrypto branches * extra arg * need to actually install py35 * fix * coverage for GCM decrypt in CC * no longer relevant * 1.8 now * pep8 * dramatically simplify * update docs * remove unneeded test * changelog entry * test improvements * coverage fix * add some comments to example * move the comments to their own line * fix and move comment
Diffstat (limited to 'tests/hazmat/primitives/test_block.py')
-rw-r--r--tests/hazmat/primitives/test_block.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/hazmat/primitives/test_block.py b/tests/hazmat/primitives/test_block.py
index eb0a2c3b..11a70195 100644
--- a/tests/hazmat/primitives/test_block.py
+++ b/tests/hazmat/primitives/test_block.py
@@ -6,6 +6,8 @@ from __future__ import absolute_import, division, print_function
import binascii
+import cffi
+
import pytest
from cryptography.exceptions import (
@@ -15,6 +17,7 @@ from cryptography.hazmat.backends.interfaces import CipherBackend
from cryptography.hazmat.primitives.ciphers import (
Cipher, algorithms, base, modes
)
+from cryptography.utils import _version_check
from .utils import (
generate_aead_exception_test, generate_aead_tag_exception_test
@@ -70,6 +73,23 @@ class TestCipherContext(object):
with pytest.raises(AlreadyFinalized):
decryptor.finalize()
+ @pytest.mark.skipif(
+ not _version_check(cffi.__version__, '1.7'),
+ reason="cffi version too old"
+ )
+ def test_use_update_into_after_finalize(self, backend):
+ cipher = Cipher(
+ algorithms.AES(binascii.unhexlify(b"0" * 32)),
+ modes.CBC(binascii.unhexlify(b"0" * 32)),
+ backend
+ )
+ encryptor = cipher.encryptor()
+ encryptor.update(b"a" * 16)
+ encryptor.finalize()
+ with pytest.raises(AlreadyFinalized):
+ buf = bytearray(31)
+ encryptor.update_into(b"b" * 16, buf)
+
def test_unaligned_block_encryption(self, backend):
cipher = Cipher(
algorithms.AES(binascii.unhexlify(b"0" * 32)),