o
     `                  
   @   sZ  d dl mZmZmZ d dlZd dlZd dlmZ d dlZd dl	m
Z
 d dlmZ d dlmZ ddd	d
dddddd	ZG dd deZeejG dd deZe
eG dd deZe
eG dd deZe
eG dd deZe
eG dd deZe
eG dd deZe
eG dd  d eZe
eG d!d" d"eZdS )#    )absolute_importdivisionprint_functionN)	parseaddr)utils)Name)ObjectIdentifierZ	otherNameZ
rfc822NameZdNSNameZx400AddressZdirectoryNameZediPartyNameZuniformResourceIdentifierZ	iPAddressZregisteredID)	r                           c                       s   e Zd Z fddZ  ZS )UnsupportedGeneralNameTypec                    s   t t| | || _d S N)superr   __init__type)selfmsgr   	__class__ thome/ych/rk3568/buildroot/output/rockchip_rk3568/host/lib/python3.10/site-packages/cryptography/x509/general_name.pyr       s   
z#UnsupportedGeneralNameType.__init__)__name__
__module____qualname__r   __classcell__r   r   r   r   r      s    r   c                   @   s   e Zd Zejdd ZdS )GeneralNamec                 C   s   dS )z0
        Return the value of the object
        Nr   r   r   r   r   value'   s    zGeneralName.valueN)r   r   r   abcabstractpropertyr"   r   r   r   r   r    %   s    r    c                   @   J   e Zd Zdd ZedZedd Zdd Z	dd	 Z
d
d Zdd ZdS )
RFC822Namec                 C   s`   t |tjrz|d W n ty   td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six	text_typeencodeUnicodeEncodeError
ValueError	TypeErrorr   _value)r   r"   nameaddressr   r   r   r   0   s   
zRFC822Name.__init__r0   c                 C      |  | }||_|S r   __new__r0   clsr"   instancer   r   r   _init_without_validationG      
z#RFC822Name._init_without_validationc                 C      d | jS )Nz<RFC822Name(value={0!r})>formatr"   r!   r   r   r   __repr__M      zRFC822Name.__repr__c                 C      t |tstS | j|jkS r   )r)   r&   NotImplementedr"   r   otherr   r   r   __eq__P      
zRFC822Name.__eq__c                 C   
   | |k S r   r   rB   r   r   r   __ne__V      
zRFC822Name.__ne__c                 C   
   t | jS r   hashr"   r!   r   r   r   __hash__Y   rH   zRFC822Name.__hash__Nr   r   r   r   r   read_only_propertyr"   classmethodr9   r>   rD   rG   rL   r   r   r   r   r&   .   s    

r&   c                   @   r%   )DNSNamec                 C   D   t |tj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/   r0   r   r"   r   r   r   r   _      
zDNSName.__init__r0   c                 C   r3   r   r4   r6   r   r   r   r9   p   r:   z DNSName._init_without_validationc                 C   r;   )Nz<DNSName(value={0!r})>r<   r!   r   r   r   r>   v   r?   zDNSName.__repr__c                 C   r@   r   )r)   rP   rA   r"   rB   r   r   r   rD   y   rE   zDNSName.__eq__c                 C   rF   r   r   rB   r   r   r   rG      rH   zDNSName.__ne__c                 C   rI   r   rJ   r!   r   r   r   rL      rH   zDNSName.__hash__NrM   r   r   r   r   rP   ]       

rP   c                   @   r%   )UniformResourceIdentifierc                 C   rQ   )Nr'   zzURI values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.r(   rR   rS   r   r   r   r      rT   z"UniformResourceIdentifier.__init__r0   c                 C   r3   r   r4   r6   r   r   r   r9      r:   z2UniformResourceIdentifier._init_without_validationc                 C   r;   )Nz(<UniformResourceIdentifier(value={0!r})>r<   r!   r   r   r   r>      r?   z"UniformResourceIdentifier.__repr__c                 C   r@   r   )r)   rV   rA   r"   rB   r   r   r   rD      rE   z UniformResourceIdentifier.__eq__c                 C   rF   r   r   rB   r   r   r   rG      rH   z UniformResourceIdentifier.__ne__c                 C   rI   r   rJ   r!   r   r   r   rL      rH   z"UniformResourceIdentifier.__hash__NrM   r   r   r   r   rV      rU   rV   c                   @   >   e Zd Zdd ZedZdd Zdd Zdd	 Z	d
d Z
dS )DirectoryNamec                 C      t |ts	td|| _d S )Nzvalue must be a Name)r)   r   r/   r0   rS   r   r   r   r         

