
    wg\j                          " S  S5      r  " S S\5      r " S S\5      r " S S5      r " S S	5      r " S
 S5      rg)c                   $    \ rS rSrSS jrS rSrg)
BasePlugin   Nc                     Xl         g Nsourceselfsrcs     R/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/websockify/auth_plugins.py__init__BasePlugin.__init__   s        c                     g r    r
   headerstarget_hosttarget_ports       r   authenticateBasePlugin.authenticate   s    r   r   r   __name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r      s    r   r   c                   4   ^  \ rS rSrSS0 S4U 4S jjrSrU =r$ )AuthenticationError	   N  c                 t   > X l         X0l        X@l        Uc  Un[        TU ]  U R                   < SU< 35        g )N )coder   msgsuperr   )r
   log_msgresponse_coderesponse_headersresponse_msg	__class__s        r   r   AuthenticationError.__init__
   s2    !	'?"GDIIw78r   )r$   r   r%   r   r   r   r   r   r   __classcell__r+   s   @r   r   r   	   s    #3Z^ 9 9r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )InvalidOriginError   c                 L   > Xl         X l        [        TU ]  SSU< SU< S3S9  g )NzInvalid Originz'Invalid Origin Header: Expected one of z, got '')r*   r'   )expected_originactual_originr&   r   )r
   expectedactualr+   s      r   r   InvalidOriginError.__init__   s.    '#)&.8 	 	9r   )r6   r5   r-   r/   s   @r   r1   r1      s    9 9r   r1   c                   :    \ rS rSrSrS
S jrS rS rS rS r	S	r
g)BasicHTTPAuth    z=Verifies Basic Auth headers. Specify src as username:passwordNc                     Xl         g r   r   r	   s     r   r   BasicHTTPAuth.__init__#   s    r   c                 $   SS K nUR                  S5      nU(       a  UR                  S5      (       d  U R                  5          UR	                  USS  5      n WR                  S5      nWR                  SS5      n[        U5      S:w  a  U R                  5         U R                  " U6 (       d  U R                  5         g g U R                  5         g ! [
         a    U R                  5          Nf = f! [         a    U R                  5          Nf = f)	N    AuthorizationzBasic    z
ISO-8859-1:r      )base64get
startswith
auth_error	b64decode	TypeErrordecodeUnicodeDecodeErrorsplitlenvalidate_credsdemand_auth)	r
   r   r   r   rF   auth_headeruser_pass_rawuser_pass_as_text	user_passs	            r   r   BasicHTTPAuth.authenticate&   s    kk/2))(33!" & 0 0QR A"$1$8$8$F! *//Q7I9~"!&&	2  " 3 #  "!" & "!"s$   C C2 C/.C/2DDc                 4    U< SU< 3U R                   :X  a  gg)NrD   TFr>   )r
   usernamepasswords      r   rP   BasicHTTPAuth.validate_credsB   s    )TXX5r   c                     [        SS9e)Nr!   r(   r   r
   s    r   rI   BasicHTTPAuth.auth_errorH   s    !44r   c                     [        SSS0S9e)Ni  zWWW-AuthenticatezBasic realm="Websockify")r(   r)   r]   r^   s    r   rQ   BasicHTTPAuth.demand_authK   s    !4FHb3ce 	er   r>   r   )r   r   r   r   __doc__r   r   rP   rI   rQ   r   r   r   r   r;   r;       s    G85er   r;   c                   $    \ rS rSrSS jrS rSrg)ExpectOriginO   Nc                 D    Uc  / U l         g UR                  5       U l         g r   r   rN   r	   s     r   r   ExpectOrigin.__init__P       ;DK))+DKr   c                 t    UR                  SS 5      nUb  X@R                  ;  a  [        U R                  US9eg )NOrigin)r7   r8   )rG   r   r1   )r
   r   r   r   origins        r   r   ExpectOrigin.authenticateV   s6    Xt,>V;;6$dkk&II 7r   r   r   r   r   r   r   rd   rd   O   s    &Jr   rd   c                   (    \ rS rSrSrSS jrS rSrg)ClientCertCNAuth[   z]Verifies client by SSL certificate. Specify src as whitespace separated list of common names.Nc                 D    Uc  / U l         g UR                  5       U l         g r   rg   r	   s     r   r   ClientCertCNAuth.__init__^   ri   r   c                 V    UR                  SS 5      U R                  ;  a	  [        SS9eg )NSSL_CLIENT_S_DN_CNr!   r\   )rG   r   r   r   s       r   r   ClientCertCNAuth.authenticated   s+    ;;+T2$++E%C88 Fr   r   r   )r   r   r   r   rb   r   r   r   r   r   r   ro   ro   [   s    g&9r   ro   N)r   	Exceptionr   r1   r;   rd   ro   r   r   r   <module>rw      sK    	9) 	99, 9-e -e^
J 
J9 9r   