aboutsummaryrefslogtreecommitdiffstats
path: root/tests/primitives/test_block.py
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2013-10-27 16:44:30 -0400
committerDonald Stufft <donald@stufft.io>2013-10-28 08:37:33 -0400
commitf04317ae24441082279ea73ccca0a6630c33cc86 (patch)
treeb466055f23bd0ac01776202c0cde70bf7128e863 /tests/primitives/test_block.py
parent01fbdf74967f8e22e3ea2d15f195898c64d34cc3 (diff)
downloadcryptography-f04317ae24441082279ea73ccca0a6630c33cc86.tar.gz
cryptography-f04317ae24441082279ea73ccca0a6630c33cc86.tar.bz2
cryptography-f04317ae24441082279ea73ccca0a6630c33cc86.zip
Move primtives into a hazmat package
Diffstat (limited to 'tests/primitives/test_block.py')
-rw-r--r--tests/primitives/test_block.py86
1 files changed, 0 insertions, 86 deletions
diff --git a/tests/primitives/test_block.py b/tests/primitives/test_block.py
deleted file mode 100644
index 3b3b1f91..00000000
--- a/tests/primitives/test_block.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import, division, print_function
-
-import binascii
-
-import pytest
-
-from cryptography.primitives import interfaces
-from cryptography.primitives.block import BlockCipher, ciphers, modes
-
-
-class TestBlockCipher(object):
- def test_instantiate_without_backend(self):
- BlockCipher(
- ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.CBC(binascii.unhexlify(b"0" * 32))
- )
-
- def test_creates_encryptor(self):
- cipher = BlockCipher(
- ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.CBC(binascii.unhexlify(b"0" * 32))
- )
- assert isinstance(cipher.encryptor(), interfaces.CipherContext)
-
- def test_creates_decryptor(self):
- cipher = BlockCipher(
- ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.CBC(binascii.unhexlify(b"0" * 32))
- )
- assert isinstance(cipher.decryptor(), interfaces.CipherContext)
-
-
-class TestBlockCipherContext(object):
- def test_use_after_finalize(self, backend):
- cipher = BlockCipher(
- ciphers.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(ValueError):
- encryptor.update(b"b" * 16)
- with pytest.raises(ValueError):
- encryptor.finalize()
- decryptor = cipher.decryptor()
- decryptor.update(b"a" * 16)
- decryptor.finalize()
- with pytest.raises(ValueError):
- decryptor.update(b"b" * 16)
- with pytest.raises(ValueError):
- decryptor.finalize()
-
- def test_unaligned_block_encryption(self, backend):
- cipher = BlockCipher(
- ciphers.AES(binascii.unhexlify(b"0" * 32)),
- modes.ECB(),
- backend
- )
- encryptor = cipher.encryptor()
- ct = encryptor.update(b"a" * 15)
- assert ct == b""
- ct += encryptor.update(b"a" * 65)
- assert len(ct) == 80
- ct += encryptor.finalize()
- decryptor = cipher.decryptor()
- pt = decryptor.update(ct[:3])
- assert pt == b""
- pt += decryptor.update(ct[3:])
- assert len(pt) == 80
- assert pt == b"a" * 80
- decryptor.finalize()