Ë
    ³Œj7  ã                   ó€   — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ  G d„ de j                  «      Z
 G d„ de
«      Zy)é    N)Ú
exceptions)Ú
GetRequestÚGetResponsec                   ód   — e Zd Zej                  defd„«       Zej                  dedefd„«       Z	y)ÚWebAuthnHandlerÚreturnc                 ó   — t        d«      ‚)z0Check whether this WebAuthn handler is availablez'is_available method must be implemented©ÚNotImplementedError©Úselfs    úh/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/google/oauth2/webauthn_handler.pyÚis_availablezWebAuthnHandler.is_available   s   € ô "Ð"KÓLÐLó    Úget_requestc                 ó   — t        d«      ‚)zWebAuthn get (assertion)zget method must be implementedr
   )r   r   s     r   ÚgetzWebAuthnHandler.get   s   € ô "Ð"BÓCÐCr   N)
Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodÚboolr   r   r   r   © r   r   r   r   
   sP   „ Ø×ÑðM˜dò Mó ðMð 	×ÑðD˜zð D¨kò Dó ñDr   r   c                   óP   — e Zd ZdZdZdefd„Zdedefd„Z	de
de
de
fd	„Zde
fd
„Zy)ÚPluginHandlerañ  Offloads WebAuthn get request to a pluggable command-line tool.

    Offloads WebAuthn get to a plugin which takes the form of a
    command-line tool. The command-line tool is configurable via the
    PluginHandler._ENV_VAR environment variable.

    The WebAuthn plugin should implement the following interface:

    Communication occurs over stdin/stdout, and messages are both sent and
    received in the form:

    [4 bytes - payload size (little-endian)][variable bytes - json payload]
    ÚGOOGLE_AUTH_WEBAUTHN_PLUGINr   c                 óD   — 	 | j                  «        y# t        $ r Y yw xY w)NTF)Ú_find_pluginÚ	Exceptionr   s    r   r   zPluginHandler.is_available'   s,   € ð	Ø×ÑÔð øô ò 	Ùð	ús   ‚ “	žr   c                 ó�   — |j                  «       }| j                  «       }| j                  ||«      }t        j                  |«      S )N)Úto_jsonr   Ú_call_pluginr   Ú	from_json)r   r   Úrequest_jsonÚcmdÚresponse_jsons        r   r   zPluginHandler.get/   sA   € Ø"×*Ñ*Ó,ˆØ×ÑÓ!ˆØ×)Ñ)¨#¨|Ó<ˆÜ×$Ñ$ ]Ó3Ð3r   r&   Ú
input_jsonc                 óF  — t        |«      }t        j                  d|«      }||j                  «       z   }t	        j
                  |g|d¬«      }|j                  dk7  rÃ|j                  }t        |«      dk\  r0t        j                  d|d d «      d   t        |«      dz
  k(  r|dd  }dj                  ||j                  |j                  d¬«      j                  «       |j                  j                  d¬«      j                  «       «      }t        j                  |«      ‚|j                  d d }	t        j                  d|	«      d   }
|j                  dd  }|
t        |«      k7  r.t        j                  d	j                  |
t        |«      «      «      ‚|j                  «       S )
Nz<IT)ÚinputÚcapture_outputr   é   zDCommand '{}' returned non-zero exit status {}.
Stdout: {}
Stderr: {}Úreplace)Úerrorsz0Plugin response length {} does not match data {})ÚlenÚstructÚpackÚencodeÚ
subprocessÚrunÚ
returncodeÚstdoutÚunpackÚformatÚdecodeÚstripÚstderrr   ÚGoogleAuthErrorÚMalformedError)r   r&   r(   Úinput_lengthÚlength_bytes_leÚrequestÚprocess_resultÚstdout_bytesÚ	error_msgÚresponse_len_leÚresponse_lenÚresponses               r   r#   zPluginHandler._call_plugin5   s‰  € ä˜:“ˆÜ Ÿ+™+ d¨LÓ9ˆØ! J×$5Ñ$5Ó$7Ñ7ˆô $Ÿ™¨¨°WÈTÔRˆà×$Ñ$¨Ò)Ø)×0Ñ0ˆLä�LÓ! QÒ&Ü—M‘M $¨°R°aÐ(8Ó9¸!Ñ<ÄÀLÓ@QÐTUÑ@UÒUà+¨A¨BÐ/�à`×gÑgØØ×)Ñ)Ø×#Ñ#¨9Ð#Ó5×;Ñ;Ó=Ø×%Ñ%×,Ñ,°IÐ,Ó>×DÑDÓFó	ˆIô ×,Ñ,¨YÓ7Ð7ð )×/Ñ/°°Ð3ˆÜ—}‘} T¨?Ó;¸AÑ>ˆØ!×(Ñ(¨¨Ð,ˆØœ3˜x›=Ò(Ü×+Ñ+ØB×IÑIØ ¤# h£-óóð ð
 �‰Ó Ð r   c                 óÈ   — t         j                  j                  t        j                  «      }|€2t        j                  dj                  t        j                  «      «      ‚|S )Nz{} env var is not set)ÚosÚenvironr   r   Ú_ENV_VARr   ÚInvalidResourcer8   )r   Ú
plugin_cmds     r   r   zPluginHandler._find_plugin[   sO   € Ü—Z‘Z—^‘^¤M×$:Ñ$:Ó;ˆ
ØÐÜ×,Ñ,Ø'×.Ñ.¬}×/EÑ/EÓFóð ð Ðr   N)r   r   r   Ú__doc__rJ   r   r   r   r   r   Ústrr#   r   r   r   r   r   r      sT   „ ñð -€Hð˜dó ð4˜zð 4¨kó 4ð$! ð $!°ð $!¸ó $!ðL˜cô r   r   )r   rH   r0   r3   Úgoogle.authr   Úgoogle.oauth2.webauthn_typesr   r   ÚABCr   r   r   r   r   Ú<module>rR      s7   ðÛ 
Û 	Û Û å "ß @ô	D�c—g‘gô 	DôK�Oõ Kr   