o
     `                     @   s  d dl mZmZmZ d dlZd dlZd dlZd dlZd dlZG dd de	Z
e
Ze
Zdd Zdd Zd	d
 Zdd Zdd ZeedrGejZnd$ddZeedrWd%ddZnd%ddZG dd deZeedrmejZnejZdd ZG dd deZG dd deZd d! Zd"d# Z dS )&    )absolute_importdivisionprint_functionNc                   @      e Zd ZdS )CryptographyDeprecationWarningN__name__
__module____qualname__ r   r   hhome/ych/rk3568/buildroot/output/rockchip_rk3568/host/lib/python3.10/site-packages/cryptography/utils.pyr          r   c                 C   s   t |tstd| d S )Nz{} must be bytes)
isinstancebytes	TypeErrorformatnamevaluer   r   r   _check_bytes   s   
r   c                 C   s,   zt | W d S  ty   td| w )Nz{} must be bytes-like)
memoryviewr   r   r   r   r   r   _check_byteslike    s
   r   c                    s   t  fddS )Nc                    s
   t |  S N)getattrselfr   r   r   <lambda>(   s   
 z$read_only_property.<locals>.<lambda>)propertyr   r   r   r   read_only_property'      r   c                    s    fdd}|S )Nc                    s   t  |   |  | S r   verify_interfaceregisterklassifacer   r   register_decorator,   s   

z.register_interface.<locals>.register_decoratorr   )r'   r(   r   r&   r   register_interface+   s   r)   c                    s    fdd}|S )Nc                    s   rt  |   |  | S r   r!   r$   r'   	predicater   r   r(   5   s   

z1register_interface_if.<locals>.register_decoratorr   )r+   r'   r(   r   r*   r   register_interface_if4   s   r,   
from_bytesFc                 C   s$   |dksJ |r
J t t| dS )Nbig   )intbinasciihexlify)data	byteordersignedr   r   r   int_from_bytesB   s   r6   to_bytesc                 C   s    |  |p|  d d pddS )N         r.   )r7   
bit_length)integerlengthr   r   r   int_to_bytesK   s   r>   c                 C   s:   d|  }|d u rt |}n|d }t|||d@  S )Nz%x   r:   )lenr1   	unhexlifyzfill)r<   r=   Z
hex_stringnr   r   r   r>   S   s
   
c                   @   r   )InterfaceNotImplementedNr   r   r   r   r   rD   \   r   rD   	signaturec                 C   sv   | j D ]5}t||std||tt| |tjrqtt| |}tt||}||kr8td||||qd S )Nz{} is missing a {!r} methodzK{}.{}'s signature differs from the expected. Expected: {!r}. Received: {!r})	__abstractmethods__hasattrrD   r   r   r   abcabstractpropertyrE   )r'   r%   methodsigZactualr   r   r   r"   f   s    


r"   c                   @   s   e Zd Zdd ZdS )_DeprecatedValuec                 C   s   || _ || _|| _d S r   )r   messagewarning_class)r   r   rM   rN   r   r   r   __init__y   s   
z_DeprecatedValue.__init__N)r   r	   r
   rO   r   r   r   r   rL   x   s    rL   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )_ModuleWithDeprecationsc                 C   s   || j d< d S N_module)__dict__)r   moduler   r   r   rO      s   z _ModuleWithDeprecations.__init__c                 C   s4   t | j|}t|trtj|j|jdd |j}|S Nr?   )
stacklevel)	r   rR   r   rL   warningswarnrM   rN   r   r   attrobjr   r   r   __getattr__   s
   
z#_ModuleWithDeprecations.__getattr__c                 C   s   t | j|| d S r   )setattrrR   )r   rZ   r   r   r   r   __setattr__   s   z#_ModuleWithDeprecations.__setattr__c                 C   s:   t | j|}t|trtj|j|jdd t| j| d S rU   )	r   rR   r   rL   rW   rX   rM   rN   delattrrY   r   r   r   __delattr__   s   
z#_ModuleWithDeprecations.__delattr__c                 C   s   dgt | j S rQ   )dirrR   r   r   r   r   __dir__   r    z_ModuleWithDeprecations.__dir__N)r   r	   r
   rO   r\   r^   r`   rb   r   r   r   r   rP      s    rP   c                 C   s.   t j| }t|tst|t j|< t| ||S r   )sysmodulesr   rP   rL   )r   module_namerM   rN   rT   r   r   r   
deprecated   s   

rf   c                    s(   d  t  fdd}t|S )Nz
_cached_{}c                    s0   t |  }|ur|S | }t|  | |S r   )r   r]   )instancecacheresultZcached_namefuncsentinelr   r   inner   s   zcached_property.<locals>.inner)r   objectr   )rk   rm   r   rj   r   cached_property   s   
ro   )Fr   )!
__future__r   r   r   rH   r1   inspectrc   rW   UserWarningr   ZPersistentlyDeprecated2017ZPersistentlyDeprecated2019r   r   r   r)   r,   rG   r0   r-   r6   r>   	ExceptionrD   rE   
getargspecr"   rn   rL   rP   rf   ro   r   r   r   r   <module>   s:   	




	
