
    #	h8                        S SK r S SKrS SKrS SKJrJr   S SKJr  S SKJ	r	J
r
  S\\\4   S\4S jrS\\\4   S\4S	 jrS\S\4S
 jrSS.S\S\\   S\4S jjrS\\\4   S\4S jrS\S\S\4S jrS\S\4S jrSS.S\S\\   S\4S jjrS\SSS\4S jrS\SSS\4S jr1 Skr\R4                  " SSR7                  \5      -   S-   \R8                  5      rS \S\4S! jrS"r S \S\4S# jr!g! \ a     Nf = f)$    N)OptionalUnion)EllipticCurve)decode_dss_signatureencode_dss_signaturevaluereturnc                     [        U [        5      (       a  U R                  S5      $ [        U [        5      (       a  U $ [	        S5      e)Nzutf-8zExpected a string value)
isinstancestrencodebytes	TypeError)r   s    ;/var/www/html/env/lib/python3.13/site-packages/jwt/utils.pyforce_bytesr      s<    %||G$$	E5	!	!122    inputc                     [        U 5      n[        U5      S-  nUS:  a  USSU-
  -  -  n[        R                  " U5      $ )N   r      =)r   lenbase64urlsafe_b64decode)r   input_bytesrems      r   base64url_decoder      sF    e$K
k
Q
C
Qwtq3w''##K00r   c                 N    [         R                  " U 5      R                  SS5      $ )Nr   r   )r   urlsafe_b64encodereplace)r   s    r   base64url_encoder    $   s     ##E*224==r   
bit_lengthvalr"   c                n    U S:  a  [        S5      e[        XS9n[        U5      S:X  a  Sn[        U5      $ )Nr   zMust be a positive integerr!       )
ValueErrorbytes_from_intr   r    )r#   r"   	int_bytess      r   to_base64url_uintr)   (   s;    
Qw566s:I
9~	I&&r   c                 R    [        [        U 5      5      n[        R                  USS9$ )Nbig)	byteorder)r   r   int
from_bytes)r#   datas     r   from_base64url_uintr0   4   s$    K,-D>>$%>00r   num	num_bytesc                 `    SSU-  U 4-  n[         R                  " UR                  S5      5      $ )Nz%0*x   ascii)binasciia2b_hexr   )r1   r2   
padded_hexs      r   number_to_bytesr9   9   s1    1y=#..JJ--g677r   stringc                 B    [        [        R                  " U 5      S5      $ )N   )r-   r6   b2a_hex)r:   s    r   bytes_to_numberr>   >   s    x',,r   c                Z    Uc  U R                  5       nUS-   S-  nU R                  USSS9$ )N      r+   F)signed)r"   to_bytes)r#   r"   byte_lengths      r   r'   r'   B   s7    ^^%
>a'K<<U5<99r   der_sigcurver   c                 r    UR                   nUS-   S-  n[        U 5      u  pE[        XC5      [        XS5      -   $ )Nr@   rA   )key_sizer   r9   )rE   rF   num_bitsr2   rss         r   der_to_raw_signaturerL   J   s:    ~~HA!#I(DA1(?1+HHHr   raw_sigc                     UR                   nUS-   S-  n[        U 5      SU-  :w  a  [        S5      e[        U S U 5      n[        XS  5      n[	        [        XE5      5      $ )Nr@   rA   r4   zInvalid signature)rH   r   r&   r>   r   r   )rM   rF   rI   r2   rJ   rK   s         r   raw_to_der_signaturerO   S   sf    ~~HA!#I
7|q9}$,--
+,A
+,A%a+,,r   >      X509 CRL
   PUBLIC KEY   CERTIFICATE   PRIVATE KEY   DH PARAMETERS   EC PRIVATE KEY   RSA PUBLIC KEY   DSA PRIVATE KEY   RSA PRIVATE KEY   SSH2 PUBLIC KEY   CERTIFICATE REQUEST   OPENSSH PRIVATE KEY   TRUSTED CERTIFICATE   ENCRYPTED PRIVATE KEY   NEW CERTIFICATE REQUEST   SSH2 ENCRYPTED PRIVATE KEYs   ----[- ]BEGIN (   |s,   )[- ]----?
.+??
----[- ]END \1[- ]----?
?keyc                 >    [        [        R                  U 5      5      $ N)bool_PEM_REsearchra   s    r   is_pem_formatrh   ~   s    s#$$r   )s   ssh-ed25519s   ssh-rsas   ssh-dsss   ecdsa-sha2-nistp256s   ecdsa-sha2-nistp384s   ecdsa-sha2-nistp521c                 ,    U R                  [        5      $ rc   )
startswith_SSH_KEY_FORMATSrg   s    r   
is_ssh_keyrl      s    >>*++r   )"r   r6   retypingr   r   ,cryptography.hazmat.primitives.asymmetric.ecr   /cryptography.hazmat.primitives.asymmetric.utilsr   r   ModuleNotFoundErrorr   r   r   r   r    r-   r)   r0   r9   r>   r'   rL   rO   _PEMScompilejoinDOTALLre   rd   rh   rk   rl    r   r   <module>rw      s     	 "	J3uUCZ( 3U 31E%*- 1% 1>E >e > @D 	'3 	'x} 	' 	'1U5#:. 13 1
8 8 8 8
-E -c - =A : :HSM :U :I% I IE I
-% 
- 
-E 
-	& **
ii!!
 II%u % %
 ,E ,d ,C  		s   C0 0C98C9