
     h                        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dS )    N)	parseaddr)Name)ObjectIdentifierc                       e Zd ZdS )UnsupportedGeneralNameTypeN)__name__
__module____qualname__     Z/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/cryptography/x509/general_name.pyr   r      s        Dr   r   c                   N    e Zd Zeej        dej        fd                        ZdS )GeneralNamereturnc                     dS )z0
        Return the value of the object
        Nr   selfs    r   valuezGeneralName.value   s      r   N)	r   r	   r
   propertyabcabstractmethodtypingAnyr   r   r   r   r   r      sI        vz     X  r   r   )	metaclassc                       e Zd ZdeddfdZedefd            Zededd fd            ZdefdZ	de
defd	Zdefd
ZdS )
RFC822Namer   r   Nc                    t          |t                    r4	 |                    d           n,# t          $ r t	          d          w xY 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addresss       r   __init__zRFC822Name.__init__$   s    eS!! 
	4W%%%%%    +   2333!%((g 	9w 	9 7888	   - Ac                     | j         S Nr&   r   s    r   r   zRFC822Name.value9   
    {r   c                 >    |                      |           }||_        |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__C   s    4DJ4444r   otherc                 Z    t          |t                    st          S | j        |j        k    S r,   )r    r   NotImplementedr   r   r;   s     r   __eq__zRFC822Name.__eq__F   s)    %,, 	"!!zU[((r   c                 *    t          | j                  S r,   hashr   r   s    r   __hash__zRFC822Name.__hash__L       DJr   r   r	   r
   r!   r)   r   r   classmethodr5   r:   objectboolr?   intrC   r   r   r   r   r   #   s        c d    * s    X S \    [
