a
    ϏPf                     @  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
   _/var/www/html/python-backend/venv/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asciizRFC822Name 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,   	-''.