a
    còfœ  ã                   @  sú   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 ejejejejejf ZG dd„ deƒZG dd	„ d	ejd
�ZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    )ÚannotationsN)Ú	parseaddr)ÚName)ÚObjectIdentifierc                   @  s   e Zd ZdS )ÚUnsupportedGeneralNameTypeN)Ú__name__Ú
__module__Ú__qualname__© r
   r
   ú[/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/cryptography/x509/general_name.pyr      s   r   c                   @  s$   e Zd Zeejddœdd„ƒƒZdS )ÚGeneralNamez
typing.Any©Úreturnc                 C  s   dS )z0
        Return the value of the object
        Nr
   ©Úselfr
   r
   r   Úvalue   s    zGeneralName.valueN)r   r   r	   ÚpropertyÚabcÚabstractmethodr   r
   r
   r
   r   r      s   r   )Ú	metaclassc                   @  sn   e Zd Zdddœdd„Zeddœdd„ƒZedd dœd	d
„ƒZddœdd„Zdddœdd„Z	ddœdd„Z
dS )Ú
RFC822NameÚstrÚNone©r   r   c                 C  sd   t |tƒr6z| d¡ W q> ty2   tdƒ‚Y q>0 ntdƒ‚t|ƒ\}}|sR|sZtdƒ‚|| _d S )NÚasciiz�RFC822Name values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.úvalue must be stringzInvalid rfc822name value)Ú
isinstancer   ÚencodeÚUnicodeEncodeErrorÚ
ValueErrorÚ	TypeErrorr   Ú_value)r   r   ÚnameÚaddressr
   r
   r   Ú__init__%   s    
ÿzRFC822Name.__init__r   c                 C  s   | j S ©N©r!   r   r
   r
   r   r   :   s    zRFC822Name.valuec                 C  s   |   | ¡}||_|S r%   ©Ú__new__r!   ©Úclsr   Úinstancer
   r
   r   Ú_init_without_validation>   s    
z#RFC822Name._init_without_validationc                 C  s   d| j ›d�S )Nz<RFC822Name(value=ú)>©r   r   r
   r
   r   Ú__repr__D   s    zRFC822Name.__repr__ÚobjectÚbool©Úotherr   c                 C  s   t |tƒstS | j|jkS r%   )r   r   ÚNotImplementedr   ©r   r3   r
   r
   r   Ú__eq__G   s    
zRFC822Name.__eq__Úintc                 C  s
   t | jƒS r%   ©Úhashr   r   r
   r
   r   Ú__hash__M   s    zRFC822Name.__hash__N©r   r   r	   r$   r   r   Úclassmethodr,   r/   r6   r:   r
   r
   r
   r   r   $   s   r   c                   @  sn   e Zd Zdddœdd„Zeddœdd„ƒZedd dœd	d
„ƒZddœdd„Zdddœdd„Z	ddœdd„Z
dS )ÚDNSNamer   r   r   c                 C  sH   t |tƒr6z| d¡ W q> ty2   tdƒ‚Y q>0 ntdƒ‚|| _d S )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   ©r   r   r   r   r   r    r!   ©r   r   r
   r
   r   r$   R   s    
ÿzDNSName.__init__r   c                 C  s   | j S r%   r&   r   r
   r
   r   r   a   s    zDNSName.valuec                 C  s   |   | ¡}||_|S r%   r'   r)   r
   r
   r   r,   e   s    
z DNSName._init_without_validationc                 C  s   d| j ›d�S )Nz<DNSName(value=r-   r.   r   r
   r
   r   r/   k   s    zDNSName.__repr__r0   r1   r2   c                 C  s   t |tƒstS | j|jkS r%   )r   r=   r4   r   r5   r
   r
   r   r6   n   s    
zDNSName.__eq__r7   c                 C  s
   t | jƒS r%   r8   r   r
   r
   r   r:   t   s    zDNSName.__hash__Nr;   r
   r
   r
   r   r=   Q   s   r=   c                   @  sn   e Zd Zdddœdd„Zeddœdd„ƒZedd dœd	d
„ƒZddœdd„Zdddœdd„Z	ddœdd„Z
dS )ÚUniformResourceIdentifierr   r   r   c                 C  sH   t |tƒr6z| d¡ W q> ty2   tdƒ‚Y q>0 ntdƒ‚|| _d S )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   r$   y   s    
ÿz"UniformResourceIdentifier.__init__r   c                 C  s   | j S r%   r&   r   r
   r
   r   r   ˆ   s    zUniformResourceIdentifier.valuec                 C  s   |   | ¡}||_|S r%   r'   r)   r
   r
   r   r,   Œ   s    
z2UniformResourceIdentifier._init_without_validationc                 C  s   d| j ›d�S )Nz!<UniformResourceIdentifier(value=r-   r.   r   r
   r
   r   r/   ’   s    z"UniformResourceIdentifier.__repr__r0   r1   r2   c                 C  s   t |tƒstS | j|jkS r%   )r   r@   r4   r   r5   r
   r
   r   r6   •   s    
z UniformResourceIdentifier.__eq__r7   c                 C  s
   t | jƒS r%   r8   r   r
   r
   r   r:   ›   s    z"UniformResourceIdentifier.__hash__Nr;   r
   r
   r
   r   r@   x   s   r@   c                   @  sZ   e Zd Zdddœdd„Zeddœdd„ƒZd	dœd
d„Zdddœdd„Zddœdd„ZdS )ÚDirectoryNamer   r   r   c                 C  s   t |tƒstdƒ‚|| _d S )Nzvalue must be a Name)r   r   r    r!   r?   r
   r
   r   r$       s    
