
    Zg                       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e      Z G d d	ej&                  
      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )annotationsN)	parseaddr)Name)ObjectIdentifierc                      e Zd Zy)UnsupportedGeneralNameTypeN)__name__
__module____qualname__     [/var/www/django_project/virt/lib/python3.12/site-packages/cryptography/x509/general_name.pyr   r      s    r   r   c                  <    e Zd Zeej
                  dd              Zy)GeneralNamec                     y)z0
        Return the value of the object
        Nr   selfs    r   valuezGeneralName.value   s    r   N)returnz
typing.Any)r	   r
   r   propertyabcabstractmethodr   r   r   r   r   r      s"      r   r   )	metaclassc                  P    e Zd ZddZed	d       Zed
d       Zd	dZddZ	ddZ
y)
RFC822Namec                    t        |t              r	 |j                  d       nt        d      t        |      \  }}|s|st	        d      || _        y # t        $ r t	        d      w xY w)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addresss       r   __init__zRFC822Name.__init__%   sv    eS!W% 233!%(gw 788 &  + s   A A)c                    | j                   S Nr%   r   s    r   r   zRFC822Name.value:       {{r   c                6    | j                  |       }||_        |S r*   __new__r%   clsr   instances      r   _init_without_validationz#RFC822Name._init_without_validation>       ;;s#r   c                "    d| j                   dS )Nz<RFC822Name(value=)>r   r   s    r   __repr__zRFC822Name.__repr__D   s    #DJJ>44r   c                `    t        |t              st        S | j                  |j                  k(  S r*   )r   r   NotImplementedr   r   others     r   __eq__zRFC822Name.__eq__G   s%    %,!!zzU[[((r   c                ,    t        | j                        S r*   hashr   r   s    r   __hash__zRFC822Name.__hash__M       DJJr   Nr   r    r   Noner   r    )r   r    r   r   r<   objectr   boolr   intr	   r
   r   r(   r   r   classmethodr3   r8   r=   rA   r   r   r   r   r   $   s>    *    
5) r   r   c                  P    e Zd ZddZed	d       Zed
d       Zd	dZddZ	ddZ
y)DNSNamec                    t        |t              r	 |j                  d       || _        y t        d      # t        $ r t	        d      w xY w)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   s     r   r(   zDNSName.__init__R   W    eS!W%  233 &  + 	   6 Ac                    | j                   S r*   r+   r   s    r   r   zDNSName.valuea   r,   r   c                6    | j                  |       }||_        |S r*   r.   r0   s      r   r3   z DNSName._init_without_validatione   r4   r   c                "    d| j                   dS )Nz<DNSName(value=r6   r7   r   s    r   r8   zDNSName.__repr__k   s     b11r   c                `    t        |t              st        S | j                  |j                  k(  S r*   )r   rN   r:   r   r;   s     r   r=   zDNSName.__eq__n   s%    %)!!zzU[[((r   c                ,    t        | j                        S r*   r?   r   s    r   rA   zDNSName.__hash__t   rB   r   NrC   rE   )r   r    r   rN   rF   rI   rK   r   r   r   rN   rN   Q   s>        
2) r   rN   c                  P    e Zd ZddZed	d       Zed
d       Zd	dZddZ	ddZ
y)UniformResourceIdentifierc                    t        |t              r	 |j                  d       || _        y t        d      # t        $ r t	        d      w xY w)Nr   zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.r   rP   rQ   s     r   r(   z"UniformResourceIdentifier.__init__y   rR   rS   c                    | j                   S r*   r+   r   s    r   r   zUniformResourceIdentifier.value   r,   r   c                6    | j                  |       }||_        |S r*   r.   r0   s      r   r3   z2UniformResourceIdentifier._init_without_validation   r4   r   c                "    d| j                   dS )Nz!<UniformResourceIdentifier(value=r6   r7   r   s    r   r8   z"UniformResourceIdentifier.__repr__   s    24::.CCr   c                `    t        |t              st        S | j                  |j                  k(  S r*   )r   rZ   r:   r   r;   s     r   r=   z UniformResourceIdentifier.__eq__   s&    %!:;!!zzU[[((r   c                ,    t        | j                        S r*   r?   r   s    r   rA   z"UniformResourceIdentifier.__hash__   rB   r   NrC   rE   )r   r    r   rZ   rF   rI   rK   r   r   r   rZ   rZ   x   s?        
D) r   rZ   c                  >    e Zd ZddZedd       Zd	dZd
dZddZy)DirectoryNamec                H    t        |t              st        d      || _        y )Nzvalue must be a Name)r   r   r$   r%   rQ   s     r   r(   zDirectoryName.__init__   s    %&233r   c                    | j                   S r*   r+   r   s    r   r   zDirectoryName.value   r,   r   c                "    d| j                    dS )Nz<DirectoryName(value=r6   r7   r   s    r   r8   zDirectoryName.__repr__   s    &tzzl"55r   c                `    t        |t              st        S | j                  |j                  k(  S r*   )r   rb   r:   r   r;   s     r   r=   zDirectoryName.__eq__   s%    %/!!zzU[[((r   c                ,    t        | j                        S r*   r?   r   s    r   rA   zDirectoryName.__hash__   rB   r   N)r   r   r   rD   )r   r   rE   rF   rI   	r	   r
   r   r(   r   r   r8   r=   rA   r   r   r   rb   rb      s*      6) r   rb   c                  >    e Zd ZddZedd       Zd	dZd
dZddZy)RegisteredIDc                H    t        |t              st        d      || _        y )Nz!value must be an ObjectIdentifier)r   r   r$   r%   rQ   s     r   r(   zRegisteredID.__init__   s     %!12?@@r   c                    | j                   S r*   r+   r   s    r   r   zRegisteredID.value   r,   r   c                "    d| j                    dS )Nz<RegisteredID(value=r6   r7   r   s    r   r8   zRegisteredID.__repr__   s    %djj\44r   c                `    t        |t              st        S | j                  |j                  k(  S r*   )r   rj   r:   r   r;   s     r   r=   zRegisteredID.__eq__   s%    %.!!zzU[[((r   c                ,    t        | j                        S r*   r?   r   s    r   rA   zRegisteredID.__hash__   rB   r   N)r   r   r   rD   r   r   rE   rF   rI   rh   r   r   r   rj   rj      s*      5) r   rj   c                  F    e Zd ZddZed	d       Zd
dZddZddZddZ	y)	IPAddressc                    t        |t        j                  t        j                  t        j                  t        j
                  f      st        d      || _        y )Nzzvalue must be an instance of ipaddress.IPv4Address, ipaddress.IPv6Address, ipaddress.IPv4Network, or ipaddress.IPv6Network)r   	ipaddressIPv4AddressIPv6AddressIPv4NetworkIPv6Networkr$   r%   rQ   s     r   r(   zIPAddress.__init__   sS    %%%%%%%%	
 (  r   c                    | j                   S r*   r+   r   s    r   r   zIPAddress.value   r,   r   c                   t        | j                  t        j                  t        j                  f      r| j                  j
                  S | j                  j                  j
                  | j                  j                  j
                  z   S r*   )r   r   rt   ru   rv   packednetwork_addressnetmaskr   s    r   _packedzIPAddress._packed   se    JJ..	0E0EF
 ::$$$ 

**11DJJ4F4F4M4MMr   c                "    d| j                    dS )Nz<IPAddress(value=r6   r7   r   s    r   r8   zIPAddress.__repr__   s    "4::,b11r   c                `    t        |t              st        S | j                  |j                  k(  S r*   )r   rr   r:   r   r;   s     r   r=   zIPAddress.__eq__   s%    %+!!zzU[[((r   c                ,    t        | j                        S r*   r?   r   s    r   rA   zIPAddress.__hash__   rB   r   N)r   _IPAddressTypesr   rD   )r   r   r   bytesrE   rF   rI   )
r	   r
   r   r(   r   r   r~   r8   r=   rA   r   r   r   rr   rr      s/    $  2) r   rr   c                  P    e Zd ZddZed	d       Zed
d       ZddZddZddZ	y)	OtherNamec                    t        |t              st        d      t        |t              st        d      || _        || _        y )Nz#type_id must be an ObjectIdentifierzvalue must be a binary string)r   r   r$   r   _type_idr%   )r   type_idr   s      r   r(   zOtherName.__init__   s=    '#34ABB%';<<r   c                    | j                   S r*   )r   r   s    r   r   zOtherName.type_id  s    }}r   c                    | j                   S r*   r+   r   s    r   r   zOtherName.value  r,   r   c                <    d| j                    d| j                  dS )Nz<OtherName(type_id=z, value=r6   )r   r   r   s    r   r8   zOtherName.__repr__  s    $T\\N(4::.KKr   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r*   )r   r   r:   r   r   r;   s     r   r=   zOtherName.__eq__  s7    %+!!||u}},Ju{{1JJr   c                D    t        | j                  | j                  f      S r*   )r@   r   r   r   s    r   rA   zOtherName.__hash__  s    T\\4::.//r   N)r   r   r   r   r   rD   rp   r   rE   rF   rI   )
r	   r
   r   r(   r   r   r   r8   r=   rA   r   r   r   r   r      s@        LK0r   r   )
__future__r   r   rt   typingemail.utilsr   cryptography.x509.namer   cryptography.x509.oidr   Unionru   rv   rw   rx   r   	Exceptionr   ABCMetar   r   rN   rZ   rb   rj   rr   r   r   r   r   <module>r      s   
 # 
   ! ' 2,,	 	CKK *  * Z$ k $ N$  $ N K  0 ;  0+  + \0 0r   