o
    Vh                     @  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
   r/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/cryptography/x509/general_name.pyr      s    r   c                   @  s    e Zd ZeejdddZdS )GeneralNamereturn
typing.Anyc                 C  s   dS )z0
        Return the value of the object
        Nr
   selfr
   r
   r   value   s    zGeneralName.valueN)r   r   )r   r   r	   propertyabcabstractmethodr   r
   r
   r
   r   r      s    r   )	metaclassc                   @  P   e Zd ZdddZedddZedd	d
ZdddZdddZ	dddZ
dS )
RFC822Namer   strr   Nonec                 C  s^   t |trz|d W n ty   tdw tdt|\}}|s&|s*t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__c                 C     | j S Nr!   r   r
   r
   r   r   :      zRFC822Name.valuec                 C     |  | }||_|S r&   __new__r!   clsr   instancer
   r
   r   _init_without_validation>      
z#RFC822Name._init_without_validationc                 C     d| j dS )Nz<RFC822Name(value=)>r   r   r
   r
   r   __repr__D      zRFC822Name.__repr__otherobjectboolc                 C     t |tstS | j|jkS r&   )r   r   NotImplementedr   r   r6   r
   r
   r   __eq__G      
zRFC822Name.__eq__intc                 C  
   t | jS r&   hashr   r   r
   r
   r   __hash__M      
zRFC822Name.__hash__Nr   r   r   r   r   r   )r   r   r   r   r6   r7   r   r8   r   r>   r   r   r	   r$   r   r   classmethodr/   r4   r<   rB   r
   r
   r
   r   r   $   s    


r   c                   @  r   )DNSNamer   r   r   r   c                 C  B   t |trz|d W n ty   tdw 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      

zDNSName.__init__c                 C  r%   r&   r'   r   r
   r
   r   r   a   r(   zDNSName.valuec                 C  r)   r&   r*   r,   r
   r
   r   r/   e   r0   z DNSName._init_without_validationc                 C  r1   )Nz<DNSName(value=r2   r3   r   r
   r
   r   r4   k   r5   zDNSName.__repr__r6   r7   r8   c                 C  r9   r&   )r   rJ   r:   r   r;   r
   r
   r   r<   n   r=   zDNSName.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB   t   rC   zDNSName.__hash__NrD   rE   )r   r   r   rJ   rF   rG   rH   r
   r
   r
   r   rJ   Q       


rJ   c                   @  r   )UniformResourceIdentifierr   r   r   r   c                 C  rK   )Nr   zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.r   rL   rM   r
   r
   r   r$   y   rN   z"UniformResourceIdentifier.__init__c                 C  r%   r&   r'   r   r
   r
   r   r      r(   zUniformResourceIdentifier.valuec                 C  r)   r&   r*   r,   r
   r
   r   r/      r0   z2UniformResourceIdentifier._init_without_validationc                 C  r1   )Nz!<UniformResourceIdentifier(value=r2   r3   r   r
   r
   r   r4      r5   z"UniformResourceIdentifier.__repr__r6   r7   r8   c                 C  r9   r&   )r   rP   r:   r   r;   r
   r
   r   r<      r=   z UniformResourceIdentifier.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB      rC   z"UniformResourceIdentifier.__hash__NrD   rE   )r   r   r   rP   rF   rG   rH   r
   r
   r
   r   rP   x   rO   rP   c                   @  B   e Zd ZdddZedddZdd
dZdddZdddZdS )DirectoryNamer   r   r   r   c                 C     t |ts	td|| _d S )Nzvalue must be a Name)r   r   r    r!   rM   r
   r
   r   r$         

zDirectoryName.__init__c                 C  r%   r&   r'   r   r
   r
   r   r      r(   zDirectoryName.valuer   c                 C     d| j  dS )Nz<DirectoryName(value=r2   r3   r   r
   r
   r   r4      r5   zDirectoryName.__repr__r6   r7   r8   c                 C  r9   r&   )r   rR   r:   r   r;   r
   r
   r   r<      r=   zDirectoryName.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB      rC   zDirectoryName.__hash__N)r   r   r   r   )r   r   rE   rF   rG   	r   r   r	   r$   r   r   r4   r<   rB   r
   r
   r
   r   rR          


rR   c                   @  rQ   )RegisteredIDr   r   r   r   c                 C  rS   )Nz!value must be an ObjectIdentifier)r   r   r    r!   rM   r
   r
   r   r$      rT   zRegisteredID.__init__c                 C  r%   r&   r'   r   r
   r
   r   r      r(   zRegisteredID.valuer   c                 C  rU   )Nz<RegisteredID(value=r2   r3   r   r
   r
   r   r4      r5   zRegisteredID.__repr__r6   r7   r8   c                 C  r9   r&   )r   rX   r:   r   r;   r
   r
   r   r<      r=   zRegisteredID.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB      rC   zRegisteredID.__hash__N)r   r   r   r   r   r   rE   rF   rG   rV   r
   r
   r
   r   rX      rW   rX   c                   @  sL   e Zd ZdddZedddZdd
dZdddZdddZdddZ	dS )	IPAddressr   _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!   rM   r
   r
   r   r$      s   	
zIPAddress.__init__c                 C  r%   r&   r'   r   r
   r
   r   r      r(   zIPAddress.valuebytesc                 C  s0   t | jtjtjfr| jjS | jjj| jjj S r&   )r   r   r\   r]   r^   packednetwork_addressnetmaskr   r
   r
   r   _packed   s   zIPAddress._packedr   c                 C  rU   )Nz<IPAddress(value=r2   r3   r   r
   r
   r   r4      r5   zIPAddress.__repr__r6   r7   r8   c                 C  r9   r&   )r   rZ   r:   r   r;   r
   r
   r   r<      r=   zIPAddress.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB      rC   zIPAddress.__hash__N)r   r[   r   r   )r   r[   r   ra   rE   rF   rG   )
r   r   r	   r$   r   r   re   r4   r<   rB   r
   r
   r
   r   rZ      s    




rZ   c                   @  sP   e Zd ZdddZedd	d
ZedddZdddZdddZdddZ	dS )	OtherNametype_idr   r   ra   r   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    ra   _type_idr!   )r   rh   r   r
   r
   r   r$      s   


zOtherName.__init__c                 C  r%   r&   )ri   r   r
   r
   r   rh     r(   zOtherName.type_idc                 C  r%   r&   r'   r   r
   r
   r   r     r(   zOtherName.valuer   c                 C  s   d| j  d| jdS )Nz<OtherName(type_id=z, value=r2   )rh   r   r   r
   r
   r   r4     s   zOtherName.__repr__r6   r7   r8   c                 C  s&   t |tstS | j|jko| j|jkS r&   )r   rg   r:   rh   r   r;   r
   r
   r   r<     s   
zOtherName.__eq__r>   c                 C  s   t | j| jfS r&   )rA   rh   r   r   r
   r
   r   rB     s   zOtherName.__hash__N)rh   r   r   ra   r   r   rY   rf   rE   rF   rG   )
r   r   r	   r$   r   rh   r   r4   r<   rB   r
   r
   r
   r   rg      s    
	

rg   )
__future__r   r   r\   typingemail.utilsr   cryptography.x509.namer   cryptography.x509.oidr   Unionr]   r^   r_   r`   r[   	Exceptionr   ABCMetar   r   rJ   rP   rR   rX   rZ   rg   r
   r
   r
   r   <module>   s.   	-''.