U
    ÒZjØ  ã                   @   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	   úa/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/cryptography/x509/general_name.pyr      s   r   c                   @   s"   e Zd Z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   ÚabcÚabstractpropertyÚ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Úasciiz�RFC822Name 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¡S )Nz<RFC822Name(value={0!r})>©Úformatr   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   r0   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#   Úpropertyr   Úclassmethodr+   r.   ÚobjectÚboolr3   Úintr6   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¡S )Nz<DNSName(value={0!r})>r,   r   r	   r	   r
   r.   j   s    zDNSName.__repr__r/   c                 C   s   t |tƒstS | j|jkS r$   )r   r=   r1   r   r2   r	   r	   r
   r3   m   s    
zDNSName.__eq__c                 C   s
   t | jƒS r$   r4   r   r	   r	   r
   r6   s   s    zDNSName.__hash__r7   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¡S )Nz(<UniformResourceIdentifier(value={0!r})>r,   r   r	   r	   r
   r.   “   s    z"UniformResourceIdentifier.__repr__r/   c                 C   s   t |tƒstS | j|jkS r$   )r   r@   r1   r   r2   r	   r	   r
   r3   –   s    
z UniformResourceIdentifier.__eq__c                 C   s
   t | jƒS r$   r4   r   r	   r	   r
   r6   œ   s    z"UniformResourceIdentifier.__hash__r7   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¡S )Nz<DirectoryName(value={})>r,   r   r	   r	   r
   r.   «   s    zDirectoryName.__repr__r/   c                 C   s   t |tƒstS | j|jkS r$   )r   rA   r1   r   r2   r	   r	   r
   r3   ®   s    
zDirectoryName.__eq__c                 C   s
   t | jƒS r$   r4   r   r	   r	   r
   r6   ´   s    zDirectoryName.__hash__)r   r   r   r   r#   r8   r   r   r.   r:   r;   r3   r<   r6   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¡S )Nz<RegisteredID(value={})>r,   r   r	   r	   r
   r.   Ã   s    zRegisteredID.__repr__r/   c                 C   s   t |tƒstS | j|jkS r$   )r   rB   r1   r   r2   r	   r	   r
   r3   Æ   s    
zRegisteredID.__eq__c                 C   s
   t | jƒS r$   r4   r   r	   r	   r
   r6   Ì   s    zRegisteredID.__hash__)r   r   r   r   r#   r8   r   r   r.   r:   r;   r3   r<   r6   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¡S )Nz<IPAddress(value={})>r,   r   r	   r	   r
   r.   ñ   s    zIPAddress.__repr__r/   c                 C   s   t |tƒstS | j|jkS r$   )r   rC   r1   r   r2   r	   r	   r
   r3   ô   s    
zIPAddress.__eq__c                 C   s
   t | jƒS r$   r4   r   r	   r	   r
   r6   ú   s    zIPAddress.__hash__)r   r   r   Ú_IPADDRESS_TYPESr#   r8   r   ÚbytesrL   r   r.   r:   r;   r3   r<   r6   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})>)r-   rP   r   r   r	   r	   r
   r.     s     ÿzOtherName.__repr__r/   c                 C   s&   t |tƒstS | j|jko$| j|jkS r$   )r   rO   r1   rP   r   r2   r	   r	   r
   r3     s    
zOtherName.__eq__c                 C   s   t | j| jfƒS r$   )r5   rP   r   r   r	   r	   r
   r6     s    zOtherName.__hash__)r   r   r   r   rN   r#   r8   rP   r   r   r.   r:   r;   r3   r<   r6   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*   ýÿ-').