From 2e3224d7a8be8625b05e88c10efdbf57b646107c Mon Sep 17 00:00:00 2001 From: Dain Nilsson Date: Tue, 16 Feb 2021 08:41:30 +0100 Subject: [PATCH] Skip tests on older Cryptography versions. --- test/test_cose.py | 25 +++++++++++++------------ test/utils.py | 5 +++++ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/test/test_cose.py b/test/test_cose.py index 4ce0fd7..4ae0479 100644 --- a/test/test_cose.py +++ b/test/test_cose.py @@ -30,7 +30,8 @@ from __future__ import absolute_import, unicode_literals from fido2 import cbor from fido2.cose import CoseKey, ES256, RS256, EdDSA, UnsupportedKey -from cryptography.exceptions import UnsupportedAlgorithm +from cryptography import __version__ as cryptography_version +from distutils.version import LooseVersion from binascii import a2b_hex import unittest @@ -100,6 +101,9 @@ class TestCoseKey(unittest.TestCase): ) def test_EdDSA_parse_verify(self): + if LooseVersion(cryptography_version) < LooseVersion("2.6"): + self.skipTest("EdDSA support missing") + key = CoseKey.parse(cbor.decode(_EdDSA_KEY)) self.assertIsInstance(key, EdDSA) self.assertEqual( @@ -113,17 +117,14 @@ class TestCoseKey(unittest.TestCase): ), }, ) - try: - key.verify( - a2b_hex( - b"a379a6f6eeafb9a55e378c118034e2751e682fab9f2d30ab13d2125586ce1947010000000500a11a323057d1103784ddff99a354ddd42348c2f00e88d8977b916cabf92268" # noqa E501 - ), - a2b_hex( - b"e8c927ef1a57c738ff4ba8d6f90e06d837a5219eee47991f96b126b0685d512520c9c2eedebe4b88ff2de2b19cb5f8686efc7c4261e9ed1cb3ac5de50869be0a" # noqa E501 - ), - ) - except UnsupportedAlgorithm: - self.skipTest("EdDSA support missing") + key.verify( + a2b_hex( + b"a379a6f6eeafb9a55e378c118034e2751e682fab9f2d30ab13d2125586ce1947010000000500a11a323057d1103784ddff99a354ddd42348c2f00e88d8977b916cabf92268" # noqa E501 + ), + a2b_hex( + b"e8c927ef1a57c738ff4ba8d6f90e06d837a5219eee47991f96b126b0685d512520c9c2eedebe4b88ff2de2b19cb5f8686efc7c4261e9ed1cb3ac5de50869be0a" # noqa E501 + ), + ) def test_unsupported_key(self): key = CoseKey.parse({1: 4711, 3: 4712, -1: b"123", -2: b"456"}) diff --git a/test/utils.py b/test/utils.py index d649cb2..f50898d 100644 --- a/test/utils.py +++ b/test/utils.py @@ -1,4 +1,5 @@ import six +import unittest from binascii import a2b_hex from cryptography.hazmat.backends import default_backend @@ -17,8 +18,12 @@ class U2FDevice(object): ) def __init__(self, credential_id, app_id): + if not hasattr(serialization.Encoding, "X962"): + raise unittest.SkipTest("Requires Cryptography >= 2.5") + assert isinstance(credential_id, six.binary_type) assert isinstance(app_id, six.binary_type) + # Note: do not use in production, no garantees is provided this is # cryptographically safe to use. priv_key_params = ConcatKDFHash( -- 2.26.2