B \`& @s~ddlmZmZmZddlZddlZddlZddlmZddl Z ddl Z ddl m Z ddl mZddlmZddlmZdd d d d d dddd ZGdddeZe ejGdddeZeeGdddeZddZeeGdddeZeeGdddeZeeGdddeZeeGd d!d!eZ eeGd"d#d#eZ!eeGd$d%d%eZ"dS)&)absolute_importdivisionprint_functionN) parseaddr) urllib_parse)utils)Name)ObjectIdentifierZ otherNameZ rfc822NameZdNSNameZ x400AddressZ directoryNameZ ediPartyNameZuniformResourceIdentifierZ iPAddressZ registeredID) rcseZdZfddZZS)UnsupportedGeneralNameTypecstt||||_dS)N)superr__init__type)selfmsgr) __class__Q/opt/alt/python37/lib64/python3.7/site-packages/cryptography/x509/general_name.pyr$sz#UnsupportedGeneralNameType.__init__)__name__ __module__ __qualname__r __classcell__rr)rrr#src@seZdZejddZdS) GeneralNamecCsdS)z0 Return the value of the object Nr)rrrrvalue+szGeneralName.valueN)rrrabcabstractpropertyr rrrrr)src@sReZdZddZedZeddZddZ dd Z d d Z d d Z ddZ dS) RFC822NamecCs|t|tjrNy|dWqVtk rJ||}tjdtj ddYqVXnt dt |\}}|sj|srt d||_ dS)NasciizRFC822Name values should be passed as an A-label string. This means unicode characters should be encoded via idna. Support for passing unicode strings (aka U-label) will be removed in a future version.r ) stacklevelzvalue must be stringzInvalid rfc822name value) isinstancesix text_typeencodeUnicodeEncodeError _idna_encodewarningswarnrDeprecatedIn21 TypeErrorr ValueError_value)rr nameaddressrrrr4s   zRFC822Name.__init__r1cCs||}||_|S)N)__new__r1)clsr instancerrr_init_without_validationOs z#RFC822Name._init_without_validationcCs6t|\}}|d}|ddt|ddS)N@rr r$)rsplitidnar)decode)rr _r3partsrrrr+Us  zRFC822Name._idna_encodecCs d|jS)Nz)formatr )rrrr__repr__ZszRFC822Name.__repr__cCst|tstS|j|jkS)N)r&r#NotImplementedr )rotherrrr__eq__]s zRFC822Name.__eq__cCs ||k S)Nr)rrArrr__ne__cszRFC822Name.__ne__cCs t|jS)N)hashr )rrrr__hash__fszRFC822Name.__hash__N)rrrrrread_only_propertyr classmethodr7r+r?rBrCrErrrrr#2s  r#cCsLx:dD]2}||r|t|d}|t|dSqWt|dS)N)z*..r$) startswithlenr:r)r;)r prefixrrrr+js   r+c@sJeZdZddZedZeddZddZ dd Z d d Z d d Z dS)DNSNamecCs^t|tjrLy|dWqTtk rHt|}tjdtj ddYqTXnt d||_ dS)Nr$zDNSName values should be passed as an A-label string. This means unicode characters should be encoded via idna. Support for passing unicode strings (aka U-label) will be removed in a future version.r )r%zvalue must be string) r&r'r(r)r*r+r,r-rr.r/r1)rr rrrrus zDNSName.__init__r1cCs||}||_|S)N)r4r1)r5r r6rrrr7s z DNSName._init_without_validationcCs d|jS)Nz)r>r )rrrrr?szDNSName.__repr__cCst|tstS|j|jkS)N)r&rLr@r )rrArrrrBs zDNSName.__eq__cCs ||k S)Nr)rrArrrrCszDNSName.__ne__cCs t|jS)N)rDr )rrrrrEszDNSName.__hash__N) rrrrrrFr rGr7r?rBrCrErrrrrLss  rLc@sReZdZddZedZeddZddZ dd Z d d Z d d Z ddZ dS)UniformResourceIdentifiercCs`t|tjrNy|dWqVtk rJ||}tjdtj ddYqVXnt d||_ dS)Nr$zURI values should be passed as an A-label string. This means unicode characters should be encoded via idna. Support for passing unicode strings (aka U-label) will be removed in a future version.r )r%zvalue must be string) r&r'r(r)r*r+r,r-rr.r/r1)rr rrrrs  z"UniformResourceIdentifier.__init__r1cCs||}||_|S)N)r4r1)r5r r6rrrr7s z2UniformResourceIdentifier._init_without_validationcCsht|}|jr6t|jd|jdd}nt|jd}t|j ||j |j |j |j fS)Nz:{0}r$)rZurlparseZportr:r)Zhostnamer>r;Z urlunparseZschemepathZparamsZqueryZfragment)rr ZparsedZnetlocrrrr+s  z&UniformResourceIdentifier._idna_encodecCs d|jS)Nz()r>r )rrrrr?sz"UniformResourceIdentifier.__repr__cCst|tstS|j|jkS)N)r&rMr@r )rrArrrrBs z UniformResourceIdentifier.__eq__cCs ||k S)Nr)rrArrrrCsz UniformResourceIdentifier.__ne__cCs t|jS)N)rDr )rrrrrEsz"UniformResourceIdentifier.__hash__N)rrrrrrFr rGr7r+r?rBrCrErrrrrMs  rMc@s>eZdZddZedZddZddZdd Z d d Z d S) DirectoryNamecCst|tstd||_dS)Nzvalue must be a Name)r&rr/r1)rr rrrrs zDirectoryName.__init__r1cCs d|jS)Nz)r>r )rrrrr?szDirectoryName.__repr__cCst|tstS|j|jkS)N)r&rOr@r )rrArrrrBs zDirectoryName.__eq__cCs ||k S)Nr)rrArrrrCszDirectoryName.__ne__cCs t|jS)N)rDr )rrrrrEszDirectoryName.__hash__N) rrrrrrFr r?rBrCrErrrrrOs  rOc@s>eZdZddZedZddZddZdd Z d d Z d S) RegisteredIDcCst|tstd||_dS)Nz!value must be an ObjectIdentifier)r&r r/r1)rr rrrrs zRegisteredID.__init__r1cCs d|jS)Nz)r>r )rrrrr?szRegisteredID.__repr__cCst|tstS|j|jkS)N)r&rPr@r )rrArrrrB s zRegisteredID.__eq__cCs ||k S)Nr)rrArrrrCszRegisteredID.__ne__cCs t|jS)N)rDr )rrrrrEszRegisteredID.__hash__N) rrrrrrFr r?rBrCrErrrrrPs  rPc@s>eZdZddZedZddZddZdd 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/r1)rr rrrrs zIPAddress.__init__r1cCs d|jS)Nz)r>r )rrrrr?-szIPAddress.__repr__cCst|tstS|j|jkS)N)r&rQr@r )rrArrrrB0s zIPAddress.__eq__cCs ||k S)Nr)rrArrrrC6szIPAddress.__ne__cCs t|jS)N)rDr )rrrrrE9szIPAddress.__hash__N) rrrrrrFr r?rBrCrErrrrrQs  rQc@sHeZdZddZedZedZddZddZ 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&r r/bytes_type_idr1)rtype_idr rrrr?s   zOtherName.__init__rUr1cCsd|j|jS)Nz%)r>rVr )rrrrr?KszOtherName.__repr__cCs&t|tstS|j|jko$|j|jkS)N)r&rSr@rVr )rrArrrrBOs zOtherName.__eq__cCs ||k S)Nr)rrArrrrCUszOtherName.__ne__cCst|j|jfS)N)rDrVr )rrrrrEXszOtherName.__hash__N) rrrrrrFrVr r?rBrCrErrrrrS=s  rS)#Z __future__rrrr!rRr,Z email.utilsrr:r'Z six.movesrZ cryptographyrZcryptography.x509.namerZcryptography.x509.oidr Z_GENERAL_NAMES ExceptionrZ add_metaclassABCMetaobjectrZregister_interfacer#r+rLrMrOrPrQrSrrrrsJ     7 ,B%