3 l_ @sZddlmZmZmZddlZddlZddlmZddlZddl m Z ddl m Z ddl mZddd d d d d ddd ZGdddeZejejGdddeZe jeGdddeZe jeGdddeZe jeGdddeZe jeGdddeZe jeGdddeZe jeGdd d eZe jeGd!d"d"eZdS)#)absolute_importdivisionprint_functionN) parseaddr)utils)Name)ObjectIdentifierZ otherNameZ rfc822NameZdNSNameZ x400AddressZ directoryNameZ ediPartyNameZuniformResourceIdentifierZ iPAddressZ registeredID) rcseZdZfddZZS)UnsupportedGeneralNameTypecstt|j|||_dS)N)superr__init__type)selfmsgr) __class__$/usr/lib64/python3.6/general_name.pyr sz#UnsupportedGeneralNameType.__init__)__name__ __module__ __qualname__r __classcell__rr)rrrsrc@seZdZejddZdS) GeneralNamecCsdS)z0 Return the value of the object Nr)rrrrvalue'szGeneralName.valueN)rrrabcabstractpropertyrrrrrr%src@sJeZdZddZejdZeddZddZ dd Z d d Z d d Z dS) RFC822Namec Csjt|tjr:y|jdWqBtk r6tdYqBXntdt|\}}|sX| r`td||_dS)NasciizRFC822Name values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.zvalue must be stringzInvalid rfc822name value) isinstancesix text_typeencodeUnicodeEncodeError ValueError TypeErrorr_value)rrnameZaddressrrrr0s   zRFC822Name.__init__r+cCs|j|}||_|S)N)__new__r+)clsrinstancerrr_init_without_validationGs z#RFC822Name._init_without_validationcCs dj|jS)Nz)formatr)rrrr__repr__MszRFC822Name.__repr__cCst|tstS|j|jkS)N)r$r"NotImplementedr)rotherrrr__eq__Ps zRFC822Name.__eq__cCs ||k S)Nr)rr4rrr__ne__VszRFC822Name.__ne__cCs t|jS)N)hashr)rrrr__hash__YszRFC822Name.__hash__N) rrrrrread_only_propertyr classmethodr0r2r5r6r8rrrrr".s  r"c@sJeZdZddZejdZeddZddZ dd Z d d Z d d Z dS)DNSNamec CsLt|tjr:y|jdWqBtk r6tdYqBXntd||_dS)Nr#z~DNSName values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.zvalue must be string)r$r%r&r'r(r)r*r+)rrrrrr_s zDNSName.__init__r+cCs|j|}||_|S)N)r-r+)r.rr/rrrr0ps z DNSName._init_without_validationcCs dj|jS)Nz)r1r)rrrrr2vszDNSName.__repr__cCst|tstS|j|jkS)N)r$r;r3r)rr4rrrr5ys zDNSName.__eq__cCs ||k S)Nr)rr4rrrr6szDNSName.__ne__cCs t|jS)N)r7r)rrrrr8szDNSName.__hash__N) rrrrrr9rr:r0r2r5r6r8rrrrr;]s  r;c@sJeZdZddZejdZeddZddZ dd Z d d Z d d Z dS)UniformResourceIdentifierc CsLt|tjr:y|jdWqBtk r6tdYqBXntd||_dS)Nr#zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.zvalue must be string)r$r%r&r'r(r)r*r+)rrrrrrs z"UniformResourceIdentifier.__init__r+cCs|j|}||_|S)N)r-r+)r.rr/rrrr0s z2UniformResourceIdentifier._init_without_validationcCs dj|jS)Nz()r1r)rrrrr2sz"UniformResourceIdentifier.__repr__cCst|tstS|j|jkS)N)r$r<r3r)rr4rrrr5s z UniformResourceIdentifier.__eq__cCs ||k S)Nr)rr4rrrr6sz UniformResourceIdentifier.__ne__cCs t|jS)N)r7r)rrrrr8sz"UniformResourceIdentifier.__hash__N) rrrrrr9rr:r0r2r5r6r8rrrrr<s  r<c@s>eZdZddZejdZddZddZdd Z d d Z d S) DirectoryNamecCst|tstd||_dS)Nzvalue must be a Name)r$rr*r+)rrrrrrs zDirectoryName.__init__r+cCs dj|jS)Nz)r1r)rrrrr2szDirectoryName.__repr__cCst|tstS|j|jkS)N)r$r=r3r)rr4rrrr5s zDirectoryName.__eq__cCs ||k S)Nr)rr4rrrr6szDirectoryName.__ne__cCs t|jS)N)r7r)rrrrr8szDirectoryName.__hash__N) rrrrrr9rr2r5r6r8rrrrr=s  r=c@s>eZdZddZejdZddZddZdd Z d d Z d S) RegisteredIDcCst|tstd||_dS)Nz!value must be an ObjectIdentifier)r$rr*r+)rrrrrrs zRegisteredID.__init__r+cCs dj|jS)Nz)r1r)rrrrr2szRegisteredID.__repr__cCst|tstS|j|jkS)N)r$r>r3r)rr4rrrr5s zRegisteredID.__eq__cCs ||k S)Nr)rr4rrrr6szRegisteredID.__ne__cCs t|jS)N)r7r)rrrrr8szRegisteredID.__hash__N) rrrrrr9rr2r5r6r8rrrrr>s  r>c@s>eZdZddZejdZddZddZdd Z d d Z d S) IPAddresscCs,t|tjtjtjtjfs"td||_dS)Nzzvalue must be an instance of ipaddress.IPv4Address, ipaddress.IPv6Address, ipaddress.IPv4Network, or ipaddress.IPv6Network)r$ ipaddressZ IPv4AddressZ IPv6AddressZ IPv4NetworkZ IPv6Networkr*r+)rrrrrrs zIPAddress.__init__r+cCs dj|jS)Nz)r1r)rrrrr2szIPAddress.__repr__cCst|tstS|j|jkS)N)r$r?r3r)rr4rrrr5s zIPAddress.__eq__cCs ||k S)Nr)rr4rrrr6szIPAddress.__ne__cCs t|jS)N)r7r)rrrrr8szIPAddress.__hash__N) rrrrrr9rr2r5r6r8rrrrr?s  r?c@sHeZdZddZejdZejdZddZddZ d d Z d d Z d S) OtherNamecCs4t|tstdt|ts$td||_||_dS)Nz#type_id must be an ObjectIdentifierzvalue must be a binary string)r$rr*bytes_type_idr+)rtype_idrrrrr s   zOtherName.__init__rCr+cCsdj|j|jS)Nz#)r1rDr)rrrrr2szOtherName.__repr__cCs&t|tstS|j|jko$|j|jkS)N)r$rAr3rDr)rr4rrrr5s zOtherName.__eq__cCs ||k S)Nr)rr4rrrr6"szOtherName.__ne__cCst|j|jfS)N)r7rDr)rrrrr8%szOtherName.__hash__N) rrrrrr9rDrr2r5r6r8rrrrrA s  rA)Z __future__rrrr r@Z email.utilsrr%Z cryptographyrZcryptography.x509.namerZcryptography.x509.oidrZ_GENERAL_NAMES ExceptionrZ add_metaclassABCMetaobjectrZregister_interfacer"r;r<r=r>r?rArrrrsB    .((%