
    kKj                         U d dl Zd dlmZ d dlmZmZ d dlmZm	Z	 ddl
mZ ddlmZ ddlmZ  G d	 d
e      Z ed      Z ed      ZeegZee   ed<   y)    N)InvalidSignature)Ed25519PublicKeyEd25519PrivateKey)Ed448PublicKeyEd448PrivateKey   )InvalidKeyCurveError)JWSAlgModel)OKPKeyc                   ~     e Zd ZdZdej
                  d   fdZdeddf fdZd	e	dede	fd
Z
d	e	de	dedefdZ xZS )EdDSAAlgorithmOKPcurve)Ed25519Ed448c                 6    || _         || _        d| d| _        y )NzEdDSA using the z parameter set)namer   description)selfr   s     k/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/joserfc/_rfc9864/jws_eddsa.py__init__zEdDSAAlgorithm.__init__   s!    	
-eWNC    keyreturnNc                     t         |   |       |j                  | j                  k7  r&t	        d| j
                   d| j                   d      y )Nz	Key for 'z' not supported, only 'z	' allowed)super	check_key
curve_namer   r	   r   )r   r   	__class__s     r   r   zEdDSAAlgorithm.check_key   sM    #>>TZZ'&499+=TUYU_U_T``i'jkk (r   msgc                     t        j                  t         j                  t        t        f   |j                  d            }|j                  |      S )Nsign)tcastUnionr   r   
get_op_keyr"   )r   r    r   op_keys       r   r"   zEdDSAAlgorithm.sign   s:     1? BCS^^TZE[\{{3r   sigc                     t        j                  t         j                  t        t        f   |j                  d            }	 |j                  ||       y# t        $ r Y yw xY w)NverifyTF)r#   r$   r%   r   r   r&   r*   r   )r   r    r(   r   r'   s        r   r*   zEdDSAAlgorithm.verify   sS     0. @A3>>RZC[\	MM#s# 		s   A 	A! A!)__name__
__module____qualname__key_typer#   Literalr   r   r   bytesr"   boolr*   __classcell__)r   s   @r   r   r   
   sq    HDaii(:; D
lV l l
   F  u  % e & T r   r   r   r   JWS_ALGORITHMS)typingr#   cryptography.exceptionsr   1cryptography.hazmat.primitives.asymmetric.ed25519r   r   /cryptography.hazmat.primitives.asymmetric.ed448r   r   errorsr	   _rfc7515.modelr
   _rfc8037.okp_keyr   r   r   r   r3   list__annotations__ r   r   <module>r>      sP     4 a [ ) ( %[ 4 
#w(/'7^$ 7r   