o )%a @sddlZddlZddlZddlmZddlmZddlmZddl m Z dddd d d d d dd Z Gddde Z GdddejdZGdddeZGdddeZGdddeZGdddeZGdddeZGdd d eZGd!d"d"eZdS)#N) parseaddr)utils)Name)ObjectIdentifier otherName rfc822NamedNSName x400Address directoryName ediPartyNameuniformResourceIdentifier iPAddress registeredID) rcseZdZfddZZS)UnsupportedGeneralNameTypecstt||||_dSN)superr__init__type)selfmsgr __class__@/usr/lib/python3/dist-packages/cryptography/x509/general_name.pyrs z#UnsupportedGeneralNameType.__init__)__name__ __module__ __qualname__r __classcell__r r rr!rsrc@seZdZejddZdS) GeneralNamecCsdS)z0 Return the value of the object Nr rr r r!value$szGeneralName.valueN)r"r#r$abcabstractpropertyr(r r r r!r&#sr&) metaclassc@peZdZdefddZedZeddZ defdd Z d e de fd d Z d e de fd dZdefddZdS) RFC822Namer(cCs^t|trz|dWntytdwtdt|\}}|s&|s*td||_dS)NasciizRFC822Name values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.value must be stringzInvalid rfc822name value) isinstancestrencodeUnicodeEncodeError ValueError TypeErrorr_value)rr(nameaddressr r r!r,s    zRFC822Name.__init__r6cC||}||_|Sr__new__r6clsr(instancer r r!_init_without_validationC z#RFC822Name._init_without_validationreturncC d|jS)Nzformatr(r'r r r!__repr__I zRFC822Name.__repr__othercCt|tstS|j|jkSr)r0r-NotImplementedr(rrGr r r!__eq__L  zRFC822Name.__eq__cC ||k Srr rJr r r!__ne__R zRFC822Name.__ne__cC t|jSrhashr(r'r r r!__hash__UrOzRFC822Name.__hash__Nr"r#r$r1rrread_only_propertyr( classmethodr?rEobjectboolrKrNintrSr r r r!r-+s  r-c@sjeZdZdefddZedZeddZ ddZ d e d e fd d Z d e d e fd dZd efddZdS)DNSNamer(cCBt|trz|dWntytdwtd||_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.r/r0r1r2r3r4r5r6rr(r r r!rZ   zDNSName.__init__r6cCr9rr:r<r r r!r?kr@z DNSName._init_without_validationcCrB)NzrCr'r r r!rEqrFzDNSName.__repr__rGrAcCrHr)r0rZrIr(rJr r r!rKtrLzDNSName.__eq__cCrMrr rJr r r!rNzrOzDNSName.__ne__cCrPrrQr'r r r!rS}rOzDNSName.__hash__NrTr r r r!rZYs  rZc@r,)UniformResourceIdentifierr(cCr[)Nr.zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.r/r\r]r r r!rr^z"UniformResourceIdentifier.__init__r6cCr9rr:r<r r r!r?r@z2UniformResourceIdentifier._init_without_validationrAcCrB)Nz(rCr'r r r!rErFz"UniformResourceIdentifier.__repr__rGcCrHr)r0r_rIr(rJr r r!rKrLz UniformResourceIdentifier.__eq__cCrMrr rJr r r!rNrOz UniformResourceIdentifier.__ne__cCrPrrQr'r r r!rSrOz"UniformResourceIdentifier.__hash__NrTr r r r!r_s  r_c@deZdZdefddZedZdefddZ de de fd d Z de de fd d Z defd dZdS) DirectoryNamer(cCt|ts td||_dS)Nzvalue must be a Name)r0rr5r6r]r r r!r  zDirectoryName.__init__r6rAcCrB)NzrCr'r r r!rErFzDirectoryName.__repr__rGcCrHr)r0rarIr(rJr r r!rKrLzDirectoryName.__eq__cCrMrr rJr r r!rNrOzDirectoryName.__ne__cCrPrrQr'r r r!rSrOzDirectoryName.__hash__N)r"r#r$rrrrUr(r1rErWrXrKrNrYrSr r r r!ra rac@r`) RegisteredIDr(cCrb)Nz!value must be an ObjectIdentifier)r0rr5r6r]r r r!rrczRegisteredID.__init__r6rAcCrB)NzrCr'r r r!rErFzRegisteredID.__repr__rGcCrHr)r0rerIr(rJr r r!rKrLzRegisteredID.__eq__cCrMrr rJr r r!rNrOzRegisteredID.__ne__cCrPrrQr'r r r!rSrOzRegisteredID.__hash__N)r"r#r$rrrrUr(r1rErWrXrKrNrYrSr r r r!rerdrec@szeZdZdejejejejej ffddZ e dZ defddZdedefd d Zdedefd d Zdefd dZdS) IPAddressr(cCs,t|tjtjtjtjfstd||_dS)Nzzvalue must be an instance of ipaddress.IPv4Address, ipaddress.IPv6Address, ipaddress.IPv4Network, or ipaddress.IPv6Network)r0 ipaddress IPv4Address IPv6Address IPv4Network IPv6Networkr5r6r]r r r!rs   zIPAddress.__init__r6rAcCrB)NzrCr'r r r!rErFzIPAddress.__repr__rGcCrHr)r0rfrIr(rJr r r!rKrLzIPAddress.__eq__cCrMrr rJr r r!rNrOzIPAddress.__ne__cCrPrrQr'r r r!rSrOzIPAddress.__hash__N)r"r#r$typingUnionrgrhrirjrkrrrUr(r1rErWrXrKrNrYrSr r r r!rfs rfc@sreZdZdedefddZedZedZ de fdd Z d e de fd d Zd e de fd dZdefddZdS) OtherNametype_idr(cCs4t|ts tdt|tstd||_||_dS)Nz#type_id must be an ObjectIdentifierzvalue must be a binary string)r0rr5bytes_type_idr6)rror(r r r!r s   zOtherName.__init__rqr6rAcCsd|j|jS)Nz#)rDror(r'r r r!rEszOtherName.__repr__rGcCs&t|tstS|j|jko|j|jkSr)r0rnrIror(rJr r r!rKs zOtherName.__eq__cCrMrr rJr r r!rN rOzOtherName.__ne__cCst|j|jfSr)rRror(r'r r r!rS#szOtherName.__hash__N)r"r#r$rrprrrUror(r1rErWrXrKrNrYrSr r r r!rns rn)r)rgrl email.utilsr cryptographyrcryptography.x509.namercryptography.x509.oidr_GENERAL_NAMES ExceptionrABCMetar&r-rZr_rarerfrnr r r r!s4     .((-