From e9b87d5de47008ddf6fcc6e07deb662cbe376c64 Mon Sep 17 00:00:00 2001 From: Terry Chia Date: Tue, 15 Nov 2016 09:56:02 +0800 Subject: Raise padding block_size limit to what is allowed by the specs. (#3108) * Raize padding block_size limit to what is allowed by the specs. * Add tests for raising padding limits. * Amend C code for padding check to use uint16_t instead of uint8_t. * Fix test to work in Python 3. * Fix typo. * Fix another typo. * Fix return type of the padding checks. * Change hypothesis test on padding. * Update comment. --- tests/hazmat/primitives/test_padding.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests/hazmat/primitives/test_padding.py') diff --git a/tests/hazmat/primitives/test_padding.py b/tests/hazmat/primitives/test_padding.py index e934c0ac..fb72a794 100644 --- a/tests/hazmat/primitives/test_padding.py +++ b/tests/hazmat/primitives/test_padding.py @@ -6,6 +6,8 @@ from __future__ import absolute_import, division, print_function import pytest +import six + from cryptography.exceptions import AlreadyFinalized from cryptography.hazmat.primitives import padding @@ -100,6 +102,20 @@ class TestPKCS7(object): with pytest.raises(AlreadyFinalized): unpadder.finalize() + def test_large_padding(self): + padder = padding.PKCS7(2040).padder() + padded_data = padder.update(b"") + padded_data += padder.finalize() + + for i in six.iterbytes(padded_data): + assert i == 255 + + unpadder = padding.PKCS7(2040).unpadder() + data = unpadder.update(padded_data) + data += unpadder.finalize() + + assert data == b"" + class TestANSIX923(object): @pytest.mark.parametrize("size", [127, 4096, -2]) -- cgit v1.2.3