From 69e0652b1a48815c7d61fed8b625264419ac2796 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Fri, 18 Oct 2013 17:28:39 -0500 Subject: hash vector loader and tests --- tests/test_utils.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) (limited to 'tests/test_utils.py') diff --git a/tests/test_utils.py b/tests/test_utils.py index 28e7407b..b56e106e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -11,11 +11,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +import pytest + import textwrap from .utils import (load_nist_vectors, load_nist_vectors_from_file, load_cryptrec_vectors, load_cryptrec_vectors_from_file, - load_openssl_vectors, load_openssl_vectors_from_file) + load_openssl_vectors, load_openssl_vectors_from_file, load_hash_vectors, + load_hash_vectors_from_file) def test_load_nist_vectors_encrypt(): @@ -360,3 +363,55 @@ def test_load_openssl_vectors_from_file(): "ciphertext": b"D776379BE0E50825E681DA1A4C980E8E", }, ] + + +def test_load_hash_vectors(): + vector_data = textwrap.dedent(""" + + # http://tools.ietf.org/html/rfc1321 + + Len = 0 + Msg = 00 + MD = d41d8cd98f00b204e9800998ecf8427e + + Len = 8 + Msg = 61 + MD = 0cc175b9c0f1b6a831c399e269772661 + + Len = 24 + Msg = 616263 + MD = 900150983cd24fb0d6963f7d28e17f72 + + Len = 112 + Msg = 6d65737361676520646967657374 + MD = f96b697d7cb7938d525a2f31aaf161d0 + """).splitlines() + assert load_hash_vectors(vector_data) == [ + ('', 'd41d8cd98f00b204e9800998ecf8427e'), + ('61', '0cc175b9c0f1b6a831c399e269772661'), + ('616263', '900150983cd24fb0d6963f7d28e17f72'), + ('6d65737361676520646967657374', 'f96b697d7cb7938d525a2f31aaf161d0'), + ] + + +def test_load_hash_vectors_bad_data(): + vector_data = textwrap.dedent(""" + # http://tools.ietf.org/html/rfc1321 + + Len = 0 + Msg = 00 + UNKNOWN=Hello World + """).splitlines() + with pytest.raises(ValueError): + load_hash_vectors(vector_data) + + +def test_load_hash_vectors_from_file(): + test_list = load_hash_vectors_from_file("RFC/MD5/rfc-1321.txt") + assert len(test_list) == 7 + assert test_list[:4] == [ + ('', 'd41d8cd98f00b204e9800998ecf8427e'), + ('61', '0cc175b9c0f1b6a831c399e269772661'), + ('616263', '900150983cd24fb0d6963f7d28e17f72'), + ('6d65737361676520646967657374', 'f96b697d7cb7938d525a2f31aaf161d0'), + ] -- cgit v1.2.3 From 79c16e9ef8d0454c64310ccd5faa7fd7dca26313 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Fri, 18 Oct 2013 17:44:36 -0500 Subject: alphabetical import order and quote consistency... --- tests/test_utils.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'tests/test_utils.py') diff --git a/tests/test_utils.py b/tests/test_utils.py index b56e106e..e68f6a7f 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -11,10 +11,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest - import textwrap +import pytest + from .utils import (load_nist_vectors, load_nist_vectors_from_file, load_cryptrec_vectors, load_cryptrec_vectors_from_file, load_openssl_vectors, load_openssl_vectors_from_file, load_hash_vectors, @@ -387,10 +387,10 @@ def test_load_hash_vectors(): MD = f96b697d7cb7938d525a2f31aaf161d0 """).splitlines() assert load_hash_vectors(vector_data) == [ - ('', 'd41d8cd98f00b204e9800998ecf8427e'), - ('61', '0cc175b9c0f1b6a831c399e269772661'), - ('616263', '900150983cd24fb0d6963f7d28e17f72'), - ('6d65737361676520646967657374', 'f96b697d7cb7938d525a2f31aaf161d0'), + (b"", "d41d8cd98f00b204e9800998ecf8427e"), + (b"61", "0cc175b9c0f1b6a831c399e269772661"), + (b"616263", "900150983cd24fb0d6963f7d28e17f72"), + (b"6d65737361676520646967657374", "f96b697d7cb7938d525a2f31aaf161d0"), ] @@ -410,8 +410,8 @@ def test_load_hash_vectors_from_file(): test_list = load_hash_vectors_from_file("RFC/MD5/rfc-1321.txt") assert len(test_list) == 7 assert test_list[:4] == [ - ('', 'd41d8cd98f00b204e9800998ecf8427e'), - ('61', '0cc175b9c0f1b6a831c399e269772661'), - ('616263', '900150983cd24fb0d6963f7d28e17f72'), - ('6d65737361676520646967657374', 'f96b697d7cb7938d525a2f31aaf161d0'), + (b"", "d41d8cd98f00b204e9800998ecf8427e"), + (b"61", "0cc175b9c0f1b6a831c399e269772661"), + (b"616263", "900150983cd24fb0d6963f7d28e17f72"), + (b"6d65737361676520646967657374", "f96b697d7cb7938d525a2f31aaf161d0"), ] -- cgit v1.2.3 From 87cd0db396e157b3fb160b8b6fd770e2c661ace2 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Fri, 18 Oct 2013 18:01:26 -0500 Subject: update loader and test to handle lines with brackets --- tests/test_utils.py | 1 + 1 file changed, 1 insertion(+) (limited to 'tests/test_utils.py') diff --git a/tests/test_utils.py b/tests/test_utils.py index e68f6a7f..a9bb6a87 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -369,6 +369,7 @@ def test_load_hash_vectors(): vector_data = textwrap.dedent(""" # http://tools.ietf.org/html/rfc1321 + [irrelevant] Len = 0 Msg = 00 -- cgit v1.2.3 From 3359d7efdc5e96ae25c69226a2a1452a8f6641f7 Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Sat, 19 Oct 2013 19:33:06 -0400 Subject: Test what happens when an invalid line is in the cryptrec vectors --- tests/test_utils.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'tests/test_utils.py') diff --git a/tests/test_utils.py b/tests/test_utils.py index a9bb6a87..3fe9e570 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -269,6 +269,20 @@ def test_load_cryptrec_vectors(): ] +def test_load_cryptrec_vectors_invalid(): + vector_data = textwrap.dedent(""" + # Vectors taken from http://info.isl.ntt.co.jp/crypt/eng/camellia/ + # Download is t_camelia.txt + + # Camellia with 128-bit key + + E No.001 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + """).splitlines() + + with pytest.raises(ValueError): + load_cryptrec_vectors(vector_data) + + def test_load_cryptrec_vectors_from_file_encrypt(): test_set = load_cryptrec_vectors_from_file( "Camellia/NTT/camellia-128-ecb.txt" -- cgit v1.2.3