aboutsummaryrefslogtreecommitdiffstats
path: root/src/cryptography/x509
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2018-10-30 22:10:49 +0800
committerAlex Gaynor <alex.gaynor@gmail.com>2018-10-30 10:10:49 -0400
commit8f24aefd5d136ab47cb68a9bcfbff3a171602077 (patch)
tree619e3fbf649ae4a0540c7cd34b375b513a1fac10 /src/cryptography/x509
parent836250e06b07cac034138786ed455d997dfe93ae (diff)
downloadcryptography-8f24aefd5d136ab47cb68a9bcfbff3a171602077.tar.gz
cryptography-8f24aefd5d136ab47cb68a9bcfbff3a171602077.tar.bz2
cryptography-8f24aefd5d136ab47cb68a9bcfbff3a171602077.zip
move ObjectIdentifier to break an upcoming import cycle (#4550)
Diffstat (limited to 'src/cryptography/x509')
-rw-r--r--src/cryptography/x509/oid.py60
1 files changed, 1 insertions, 59 deletions
diff --git a/src/cryptography/x509/oid.py b/src/cryptography/x509/oid.py
index d121a807..ec19007f 100644
--- a/src/cryptography/x509/oid.py
+++ b/src/cryptography/x509/oid.py
@@ -4,68 +4,10 @@
from __future__ import absolute_import, division, print_function
-from cryptography import utils
+from cryptography.hazmat._oid import ObjectIdentifier
from cryptography.hazmat.primitives import hashes
-class ObjectIdentifier(object):
- def __init__(self, dotted_string):
- self._dotted_string = dotted_string
-
- nodes = self._dotted_string.split(".")
- intnodes = []
-
- # There must be at least 2 nodes, the first node must be 0..2, and
- # if less than 2, the second node cannot have a value outside the
- # range 0..39. All nodes must be integers.
- for node in nodes:
- try:
- intnodes.append(int(node, 0))
- except ValueError:
- raise ValueError(
- "Malformed OID: %s (non-integer nodes)" % (
- self._dotted_string))
-
- if len(nodes) < 2:
- raise ValueError(
- "Malformed OID: %s (insufficient number of nodes)" % (
- self._dotted_string))
-
- if intnodes[0] > 2:
- raise ValueError(
- "Malformed OID: %s (first node outside valid range)" % (
- self._dotted_string))
-
- if intnodes[0] < 2 and intnodes[1] >= 40:
- raise ValueError(
- "Malformed OID: %s (second node outside valid range)" % (
- self._dotted_string))
-
- def __eq__(self, other):
- if not isinstance(other, ObjectIdentifier):
- return NotImplemented
-
- return self.dotted_string == other.dotted_string
-
- def __ne__(self, other):
- return not self == other
-
- def __repr__(self):
- return "<ObjectIdentifier(oid={0}, name={1})>".format(
- self.dotted_string,
- self._name
- )
-
- def __hash__(self):
- return hash(self.dotted_string)
-
- @property
- def _name(self):
- return _OID_NAMES.get(self, "Unknown OID")
-
- dotted_string = utils.read_only_property("_dotted_string")
-
-
class ExtensionOID(object):
SUBJECT_DIRECTORY_ATTRIBUTES = ObjectIdentifier("2.5.29.9")
SUBJECT_KEY_IDENTIFIER = ObjectIdentifier("2.5.29.14")