U
    EZh                     @   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	   e/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/cryptography/x509/general_name.pyr      s   r   c                   @   s&   e Zd Zeejejd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   propertyabcabstractmethodtypingAnyr   r	   r	   r	   r
   r      s   r   )	metaclassc                   @   sn   e Zd ZeddddZeedddZeed ddd	Zedd
dZ	e
edddZedddZdS )
RFC822NameNr   r   c                 C   sf   t |tr8z|d W q@ tk
r4   tdY q@X ntdt|\}}|sT|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__r   c                 C   s   | j S Nr!   r   r	   r	   r
   r   9   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__C   s    zRFC822Name.__repr__otherr   c                 C   s   t |tstS | j|jkS r%   )r   r   NotImplementedr   r   r1   r	   r	   r
   __eq__F   s    
zRFC822Name.__eq__c                 C   s
   t | jS r%   hashr   r   r	   r	   r
   __hash__L   s    zRFC822Name.__hash__r   r   r   r   r$   r   r   classmethodr,   r/   objectboolr4   intr7   r	   r	   r	   r
   r   #   s   r   c                   @   sn   e Zd ZeddddZeedddZeed ddd	Zedd
dZ	e
edddZedddZdS )DNSNameNr   c                 C   sJ   t |tr8z|d W q@ tk
r4   tdY q@X 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$   Q   s    
zDNSName.__init__r   c                 C   s   | j S r%   r&   r   r	   r	   r
   r   `   s    zDNSName.valuec                 C   s   |  | }||_|S r%   r'   r)   r	   r	   r
   r,   d   s    
z DNSName._init_without_validationc                 C   s   d| j dS )Nz<DNSName(value=r-   r.   r   r	   r	   r
   r/   j   s    zDNSName.__repr__r0   c                 C   s   t |tstS | j|jkS r%   )r   r=   r2   r   r3   r	   r	   r
   r4   m   s    
zDNSName.__eq__c                 C   s
   t | jS r%   r5   r   r	   r	   r
   r7   s   s    zDNSName.__hash__r8   r	   r	   r	   r
   r=   P   s   r=   c                   @   sn   e Zd ZeddddZeedddZeed ddd	Zedd
dZ	e
edddZedddZdS )UniformResourceIdentifierNr   c                 C   sJ   t |tr8z|d W q@ tk
r4   tdY q@X 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$   x   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   c                 C   s   t |tstS | j|jkS r%   )r   r@   r2   r   r3   r	   r	   r
   r4      s    
z UniformResourceIdentifier.__eq__c                 C   s
   t | jS r%   r5   r   r	   r	   r
   r7      s    z"UniformResourceIdentifier.__hash__r8   r	   r	   r	   r
   r@   w   s   r@   c                   @   sZ   e Zd ZeddddZeedddZeddd	Ze	e
d
ddZedddZdS )DirectoryNameNr   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.valuec                 C   s   d| j  dS )Nz<DirectoryName(value=r-   r.   r   r	   r	   r
   r/      s    zDirectoryName.__repr__r0   c                 C   s   t |tstS | j|jkS r%   )r   rA   r2   r   r3   r	   r	   r
   r4      s    
zDirectoryName.__eq__c                 C   s
   t | jS r%   r5   r   r	   r	   r
   r7      s    zDirectoryName.__hash__)r   r   r   r   r$   r   r   r   r/   r:   r;   r4   r<   r7   r	   r	   r	   r
   rA      s   rA   c                   @   sZ   e Zd ZeddddZeedddZeddd	Ze	e
d
ddZedddZdS )RegisteredIDNr   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.valuec                 C   s   d| j  dS )Nz<RegisteredID(value=r-   r.   r   r	   r	   r
   r/      s    zRegisteredID.__repr__r0   c                 C   s   t |tstS | j|jkS r%   )r   rB   r2   r   r3   r	   r	   r
   r4      s    
zRegisteredID.__eq__c                 C   s
   t | jS r%   r5   r   r	   r	   r
   r7      s    zRegisteredID.__hash__)r   r   r   r   r$   r   r   r   r/   r:   r;   r4   r<   r7   r	   r	   r	   r
   rB      s   rB   c                   @   sh   e Zd ZeddddZeedddZeddd	Ze	dd
dZ
eedddZedddZdS )	IPAddressNr   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.valuec                 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   rD   rE   rF   packednetwork_addressnetmaskr   r	   r	   r
   _packed   s     
zIPAddress._packedc                 C   s   d| j  dS )Nz<IPAddress(value=r-   r.   r   r	   r	   r
   r/      s    zIPAddress.__repr__r0   c                 C   s   t |tstS | j|jkS r%   )r   rC   r2   r   r3   r	   r	   r
   r4      s    
zIPAddress.__eq__c                 C   s
   t | jS r%   r5   r   r	   r	   r
   r7      s    zIPAddress.__hash__)r   r   r   _IPAddressTypesr$   r   r   bytesrL   r   r/   r:   r;   r4   r<   r7   r	   r	   r	   r
   rC      s   
rC   c                   @   sn   e Zd ZeeddddZeedddZeeddd	Ze	dd
dZ
eedddZedddZdS )	OtherNameN)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    rN   _type_idr!   )r   rP   r   r	   r	   r
   r$      s    

zOtherName.__init__r   c                 C   s   | j S r%   )rQ   r   r	   r	   r
   rP     s    zOtherName.type_idc                 C   s   | j S r%   r&   r   r	   r	   r
   r     s    zOtherName.valuec                 C   s   d | j| jS )Nz#<OtherName(type_id={}, value={!r})>)formatrP   r   r   r	   r	   r
   r/     s     zOtherName.__repr__r0   c                 C   s&   t |tstS | j|jko$| j|jkS r%   )r   rO   r2   rP   r   r3   r	   r	   r
   r4     s    
zOtherName.__eq__c                 C   s   t | j| jfS r%   )r6   rP   r   r   r	   r	   r
   r7     s    zOtherName.__hash__)r   r   r   r   rN   r$   r   rP   r   r   r/   r:   r;   r4   r<   r7   r	   r	   r	   r
   rO      s   	rO   )r   rD   r   email.utilsr   Zcryptography.x509.namer   Zcryptography.x509.oidr   UnionrE   rF   rG   rH   rM   	Exceptionr   ABCMetar   r   r=   r@   rA   rB   rC   rO   r	   r	   r	   r
   <module>   s*   	-').