o
    àý°jœ  ã                   @  sú   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„ 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 )é    )ÚannotationsN)Ú	parseaddr)ÚName)ÚObjectIdentifierc                   @  s   e Zd ZdS )ÚUnsupportedGeneralNameTypeN)Ú__name__Ú
__module__Ú__qualname__© r
   r
   ú‘/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/cryptography/x509/general_name.pyr      s    r   c                   @  s    e Zd Zeejddd„ƒƒZdS )ÚGeneralNameÚreturnú
typing.Anyc                 C  s   dS )z0
        Return the value of the object
        Nr
   ©Úselfr
   r
   r   Úvalue   s    zGeneralName.valueN)r   r   )r   r   r	   ÚpropertyÚabcÚabstractmethodr   r
   r
   r
   r   r      s    r   )Ú	metaclassc                   @  óP   e Zd Zddd„Zeddd„ƒZedd	d
„ƒZddd„Zddd„Z	ddd„Z
dS )Ú
RFC822Namer   Ústrr   ÚNonec                 C  s^   t |tƒrz| d¡ W n ty   tdƒ‚w tdƒ‚t|ƒ\}}|s&|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)Ú
isinstancer   Ú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   :   ó   zRFC822Name.valuec                 C  ó   |   | ¡}||_|S r&   ©Ú__new__r!   ©Úclsr   Úinstancer
   r
   r   Ú_init_without_validation>   ó   
z#RFC822Name._init_without_validationc                 C  ó   d| j ›d�S )Nz<RFC822Name(value=ú)>©r   r   r
   r
   r   Ú__repr__D   ó   zRFC822Name.__repr__ÚotherÚobjectÚboolc                 C  ó   t |tƒstS | j|jkS r&   )r   r   ÚNotImplementedr   ©r   r6   r
   r
   r   Ú__eq__G   ó   
zRFC822Name.__eq__Úintc                 C  ó
   t | jƒS r&   ©Úhashr   r   r
   r
   r   Ú__hash__M   ó   
zRFC822Name.__hash__N©r   r   r   r   ©r   r   )r   r   r   r   ©r6   r7   r   r8   ©r   r>   ©r   r   r	   r$   r   r   Úclassmethodr/   r4   r<   rB   r
   r
   r
   r   r   $   s    


r   c                   @  r   )ÚDNSNamer   r   r   r   c                 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$   R   ó   
ÿÿ
zDNSName.__init__c                 C  r%   r&   r'   r   r
   r
   r   r   a   r(   zDNSName.valuec                 C  r)   r&   r*   r,   r
   r
   r   r/   e   r0   z DNSName._init_without_validationc                 C  r1   )Nz<DNSName(value=r2   r3   r   r
   r
   r   r4   k   r5   zDNSName.__repr__r6   r7   r8   c                 C  r9   r&   )r   rJ   r:   r   r;   r
   r
   r   r<   n   r=   zDNSName.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB   t   rC   zDNSName.__hash__NrD   rE   )r   r   r   rJ   rF   rG   rH   r
   r
   r
   r   rJ   Q   ó    


rJ   c                   @  r   )ÚUniformResourceIdentifierr   r   r   r   c                 C  rK   )Nr   zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.r   rL   rM   r
   r
   r   r$   y   rN   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/   Œ   r0   z2UniformResourceIdentifier._init_without_validationc                 C  r1   )Nz!<UniformResourceIdentifier(value=r2   r3   r   r
   r
   r   r4   ’   r5   z"UniformResourceIdentifier.__repr__r6   r7   r8   c                 C  r9   r&   )r   rP   r:   r   r;   r
   r
   r   r<   •   r=   z UniformResourceIdentifier.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB   ›   rC   z"UniformResourceIdentifier.__hash__NrD   rE   )r   r   r   rP   rF   rG   rH   r
   r
   r
   r   rP   x   rO   rP   c                   @  óB   e Zd Zddd„Zeddd„ƒZdd
d„Zddd„Zddd„ZdS )ÚDirectoryNamer   r   r   r   c                 C  ó   t |tƒs	tdƒ‚|| _d S )Nzvalue must be a Name)r   r   r    r!   rM   r
   r
   r   r$       ó   

