aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNoel Remy <mocramis@gmail.com>2019-11-10 16:45:30 +0100
committerAlex Gaynor <alex.gaynor@gmail.com>2019-11-10 10:45:30 -0500
commit68e49ae4400c0ff68aac2e7c5f95725e7af0de40 (patch)
treea0a1be4921d7ad4842325377db5c95772ee150dd /tests
parentd06a3a8f9cfbdb04c091017bef15f10cc5fc0f45 (diff)
downloadcryptography-68e49ae4400c0ff68aac2e7c5f95725e7af0de40.tar.gz
cryptography-68e49ae4400c0ff68aac2e7c5f95725e7af0de40.tar.bz2
cryptography-68e49ae4400c0ff68aac2e7c5f95725e7af0de40.zip
Let Oid enforce positive decimal integers (#5053)
Failing that would lead to an OpenSSL error when calling OBJ_txt2obj at serialization. Adds basic tests for oids.
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/test_oid.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/hazmat/test_oid.py b/tests/hazmat/test_oid.py
new file mode 100644
index 00000000..d1a34f8e
--- /dev/null
+++ b/tests/hazmat/test_oid.py
@@ -0,0 +1,39 @@
+# This file is dual licensed under the terms of the Apache License, Version
+# 2.0, and the BSD License. See the LICENSE file in the root of this repository
+# for complete details.
+
+from __future__ import absolute_import, division, print_function
+
+import pytest
+
+from cryptography.hazmat._oid import ObjectIdentifier
+
+
+def test_basic_oid():
+ assert ObjectIdentifier('1.2.3.4').dotted_string == '1.2.3.4'
+
+
+def test_oid_constraint():
+ # Too short
+ with pytest.raises(ValueError):
+ ObjectIdentifier('1')
+
+ # First node too big
+ with pytest.raises(ValueError):
+ ObjectIdentifier('3.2.1')
+
+ # Outside range
+ with pytest.raises(ValueError):
+ ObjectIdentifier('1.40')
+ with pytest.raises(ValueError):
+ ObjectIdentifier('0.42')
+
+ # non-decimal oid
+ with pytest.raises(ValueError):
+ ObjectIdentifier('1.2.foo.bar')
+ with pytest.raises(ValueError):
+ ObjectIdentifier('1.2.0xf00.0xba4')
+
+ # negative oid
+ with pytest.raises(ValueError):
+ ObjectIdentifier('1.2.-3.-4')