+
    Ai0                     v    ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHtHt R t ! R R]4      tR# )	    N)Key)
ALGORITHMS)JWKError)base64url_decodebase64url_encodeis_pem_format
is_ssh_keyc                 @    \        \        P                  ! V 4      4      # N)bytesosurandom)	num_bytess   &R/var/www/html/photoedit/myenv/lib/python3.14/site-packages/jose/backends/native.pyget_random_bytesr      s    I&''    c                      a  ] tR t^t o Rt]P                  ]P                  ]P                  ]P                  ]P                  ]P                  /tR tR tR tR tR tRtV tR# )	HMACKeyzZ
Performs signing and verification operations using HMAC
and the specified hash function.
c                   V\         P                  9  d   \        R V,          4      hW n        V P                  P                  V4      V n        \        V\        4      '       d   V P                  V4      V n
        R# \        V\        4      '       g"   \        V\        4      '       g   \        R4      h\        V\        4      '       d   VP                  R4      p\        V4      '       g   \        V4      '       d   \        R4      hWn
        R# )z*hash_alg: %s is not a valid hash algorithmNz+Expecting a string- or bytes-formatted key.utf-8zdThe specified key is an asymmetric key or x509 certificate and should not be used as an HMAC secret.)r   HMACr   
_algorithmHASHESget	_hash_alg
isinstancedict_process_jwkprepared_keystrr   encoder   r	   )selfkey	algorithms   &&&r   __init__HMACKey.__init__   s    JOO+G)STT#3c4   $ 1 1# 6D#s##JsE,B,BHIIc3**W%CC9 
  r   c                    VP                  R 4      R8X  g"   \        RVP                  R 4      ,          4      hVP                  R4      pVP                  R4      p\        V4      p\	        V4      pV# )ktyoctz1Incorrect key type. Expected: 'oct', Received: %skr   )r   r   r!   r   r   )r"   jwk_dictr*   s   && r   r   HMACKey._process_jwk/   se    ||E"e+NQYQ]Q]^cQddeeLLHHW!HQr   c                t    \         P                  ! V P                  WP                  4      P	                  4       # r   )hmacnewr   r   digest)r"   msgs   &&r   signHMACKey.sign:   s&    xx))3?FFHHr   c                L    \         P                  ! W P                  V4      4      # r   )r.   compare_digestr2   )r"   r1   sigs   &&&r   verifyHMACKey.verify=   s    ""3		#77r   c                j    R V P                   RRR\        V P                  4      P                  R4      /# )algr(   r)   r*   ASCII)r   r   r   decode)r"   s   &r   to_dictHMACKey.to_dict@   s6    4??5!$"3"34;;GD
 	
r   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   HS256hashlibsha256HS384sha384HS512sha512r   r%   r   r2   r7   r=   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s_     
 
0@0@'..R\RbRbdkdrdrsF 0	I8
 
r   r   )rE   r.   r   jose.backends.baser   jose.constantsr   jose.exceptionsr   
jose.utilsr   r   r   r	   r   r    r   r   <module>rS      s.      	 " % $ T T(6
c 6
r   