zDirectoryName.__init__c                 C  r%   r&   r'   r   r
   r
   r   r   ¦   r(   zDirectoryName.valuer   c                 C  ó   d| j › d�S )Nz<DirectoryName(value=r2   r3   r   r
   r
   r   r4   ª   r5   zDirectoryName.__repr__r6   r7   r8   c                 C  r9   r&   )r   rR   r:   r   r;   r
   r
   r   r<   ­   r=   zDirectoryName.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB   ³   rC   zDirectoryName.__hash__N)r   r   r   r   )r   r   rE   rF   rG   ©	r   r   r	   r$   r   r   r4   r<   rB   r
   r
   r
   r   rR   Ÿ   ó    


rR   c                   @  rQ   )ÚRegisteredIDr   r   r   r   c                 C  rS   )Nz!value must be an ObjectIdentifier)r   r   r    r!   rM   r
   r
   r   r$   ¸   rT   zRegisteredID.__init__c                 C  r%   r&   r'   r   r
   r
   r   r   ¾   r(   zRegisteredID.valuer   c                 C  rU   )Nz<RegisteredID(value=r2   r3   r   r
   r
   r   r4   Â   r5   zRegisteredID.__repr__r6   r7   r8   c                 C  r9   r&   )r   rX   r:   r   r;   r
   r
   r   r<   Å   r=   zRegisteredID.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB   Ë   rC   zRegisteredID.__hash__N)r   r   r   r   ©r   r   rE   rF   rG   rV   r
   r
   r
   r   rX   ·   rW   rX   c                   @  sL   e Zd Zddd„Zeddd„ƒZdd
d„Zddd„Zddd„Zddd„Z	dS )Ú	IPAddressr   Ú_IPAddressTypesr   r   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!   rM   r
   r
   r   r$   Ð   s   üþ	ÿ
zIPAddress.__init__c                 C  r%   r&   r'   r   r
   r
   r   r   â   r(   zIPAddress.valueÚbytesc                 C  s0   t | jtjtjfƒr| jjS | jjj| jjj S r&   )r   r   r\   r]   r^   ÚpackedÚnetwork_addressÚnetmaskr   r
   r
   r   Ú_packedæ   s   ÿÿzIPAddress._packedr   c                 C  rU   )Nz<IPAddress(value=r2   r3   r   r
   r
   r   r4   ð   r5   zIPAddress.__repr__r6   r7   r8   c                 C  r9   r&   )r   rZ   r:   r   r;   r
   r
   r   r<   ó   r=   zIPAddress.__eq__r>   c                 C  r?   r&   r@   r   r
   r
   r   rB   ù   rC   zIPAddress.__hash__N)r   r[   r   r   )r   r[   ©r   ra   rE   rF   rG   )
r   r   r	   r$   r   r   re   r4   r<   rB   r
   r
   r
   r   rZ   Ï   s    




rZ   c                   @  sP   e Zd Zddd„Zedd	d
„ƒZeddd„ƒZddd„Zddd„Zddd„Z	dS )Ú	OtherNameÚtype_idr   r   ra   r   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    ra   Ú_type_idr!   )r   rh   r   r
   r
   r   r$   þ   s   


zOtherName.__init__c                 C  r%   r&   )ri   r   r
   r
   r   rh     r(   zOtherName.type_idc                 C  r%   r&   r'   r   r
   r
   r   r     r(   zOtherName.valuer   c                 C  s   d| j › d| j›d�S )Nz<OtherName(type_id=z, value=r2   )rh   r   r   r
   r
   r   r4     s   zOtherName.__repr__r6   r7   r8   c                 C  s&   t |tƒstS | j|jko| j|jkS r&   )r   rg   r:   rh   r   r;   r
   r
   r   r<     s   
zOtherName.__eq__r>   c                 C  s   t | j| jfƒS r&   )rA   rh   r   r   r
   r
   r   rB     s   zOtherName.__hash__N)rh   r   r   ra   r   r   rY   rf   rE   rF   rG   )
r   r   r	   r$   r   rh   r   r4   r<   rB   r
   r
   r
   r   rg   ý   s    
	

rg   )Ú
__future__r   r   r\   ÚtypingÚemail.utilsr   Úcryptography.x509.namer   Úcryptography.x509.oidr   ÚUnionr]   r^   r_   r`   r[   Ú	Exceptionr   ÚABCMetar   r   rJ   rP   rR   rX   rZ   rg   r
   r
   r
   r   Ú<module>   s.   ýÿ	-''.