o
    ÿÑÐb«  ã                   @   sT   d dl mZ d dlmZmZ d dlmZmZ ddlm	Z	 G dd„ deƒZ
dd	„ Zd
S )é    )ÚInvalidSignature)ÚEd25519PublicKeyÚEd25519PrivateKey)ÚJWSAlgorithmÚJsonWebSignatureé   )ÚOKPKeyc                   @   s4   e Zd ZdZdZeZeZdd„ Z	dd„ Z
dd„ Zd	S )
ÚEdDSAAlgorithmZEdDSAz1Edwards-curve Digital Signature Algorithm for JWSc                 C   s
   t  |¡S ©N)r   Z
import_key)ÚselfÚraw_data© r   úe/var/www/secure340b-portal/env/lib/python3.10/site-packages/authlib/jose/rfc8037/_jws_cryptography.pyÚprepare_key   s   
zEdDSAAlgorithm.prepare_keyc                 C   s   |  d¡}| |¡S )NÚsign)Ú
get_op_keyr   )r   ÚmsgÚkeyÚop_keyr   r   r   r      s   

zEdDSAAlgorithm.signc                 C   s2   |  d¡}z	| ||¡ W dS  ty   Y dS w )NÚverifyTF)r   r   r   )r   r   Úsigr   r   r   r   r   r      s   
ÿzEdDSAAlgorithm.verifyN)Ú__name__Ú
__module__Ú__qualname__ÚnameÚdescriptionr   Zprivate_key_clsr   Zpublic_key_clsr   r   r   r   r   r   r   r	   	   s    r	   c                   C   s   t  tƒ ¡ d S r
   )r   Zregister_algorithmr	   r   r   r   r   Úregister_jws_rfc8037   s   r   N)Zcryptography.exceptionsr   Z1cryptography.hazmat.primitives.asymmetric.ed25519r   r   Zauthlib.jose.rfc7515r   r   Zokp_keyr   r	   r   r   r   r   r   Ú<module>   s    