B
    `D	                 @   s    d dl mZ G dd deZdS )    )utilsc               @   sP   e Zd ZedddZdd Zdd Zdd	 Zd
d Ze	dd Z
edZdS )ObjectIdentifier)dotted_stringc          	   C   s   || _ | j d}g }x^|D ]V}yt|d}W n" tk
rP   td| j  Y nX |dk rhtd| j  || qW t|dk rtd| j  |d dkrtd| j  |d dk r|d	 d
krtd| j  d S )N.
   z%Malformed OID: %s (non-integer nodes)r   z*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)selfr   ZnodesZintnodesnodeZ
node_value r   G/home/dcms/DCMS/lib/python3.7/site-packages/cryptography/hazmat/_oid.py__init__
   s6    



zObjectIdentifier.__init__c             C   s   t |tstS | j|jkS )N)
isinstancer   NotImplementedr   )r   otherr   r   r   __eq__4   s    
zObjectIdentifier.__eq__c             C   s
   | |k S )Nr   )r   r   r   r   r   __ne__:   s    zObjectIdentifier.__ne__c             C   s   d | j| jS )Nz#<ObjectIdentifier(oid={}, name={})>)formatr   _name)r   r   r   r   __repr__=   s    zObjectIdentifier.__repr__c             C   s
   t | jS )N)hashr   )r   r   r   r   __hash__B   s    zObjectIdentifier.__hash__c             C   s   ddl m} || dS )Nr   )
_OID_NAMESzUnknown OID)Zcryptography.x509.oidr   get)r   r   r   r   r   r   E   s    zObjectIdentifier._namer
   N)__name__
__module____qualname__strr   r   r   r   r   propertyr   r   Zread_only_propertyr   r   r   r   r   r   	   s   *r   N)Zcryptographyr   objectr   r   r   r   r   <module>   s   