zDirectoryName.__init__r   c                 C  s   | j S r%   r&   r   r
   r
   r   r   ¦   s    zDirectoryName.valuer   c                 C  s   d| j › d�S )Nz<DirectoryName(value=r-   r.   r   r
   r
   r   r/   ª   s    zDirectoryName.__repr__r0   r1   r2   c                 C  s   t |tƒstS | j|jkS r%   )r   rA   r4   r   r5   r
   r
   r   r6   ­   s    
zDirectoryName.__eq__r7   c                 C  s
   t | jƒS r%   r8   r   r
   r
   r   r:   ³   s    zDirectoryName.__hash__N©	r   r   r	   r$   r   r   r/   r6   r:   r
   r
   r
   r   rA   Ÿ   s   rA   c                   @  sZ   e Zd Zdddœdd„Zeddœdd„ƒZd	dœd
d„Zdddœdd„Zddœdd„ZdS )ÚRegisteredIDr   r   r   c                 C  s   t |tƒstdƒ‚|| _d S )Nz!value must be an ObjectIdentifier)r   r   r    r!   r?   r
   r
   r   r$   ¸   s    
zRegisteredID.__init__r   c                 C  s   | j S r%   r&   r   r
   r
   r   r   ¾   s    zRegisteredID.valuer   c                 C  s   d| j › d�S )Nz<RegisteredID(value=r-   r.   r   r
   r
   r   r/   Â   s    zRegisteredID.__repr__r0   r1   r2   c                 C  s   t |tƒstS | j|jkS r%   )r   rC   r4   r   r5   r
   r
   r   r6   Å   s    
zRegisteredID.__eq__r7   c                 C  s
   t | jƒS r%   r8   r   r
   r
   r   r:   Ë   s    zRegisteredID.__hash__NrB   r
   r
   r
   r   rC   ·   s   rC   c                   @  sh   e Zd Zdddœdd„Zeddœdd„ƒZd	dœd
d„Zddœdd„Zdddœdd„Zddœdd„Z	dS )Ú	IPAddressÚ_IPAddressTypesr   r   c                 C  s,   t |tjtjtjtjfƒs"tdƒ‚|| _d S )Nzzvalue must be an instance of ipaddress.IPv4Address, ipaddress.IPv6Address, ipaddress.IPv4Network, or ipaddress.IPv6Network)r   Ú	ipaddressÚIPv4AddressÚIPv6AddressÚIPv4NetworkÚIPv6Networkr    r!   r?   r
   r
   r   r$   Ð   s    üþ	ÿzIPAddress.__init__r   c                 C  s   | j S r%   r&   r   r
   r
   r   r   â   s    zIPAddress.valueÚbytesc                 C  s4   t | jtjtjfƒr| jjS | jjj| jjj S d S r%   )r   r   rF   rG   rH   ÚpackedÚnetwork_addressÚnetmaskr   r
   r
   r   Ú_packedæ   s    ÿÿzIPAddress._packedr   c                 C  s   d| j › d�S )Nz<IPAddress(value=r-   r.   r   r
   r
   r   r/   ð   s    zIPAddress.__repr__r0   r1   r2   c                 C  s   t |tƒstS | j|jkS r%   )r   rD   r4   r   r5   r
   r
   r   r6   ó   s    
zIPAddress.__eq__r7   c                 C  s
   t | jƒS r%   r8   r   r
   r
   r   r:   ù   s    zIPAddress.__hash__N)
r   r   r	   r$   r   r   rO   r/   r6   r:   r
   r
   r
   r   rD   Ï   s   
rD   c                   @  sn   e Zd Zddddœdd„Zeddœdd	„ƒZeddœd
d„ƒZddœdd„Zdddœdd„Zddœdd„Z	dS )Ú	OtherNamer   rK   r   )Útype_idr   r   c                 C  s4   t |tƒstdƒ‚t |tƒs$tdƒ‚|| _|| _d S )Nz#type_id must be an ObjectIdentifierzvalue must be a binary string)r   r   r    rK   Ú_type_idr!   )r   rQ   r   r
   r
   r   r$   þ   s    

zOtherName.__init__r   c                 C  s   | j S r%   )rR   r   r
   r
   r   rQ     s    zOtherName.type_idc                 C  s   | j S r%   r&   r   r
   r
   r   r     s    zOtherName.valuer   c                 C  s   d| j › d| j›d�S )Nz<OtherName(type_id=z, value=r-   )rQ   r   r   r
   r
   r   r/     s    zOtherName.__repr__r0   r1   r2   c                 C  s&   t |tƒstS | j|jko$| j|jkS r%   )r   rP   r4   rQ   r   r5   r
   r
   r   r6     s    
zOtherName.__eq__r7   c                 C  s   t | j| jfƒS r%   )r9   rQ   r   r   r
   r
   r   r:     s    zOtherName.__hash__N)
r   r   r	   r$   r   rQ   r   r/   r6   r:   r
   r
   r
   r   rP   ý   s   	rP   )Ú
__future__r   r   rF   ÚtypingÚemail.utilsr   Zcryptography.x509.namer   Zcryptography.x509.oidr   ÚUnionrG   rH   rI   rJ   rE   Ú	Exceptionr   ÚABCMetar   r   r=   r@   rA   rC   rD   rP   r
   r
   r
   r   Ú<module>   s,   ýÿ	-''.