3 lá˜_ã @sZddlmZmZmZddlZddlZddlmZddlZddl m Z ddl m Z ddl mZddd d d d d dddœ ZGdd„deƒZejejƒGdd„deƒƒZe jeƒGdd„deƒƒZe jeƒGdd„deƒƒZe jeƒGdd„deƒƒZe jeƒGdd„deƒƒZe jeƒGdd„deƒƒZe jeƒGdd „d eƒƒZe jeƒGd!d"„d"eƒƒZdS)#é)Úabsolute_importÚdivisionÚprint_functionN)Ú parseaddr)Úutils)ÚName)ÚObjectIdentifierZ otherNameZ rfc822NameZdNSNameZ x400AddressZ directoryNameZ ediPartyNameZuniformResourceIdentifierZ iPAddressZ registeredID) réééééééécseZdZ‡fdd„Z‡ZS)ÚUnsupportedGeneralNameTypecstt|ƒj|ƒ||_dS)N)ÚsuperrÚ__init__Útype)ÚselfÚmsgr)Ú __class__©ú$/usr/lib64/python3.6/general_name.pyr sz#UnsupportedGeneralNameType.__init__)Ú__name__Ú __module__Ú __qualname__rÚ __classcell__rr)rrrsrc@seZdZejdd„ƒZdS)Ú GeneralNamecCsdS)z0 Return the value of the object Nr)rrrrÚvalue'szGeneralName.valueN)rrrÚabcÚabstractpropertyrrrrrr%src@sJeZdZdd„ZejdƒZedd„ƒZdd„Z dd „Z d d „Z d d „Z dS)Ú RFC822Namec Csjt|tjƒr:y|jdƒWqBtk r6tdƒ‚YqBXntdƒ‚t|ƒ\}}|sX| r`tdƒ‚||_dS)NÚasciiz�RFC822Name 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) Ú isinstanceÚsixÚ text_typeÚencodeÚUnicodeEncodeErrorÚ ValueErrorÚ TypeErrorrÚ_value)rrÚnameZaddressrrrr0s   zRFC822Name.__init__r+cCs|j|ƒ}||_|S)N)Ú__new__r+)ÚclsrÚinstancerrrÚ_init_without_validationGs z#RFC822Name._init_without_validationcCs dj|jƒS)Nz)Úformatr)rrrrÚ__repr__MszRFC822Name.__repr__cCst|tƒstS|j|jkS)N)r$r"ÚNotImplementedr)rÚotherrrrÚ__eq__Ps zRFC822Name.__eq__cCs ||k S)Nr)rr4rrrÚ__ne__VszRFC822Name.__ne__cCs t|jƒS)N)Úhashr)rrrrÚ__hash__YszRFC822Name.__hash__N) rrrrrÚread_only_propertyrÚ classmethodr0r2r5r6r8rrrrr".s  r"c@sJeZdZdd„ZejdƒZedd„ƒZdd„Z dd „Z d d „Z d d „Z dS)ÚDNSNamec CsLt|tjƒr:y|jdƒWqBtk r6tdƒ‚YqBXntdƒ‚||_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|jƒS)Nz)r1r)rrrrr2vszDNSName.__repr__cCst|tƒstS|j|jkS)N)r$r;r3r)rr4rrrr5ys zDNSName.__eq__cCs ||k S)Nr)rr4rrrr6szDNSName.__ne__cCs t|jƒS)N)r7r)rrrrr8‚szDNSName.__hash__N) rrrrrr9rr:r0r2r5r6r8rrrrr;]s  r;c@sJeZdZdd„ZejdƒZedd„ƒZdd„Z dd „Z d d „Z d d „Z dS)ÚUniformResourceIdentifierc CsLt|tjƒr:y|jdƒWqBtk r6tdƒ‚YqBXntdƒ‚||_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+)rrrrrrˆs z"UniformResourceIdentifier.__init__r+cCs|j|ƒ}||_|S)N)r-r+)r.rr/rrrr0™s z2UniformResourceIdentifier._init_without_validationcCs dj|jƒS)Nz()r1r)rrrrr2Ÿsz"UniformResourceIdentifier.__repr__cCst|tƒstS|j|jkS)N)r$r<r3r)rr4rrrr5¢s z UniformResourceIdentifier.__eq__cCs ||k S)Nr)rr4rrrr6¨sz UniformResourceIdentifier.__ne__cCs t|jƒS)N)r7r)rrrrr8«sz"UniformResourceIdentifier.__hash__N) rrrrrr9rr:r0r2r5r6r8rrrrr<†s  r<c@s>eZdZdd„ZejdƒZdd„Zdd„Zdd „Z d d „Z d S) Ú DirectoryNamecCst|tƒstdƒ‚||_dS)Nzvalue must be a Name)r$rr*r+)rrrrrr±s zDirectoryName.__init__r+cCs dj|jƒS)Nz)r1r)rrrrr2¹szDirectoryName.__repr__cCst|tƒstS|j|jkS)N)r$r=r3r)rr4rrrr5¼s zDirectoryName.__eq__cCs ||k S)Nr)rr4rrrr6ÂszDirectoryName.__ne__cCs t|jƒS)N)r7r)rrrrr8ÅszDirectoryName.__hash__N) rrrrrr9rr2r5r6r8rrrrr=¯s  r=c@s>eZdZdd„ZejdƒZdd„Zdd„Zdd „Z d d „Z d S) Ú RegisteredIDcCst|tƒstdƒ‚||_dS)Nz!value must be an ObjectIdentifier)r$rr*r+)rrrrrrËs zRegisteredID.__init__r+cCs dj|jƒS)Nz)r1r)rrrrr2ÓszRegisteredID.__repr__cCst|tƒstS|j|jkS)N)r$r>r3r)rr4rrrr5Ös zRegisteredID.__eq__cCs ||k S)Nr)rr4rrrr6ÜszRegisteredID.__ne__cCs t|jƒS)N)r7r)rrrrr8ßszRegisteredID.__hash__N) rrrrrr9rr2r5r6r8rrrrr>És  r>c@s>eZdZdd„ZejdƒZdd„Zdd„Zdd „Z d d „Z d S) Ú IPAddresscCs,t|tjtjtjtjfƒs"tdƒ‚||_dS)Nzzvalue must be an instance of ipaddress.IPv4Address, ipaddress.IPv6Address, ipaddress.IPv4Network, or ipaddress.IPv6Network)r$Ú ipaddressZ IPv4AddressZ IPv6AddressZ IPv4NetworkZ IPv6Networkr*r+)rrrrrrås zIPAddress.__init__r+cCs dj|jƒS)Nz)r1r)rrrrr2ùszIPAddress.__repr__cCst|tƒstS|j|jkS)N)r$r?r3r)rr4rrrr5üs zIPAddress.__eq__cCs ||k S)Nr)rr4rrrr6szIPAddress.__ne__cCs t|jƒS)N)r7r)rrrrr8szIPAddress.__hash__N) rrrrrr9rr2r5r6r8rrrrr?ãs  r?c@sHeZdZdd„ZejdƒZejdƒZdd„Zdd„Z d d „Z d d „Z d S)Ú OtherNamecCs4t|tƒstdƒ‚t|tƒs$tdƒ‚||_||_dS)Nz#type_id must be an ObjectIdentifierzvalue must be a binary string)r$rr*ÚbytesÚ_type_idr+)rÚtype_idrrrrr s   zOtherName.__init__rCr+cCsdj|j|jƒS)Nz#)r1rDr)rrrrr2szOtherName.__repr__cCs&t|tƒstS|j|jko$|j|jkS)N)r$rAr3rDr)rr4rrrr5s zOtherName.__eq__cCs ||k S)Nr)rr4rrrr6"szOtherName.__ne__cCst|j|jfƒS)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_metaclassÚABCMetaÚobjectrZregister_interfacer"r;r<r=r>r?rArrrrÚsB    .((%