o
    b                     @   s   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 )    N)	parseaddr)Name)ObjectIdentifierc                   @   s   e Zd ZdS )UnsupportedGeneralNameTypeN)__name__
__module____qualname__ r	   r	   ]/var/www/secure340b-portal/env/lib/python3.10/site-packages/cryptography/x509/general_name.pyr      s    r   c                   @   s"   e Zd ZejdejfddZdS )GeneralNamereturnc                 C   s   dS )z0
        Return the value of the object
        Nr	   selfr	   r	   r
   value   s    zGeneralName.valueN)r   r   r   abcabstractpropertytypingAnyr   r	   r	   r	   r
   r      s    r   )	metaclassc                   @      e Zd ZdeddfddZedefddZededd fdd	Zdefd
dZ	de
defddZde
defddZdefddZdS )
RFC822Namer   r   Nc                 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)
isinstancestr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   9      zRFC822Name.valuec                 C      |  | }||_|S r$   __new__r   clsr   instancer	   r	   r
   _init_without_validation=      
z#RFC822Name._init_without_validationc                 C      d | jS )Nz<RFC822Name(value={0!r})>formatr   r   r	   r	   r
   __repr__C      zRFC822Name.__repr__otherc                 C      t |tstS | j|jkS r$   )r   r   NotImplementedr   r   r4   r	   r	   r
   __eq__F      
zRFC822Name.__eq__c                 C   
   | |k S r$   r	   r7   r	   r	   r
   __ne__L      
zRFC822Name.__ne__c                 C   
   t | jS r$   hashr   r   r	   r	   r
   __hash__O   r<   zRFC822Name.__hash__r   r   r   r   r"   propertyr   classmethodr-   r2   objectboolr8   r;   intr@   r	   r	   r	   r
   r   #   s    r   c                   @   r   )DNSNamer   r   Nc                 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"   T      

zDNSName.__init__c                 C   r#   r$   r%   r   r	   r	   r
   r   c   r&   zDNSName.valuec                 C   r'   r$   r(   r*   r	   r	   r
   r-   g   r.   z DNSName._init_without_validationc                 C   r/   )Nz<DNSName(value={0!r})>r0   r   r	   r	   r
   r2   m   r3   zDNSName.__repr__r4   c                 C   r5   r$   )r   rG   r6   r   r7   r	   r	   r
   r8   p   r9   zDNSName.__eq__c                 C   r:   r$   r	   r7   r	   r	   r
   r;   v   r<   zDNSName.__ne__c                 C   r=   r$   r>   r   r	   r	   r
   r@   y   r<   zDNSName.__hash__rA   r	   r	   r	   r
   rG   S   s    rG   c                   @   r   )UniformResourceIdentifierr   r   Nc                 C   rH   )Nr   zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.r   rI   rJ   r	   r	   r
   r"   ~   rK   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-      s   
z2UniformResourceIdentifier._init_without_validationc                 C   r/   )Nz(<UniformResourceIdentifier(value={0!r})>r0   r   r	   r	   r
   r2      r3   z"UniformResourceIdentifier.__repr__r4   c                 C   r5   r$   )r   rL   r6   r   r7   r	   r	   r
   r8      r9   z UniformResourceIdentifier.__eq__c                 C   r:   r$   r	   r7   r	   r	   r
   r;      r<   z UniformResourceIdentifier.__ne__c                 C   r=   r$   r>   r   r	   r	   r
   r@      r<   z"UniformResourceIdentifier.__hash__rA   r	   r	   r	   r
   rL   }   s    rL   c                   @   p   e Zd ZdeddfddZedefddZdefdd	Zd
e	de
fddZd
e	de
fddZdefddZdS )DirectoryNamer   r   Nc                 C      t |ts	td|| _d S )Nzvalue must be a Name)r   r   r   r   rJ   r	   r	   r
   r"         

