a b@sddlZddlZddlZddlmZddlmZddlmZej ej ej ej ej fZGdddeZGdddejd ZGd d d eZGd d d eZGdddeZGdddeZGdddeZGdddeZGdddeZdS)N) parseaddr)Name)ObjectIdentifierc@s eZdZdS)UnsupportedGeneralNameTypeN)__name__ __module__ __qualname__r r E/tmp/pip-target-98j97qn4/lib/python/cryptography/x509/general_name.pyrsrc@s"eZdZejejdddZdS) GeneralNamereturncCsdS)z0 Return the value of the object Nr selfr r r valueszGeneralName.valueN)rrrabcabstractpropertytypingAnyrr r r r r sr ) metaclassc@sneZdZeddddZeedddZeedddd Zedd d Z e e d d dZ e dddZdS) RFC822NameNrr cCsdt|tr6z|dWq>ty2tdYq>0ntdt|\}}|sR|sZtd||_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)rrnameaddressr r r __init__$s    zRFC822Name.__init__r cCs|jSNr rr r r r9szRFC822Name.valuecCs||}||_|Sr$__new__r clsrinstancer r r _init_without_validation=s z#RFC822Name._init_without_validationcCs d|jS)Nzformatrrr r r __repr__CszRFC822Name.__repr__otherr cCst|tstS|j|jkSr$)rrNotImplementedrrr0r r r __eq__Fs zRFC822Name.__eq__cCs t|jSr$hashrrr r r __hash__LszRFC822Name.__hash__rrrrr#propertyr classmethodr+r.objectboolr3intr6r r r r r#src@sneZdZeddddZeedddZeedddd Zedd d Z e e d d dZ e dddZdS)DNSNameNrcCsHt|tr6z|dWq>ty2tdYq>0ntd||_dS)Nrz~DNSName values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.rrrrrrrr rrr r r r#Qs   zDNSName.__init__r cCs|jSr$r%rr r r r`sz DNSName.valuecCs||}||_|Sr$r&r(r r r r+ds z DNSName._init_without_validationcCs d|jS)Nzr,rr r r r.jszDNSName.__repr__r/cCst|tstS|j|jkSr$)rr=r1rr2r r r r3ms zDNSName.__eq__cCs t|jSr$r4rr r r r6sszDNSName.__hash__r7r r r r r=Psr=c@sneZdZeddddZeedddZeedddd Zedd d Z e e d d dZ e dddZdS)UniformResourceIdentifierNrcCsHt|tr6z|dWq>ty2tdYq>0ntd||_dS)NrzzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.rr>r?r r r r#xs   z"UniformResourceIdentifier.__init__r cCs|jSr$r%rr r r rszUniformResourceIdentifier.valuecCs||}||_|Sr$r&r(r r r r+s z2UniformResourceIdentifier._init_without_validationcCs d|jS)Nz(r,rr r r r.sz"UniformResourceIdentifier.__repr__r/cCst|tstS|j|jkSr$)rr@r1rr2r r r r3s z UniformResourceIdentifier.__eq__cCs t|jSr$r4rr r r r6sz"UniformResourceIdentifier.__hash__r7r r r r r@wsr@c@sZeZdZeddddZeedddZeddd Ze e d d d Z e dd dZ dS) DirectoryNameNrcCst|tstd||_dS)Nzvalue must be a Name)rrrr r?r r r r#s zDirectoryName.__init__r cCs|jSr$r%rr r r rszDirectoryName.valuecCs d|jS)Nzr,rr r r r.szDirectoryName.__repr__r/cCst|tstS|j|jkSr$)rrAr1rr2r r r r3s zDirectoryName.__eq__cCs t|jSr$r4rr r r r6szDirectoryName.__hash__)rrrrr#r8rrr.r:r;r3r<r6r r r r rAs rAc@sZeZdZeddddZeedddZeddd Ze e d d d Z e dd dZ dS) RegisteredIDNrcCst|tstd||_dS)Nz!value must be an ObjectIdentifier)rrrr r?r r r r#s zRegisteredID.__init__r cCs|jSr$r%rr r r rszRegisteredID.valuecCs d|jS)Nzr,rr r r r.szRegisteredID.__repr__r/cCst|tstS|j|jkSr$)rrBr1rr2r r r r3s zRegisteredID.__eq__cCs t|jSr$r4rr r r r6szRegisteredID.__hash__)rrrrr#r8rrr.r:r;r3r<r6r r r r rBs rBc@sheZdZeddddZeedddZeddd Ze dd d Z e e d d dZ edddZdS) IPAddressNrcCs,t|tjtjtjtjfs"td||_dS)Nzzvalue must be an instance of ipaddress.IPv4Address, ipaddress.IPv6Address, ipaddress.IPv4Network, or ipaddress.IPv6Network)r ipaddress IPv4Address IPv6Address IPv4Network IPv6Networkrr r?r r r r#s zIPAddress.__init__r cCs|jSr$r%rr r r rszIPAddress.valuecCs4t|jtjtjfr|jjS|jjj|jjjSdSr$)rrrDrErFpackednetwork_addressnetmaskrr r r _packeds zIPAddress._packedcCs d|jS)Nzr,rr r r r.szIPAddress.__repr__r/cCst|tstS|j|jkSr$)rrCr1rr2r r r r3s zIPAddress.__eq__cCs t|jSr$r4rr r r r6szIPAddress.__hash__)rrr_IPADDRESS_TYPESr#r8rbytesrLrr.r:r;r3r<r6r r r r rCs rCc@sneZdZeeddddZeedddZeeddd Ze dd d Z e e d d dZ edddZdS) OtherNameN)type_idrr cCs4t|tstdt|ts$td||_||_dS)Nz#type_id must be an ObjectIdentifierzvalue must be a binary string)rrrrN_type_idr )rrPrr r r r#s   zOtherName.__init__r cCs|jSr$)rQrr r r rPszOtherName.type_idcCs|jSr$r%rr r r r szOtherName.valuecCsd|j|jS)Nz#)r-rPrrr r r r.szOtherName.__repr__r/cCs&t|tstS|j|jko$|j|jkSr$)rrOr1rPrr2r r r r3s zOtherName.__eq__cCst|j|jfSr$)r5rPrrr r r r6szOtherName.__hash__)rrrrrNr#r8rPrrr.r:r;r3r<r6r r r r rOs rO)rrDr email.utilsrZcryptography.x509.namerZcryptography.x509.oidrUnionrErFrGrHrM ExceptionrABCMetar rr=r@rArBrCrOr r r r s*   -').