zDirectoryName.__init__r0   c                 C   r;   )Nz<DirectoryName(value={})>r<   r!   r   r   r   r>      r?   zDirectoryName.__repr__c                 C   r@   r   )r)   rX   rA   r"   rB   r   r   r   rD      rE   zDirectoryName.__eq__c                 C   rF   r   r   rB   r   r   r   rG      rH   zDirectoryName.__ne__c                 C   rI   r   rJ   r!   r   r   r   rL      rH   zDirectoryName.__hash__Nr   r   r   r   r   rN   r"   r>   rD   rG   rL   r   r   r   r   rX          
rX   c                   @   rW   )RegisteredIDc                 C   rY   )Nz!value must be an ObjectIdentifier)r)   r   r/   r0   rS   r   r   r   r      rZ   zRegisteredID.__init__r0   c                 C   r;   )Nz<RegisteredID(value={})>r<   r!   r   r   r   r>      r?   zRegisteredID.__repr__c                 C   r@   r   )r)   r]   rA   r"   rB   r   r   r   rD      rE   zRegisteredID.__eq__c                 C   rF   r   r   rB   r   r   r   rG      rH   zRegisteredID.__ne__c                 C   rI   r   rJ   r!   r   r   r   rL      rH   zRegisteredID.__hash__Nr[   r   r   r   r   r]      r\   r]   c                   @   rW   )	IPAddressc                 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)   	ipaddressZIPv4AddressZIPv6AddressZIPv4NetworkZIPv6Networkr/   r0   rS   r   r   r   r      s   	
zIPAddress.__init__r0   c                 C   r;   )Nz<IPAddress(value={})>r<   r!   r   r   r   r>      r?   zIPAddress.__repr__c                 C   r@   r   )r)   r^   rA   r"   rB   r   r   r   rD      rE   zIPAddress.__eq__c                 C   rF   r   r   rB   r   r   r   rG     rH   zIPAddress.__ne__c                 C   rI   r   rJ   r!   r   r   r   rL     rH   zIPAddress.__hash__Nr[   r   r   r   r   r^      s    
r^   c                   @   sH   e Zd Zdd ZedZedZdd Zdd Z	d	d
 Z
dd ZdS )	OtherNamec                 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/   bytes_type_idr0   )r   type_idr"   r   r   r   r     s   


zOtherName.__init__rb   r0   c                 C   s   d | j| jS )Nz#<OtherName(type_id={}, value={!r})>)r=   rc   r"   r!   r   r   r   r>     s   zOtherName.__repr__c                 C   s&   t |tstS | j|jko| j|jkS r   )r)   r`   rA   rc   r"   rB   r   r   r   rD     s   
zOtherName.__eq__c                 C   rF   r   r   rB   r   r   r   rG   "  rH   zOtherName.__ne__c                 C   s   t | j| jfS r   )rK   rc   r"   r!   r   r   r   rL   %  s   zOtherName.__hash__N)r   r   r   r   r   rN   rc   r"   r>   rD   rG   rL   r   r   r   r   r`   	  s    
	
r`   )
__future__r   r   r   r#   r_   email.utilsr   r*   cryptographyr   Zcryptography.x509.namer   Zcryptography.x509.oidr   Z_GENERAL_NAMES	Exceptionr   Zadd_metaclassABCMetaobjectr    Zregister_interfacer&   rP   rV   rX   r]   r^   r`   r   r   r   r   <module>   sF   
.((%