zDirectoryName.__init__c                 C   r#   r$   r%   r   r	   r	   r
   r      r&   zDirectoryName.valuec                 C   r/   )Nz<DirectoryName(value={})>r0   r   r	   r	   r
   r2      r3   zDirectoryName.__repr__r4   c                 C   r5   r$   )r   rN   r6   r   r7   r	   r	   r
   r8      r9   zDirectoryName.__eq__c                 C   r:   r$   r	   r7   r	   r	   r
   r;      r<   zDirectoryName.__ne__c                 C   r=   r$   r>   r   r	   r	   r
   r@      r<   zDirectoryName.__hash__)r   r   r   r   r"   rB   r   r   r2   rD   rE   r8   r;   rF   r@   r	   r	   r	   r
   rN          rN   c                   @   rM   )RegisteredIDr   r   Nc                 C   rO   )Nz!value must be an ObjectIdentifier)r   r   r   r   rJ   r	   r	   r
   r"      rP   zRegisteredID.__init__c                 C   r#   r$   r%   r   r	   r	   r
   r      r&   zRegisteredID.valuec                 C   r/   )Nz<RegisteredID(value={})>r0   r   r	   r	   r
   r2      r3   zRegisteredID.__repr__r4   c                 C   r5   r$   )r   rR   r6   r   r7   r	   r	   r
   r8      r9   zRegisteredID.__eq__c                 C   r:   r$   r	   r7   r	   r	   r
   r;      r<   zRegisteredID.__ne__c                 C   r=   r$   r>   r   r	   r	   r
   r@      r<   zRegisteredID.__hash__)r   r   r   r   r"   rB   r   r   r2   rD   rE   r8   r;   rF   r@   r	   r	   r	   r
   rR      rQ   rR   c                   @   rM   )	IPAddressr   r   Nc                 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   rJ   r	   r	   r
   r"      s   	
zIPAddress.__init__c                 C   r#   r$   r%   r   r	   r	   r
   r      r&   zIPAddress.valuec                 C   r/   )Nz<IPAddress(value={})>r0   r   r	   r	   r
   r2      r3   zIPAddress.__repr__r4   c                 C   r5   r$   )r   rS   r6   r   r7   r	   r	   r
   r8      r9   zIPAddress.__eq__c                 C   r:   r$   r	   r7   r	   r	   r
   r;      r<   zIPAddress.__ne__c                 C   r=   r$   r>   r   r	   r	   r
   r@     r<   zIPAddress.__hash__)r   r   r   _IPADDRESS_TYPESr"   rB   r   r   r2   rD   rE   r8   r;   rF   r@   r	   r	   r	   r
   rS      s    rS   c                   @   s   e Zd ZdededdfddZedefddZedefd	d
Zde	fddZ
dedefddZdedefddZdefddZdS )	OtherNametype_idr   r   Nc                 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   bytes_type_idr   )r   r[   r   r	   r	   r
   r"     s   


zOtherName.__init__c                 C   r#   r$   )r]   r   r	   r	   r
   r[     r&   zOtherName.type_idc                 C   r#   r$   r%   r   r	   r	   r
   r     r&   zOtherName.valuec                 C   s   d | j| jS )Nz#<OtherName(type_id={}, value={!r})>)r1   r[   r   r   r	   r	   r
   r2     s   zOtherName.__repr__r4   c                 C   s&   t |tstS | j|jko| j|jkS r$   )r   rZ   r6   r[   r   r7   r	   r	   r
   r8     s   
zOtherName.__eq__c                 C   r:   r$   r	   r7   r	   r	   r
   r;   #  r<   zOtherName.__ne__c                 C   s   t | j| jfS r$   )r?   r[   r   r   r	   r	   r
   r@   &  s   zOtherName.__hash__)r   r   r   r   r\   r"   rB   r[   r   r   r2   rD   rE   r8   r;   rF   r@   r	   r	   r	   r
   rZ     s    	rZ   )r   rT   r   email.utilsr   Zcryptography.x509.namer   Zcryptography.x509.oidr   UnionrU   rV   rW   rX   rY   	Exceptionr   ABCMetar   r   rG   rL   rN   rR   rS   rZ   r	   r	   r	   r
   <module>   s,   0*,'