a
    ŠxdM  ã                   @   s\   d Z ddlZddlmZ ddlZddlmZ ddlm	Z	m
Z
 dZddd	„Zeddd„ƒZdS )z1Utilities used by the message signing serializer.é    N)Úcontextmanager)Úhashes)ÚSecurityErrorÚreraise)Úget_digest_algorithmÚreraise_errorsÚsha256c                 C   s   | dusJ ‚t t|  ¡ ƒƒ S )z6Convert string to hash object of cryptography library.N)Úgetattrr   Úupper)Údigest© r   úM/var/www/html/Ranjet/env/lib/python3.9/site-packages/celery/security/utils.pyr      s    r   ú{0!r}c              
   c   sf   |du rt jfn|}z
dV  W nB |y` } z*ttt|  |¡ƒt ¡ d ƒ W Y d}~n
d}~0 0 dS )z8Context reraising crypto errors as :exc:`SecurityError`.Né   )ÚcryptographyÚ
exceptionsr   r   ÚformatÚsysÚexc_info)ÚmsgÚerrorsÚexcr   r   r   r      s    

þr   )r   )r   N)Ú__doc__r   Ú
contextlibr   Zcryptography.exceptionsr   Zcryptography.hazmat.primitivesr   Zcelery.exceptionsr   r   Ú__all__r   r   r   r   r   r   Ú<module>   s   
