3 l�_� �@s4ddlmZmZmZddlmZGdd�de�ZdS)�)�absolute_import�division�print_function)�utilsc@sJeZdZdd�Zdd�Zdd�Zdd�Zd d �Zed d ��Z e j d �Z dS)�ObjectIdentifierc Cs�||_|jjd�}g}x^|D]V}yt|d�}Wn"tk rPtd|j��YnX|dkrhtd|j��|j|�qWt|�dkr�td|j��|ddkr�td|j��|ddkr�|d d kr�td |j��dS) N�.� z%Malformed OID: %s (non-integer nodes)rz*Malformed OID: %s (negative-integer nodes)�z0Malformed OID: %s (insufficient number of nodes)z2Malformed OID: %s (first node outside valid range)��(z3Malformed OID: %s (second node outside valid range))�_dotted_string�split�int� ValueError�append�len)�self� dotted_stringZnodesZintnodesZnodeZ node_value�r�/usr/lib64/python3.6/_oid.py�__init__ s6       zObjectIdentifier.__init__cCst|t�stS|j|jkS)N)� isinstancer�NotImplementedr)r�otherrrr�__eq__5s zObjectIdentifier.__eq__cCs ||k S)Nr)rrrrr�__ne__;szObjectIdentifier.__ne__cCsdj|j|j�S)Nz#)�formatr�_name)rrrr�__repr__>szObjectIdentifier.__repr__cCs t|j�S)N)�hashr)rrrr�__hash__CszObjectIdentifier.__hash__cCsddlm}|j|d�S)Nr)� _OID_NAMESz Unknown OID)Zcryptography.x509.oidr!�get)rr!rrrrFs zObjectIdentifier._namer N) �__name__� __module__� __qualname__rrrrr �propertyrrZread_only_propertyrrrrrr s* rN)Z __future__rrrZ cryptographyr�objectrrrrr�s