3 l_ @s4ddlmZmZmZddlmZGdddeZdS))absolute_importdivisionprint_function)utilsc@sJeZdZddZddZddZddZd d Zed d Z e j d Z dS)ObjectIdentifierc Cs||_|jjd}g}x^|D]V}yt|d}Wn"tk rPtd|jYnX|dkrhtd|j|j|qWt|dkrtd|j|ddkrtd|j|ddkr|d d krtd |jdS) 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_stringsplitint ValueErrorappendlen)self dotted_stringZnodesZintnodesZnodeZ node_valuer/usr/lib64/python3.6/_oid.py__init__ s6       zObjectIdentifier.__init__cCst|tstS|j|jkS)N) isinstancerNotImplementedr)rotherrrr__eq__5s zObjectIdentifier.__eq__cCs ||k S)Nr)rrrrr__ne__;szObjectIdentifier.__ne__cCsdj|j|jS)Nz#)formatr_name)rrrr__repr__>szObjectIdentifier.__repr__cCs t|jS)N)hashr)rrrr__hash__CszObjectIdentifier.__hash__cCsddlm}|j|dS)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 cryptographyrobjectrrrrrs