5# 5 5 5 5)F )t ) ) ) ) #            r   r   c                       e Zd ZdeddfdZedefd            Zededd fd            ZdefdZ	de
defd	Zdefd
ZdS )DNSNamer   r   Nc                     t          |t                    r4	 |                    d           n,# t          $ r t	          d          w xY 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   s     r   r)   zDNSName.__init__Q   |    eS!! 
	4W%%%%%    +   2333r*   c                     | j         S r,   r-   r   s    r   r   zDNSName.value`   r.   r   c                 >    |                      |           }||_        |S r,   r0   r2   s      r   r5   z DNSName._init_without_validationd   r6   r   c                     d| j         dS )Nz<DNSName(value=r8   r9   r   s    r   r:   zDNSName.__repr__j   s    11111r   r;   c                 Z    t          |t                    st          S | j        |j        k    S r,   )r    rK   r=   r   r>   s     r   r?   zDNSName.__eq__m   s)    %)) 	"!!zU[((r   c                 *    t          | j                  S r,   rA   r   s    r   rC   zDNSName.__hash__s   rD   r   rE   r   r   r   rK   rK   P   s        c d     s    X S Y    [
2# 2 2 2 2)F )t ) ) ) ) #            r   rK   c                       e Zd ZdeddfdZedefd            Zededd fd            ZdefdZ	de
defd	Zdefd
ZdS )UniformResourceIdentifierr   r   Nc                     t          |t                    r4	 |                    d           n,# t          $ r t	          d          w xY w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   rM   rN   s     r   r)   z"UniformResourceIdentifier.__init__x   rO   r*   c                     | j         S r,   r-   r   s    r   r   zUniformResourceIdentifier.value   r.   r   c                 >    |                      |           }||_        |S r,   r0   r2   s      r   r5   z2UniformResourceIdentifier._init_without_validation   s!     ;;s##r   c                     d| j         dS )Nz!<UniformResourceIdentifier(value=r8   r9   r   s    r   r:   z"UniformResourceIdentifier.__repr__   s    C4:CCCCr   r;   c                 Z    t          |t                    st          S | j        |j        k    S r,   )r    rV   r=   r   r>   s     r   r?   z UniformResourceIdentifier.__eq__   s*    %!:;; 	"!!zU[((r   c                 *    t          | j                  S r,   rA   r   s    r   rC   z"UniformResourceIdentifier.__hash__   rD   r   rE   r   r   r   rV   rV   w   s        c d     s    X 	$   [D# D D D D)F )t ) ) ) ) #            r   rV   c                   b    e Zd ZdeddfdZedefd            ZdefdZde	de
fdZdefd	ZdS )
DirectoryNamer   r   Nc                 \    t          |t                    st          d          || _        d S )Nzvalue must be a Name)r    r   r%   r&   rN   s     r   r)   zDirectoryName.__init__   s.    %&& 	423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=r8   r9   r   s    r   r:   zDirectoryName.__repr__   s    5tz5555r   r;   c                 Z    t          |t                    st          S | j        |j        k    S r,   )r    r^   r=   r   r>   s     r   r?   zDirectoryName.__eq__   s)    %// 	"!!zU[((r   c                 *    t          | j                  S r,   rA   r   s    r   rC   zDirectoryName.__hash__   rD   r   )r   r	   r
   r   r)   r   r   r!   r:   rG   rH   r?   rI   rC   r   r   r   r^   r^      s        d t     t    X6# 6 6 6 6)F )t ) ) ) ) #            r   r^   c                   b    e Zd ZdeddfdZedefd            ZdefdZde	de
fdZdefd	ZdS )
RegisteredIDr   r   Nc                 \    t          |t                    st          d          || _        d S )Nz!value must be an ObjectIdentifier)r    r   r%   r&   rN   s     r   r)   zRegisteredID.__init__   s0    %!122 	A?@@@r   c                     | j         S r,   r-   r   s    r   r   zRegisteredID.value   r.   r   c                     d| j          dS )Nz<RegisteredID(value=r8   r9   r   s    r   r:   zRegisteredID.__repr__   s    4dj4444r   r;   c                 Z    t          |t                    st          S | j        |j        k    S r,   )r    re   r=   r   r>   s     r   r?   zRegisteredID.__eq__   s)    %.. 	"!!zU[((r   c                 *    t          | j                  S r,   rA   r   s    r   rC   zRegisteredID.__hash__   rD   r   )r   r	   r
   r   r)   r   r   r!   r:   rG   rH   r?   rI   rC   r   r   r   re   re      s        . 4     '    X5# 5 5 5 5)F )t ) ) ) ) #            r   re   c                   n    e Zd ZdeddfdZedefd            ZdefdZde	fdZ
dedefd	Zdefd
ZdS )	IPAddressr   r   Nc                     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&   rN   s     r   r)   zIPAddress.__init__   sZ    %%%%	
 
 	 (   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   rn   ro   rp   packednetwork_addressnetmaskr   s    r   _packedzIPAddress._packed   sR    J.	0EF
 
 	 :$$ 
*1DJ4F4MMr   c                     d| j          dS )Nz<IPAddress(value=r8   r9   r   s    r   r:   zIPAddress.__repr__   s    14:1111r   r;   c                 Z    t          |t                    st          S | j        |j        k    S r,   )r    rl   r=   r   r>   s     r   r?   zIPAddress.__eq__   s)    %++ 	"!!zU[((r   c                 *    t          | j                  S r,   rA   r   s    r   rC   zIPAddress.__hash__   rD   r   )r   r	   r
   _IPAddressTypesr)   r   r   bytesrx   r!   r:   rG   rH   r?   rI   rC   r   r   r   rl   rl      s        o $    $     X    2# 2 2 2 2)F )t ) ) ) ) #            r   rl   c                       e Zd ZdededdfdZedefd            Zedefd            Zde	fdZ
d	edefd
ZdefdZdS )	OtherNametype_idr   r   Nc                     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%   r}   _type_idr&   )r   r   r   s      r   r)   zOtherName.__init__   sX    '#344 	CAB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                 B    d                     | j        | j                  S )Nz#<OtherName(type_id={}, value={!r})>)formatr   r   r   s    r   r:   zOtherName.__repr__  s#    4;;L$*
 
 	
r   r;   c                 z    t          |t                    st          S | j        |j        k    o| j        |j        k    S r,   )r    r   r=   r   r   r>   s     r   r?   zOtherName.__eq__  s7    %++ 	"!!|u},Ju{1JJr   c                 8    t          | j        | j        f          S r,   )rB   r   r   r   s    r   rC   zOtherName.__hash__  s    T\4:.///r   )r   r	   r
   r   r}   r)   r   r   r   r!   r:   rG   rH   r?   rI   rC   r   r   r   r   r      s         0  4     )    X u    X
# 
 
 
 

KF Kt K K K K0# 0 0 0 0 0 0r   r   )r   rn   r   email.utilsr   cryptography.x509.namer   cryptography.x509.oidr   Unionro   rp   rq   rr   r|   	Exceptionr   ABCMetar   r   rK   rV   r^   re   rl   r   r   r   r   <module>r      s   


      ! ! ! ! ! ! ' ' ' ' ' ' 2 2 2 2 2 2,	 	 	 	 	 	 	 	    CK    *  *  *  *  *  *  *  * Z$  $  $  $  $ k $  $  $ N&  &  &  &  &  &  &  & R         K      0         ;      0+  +  +  +  +  +  +  + \0 0 0 0 0 0 0 0 0 0r   