Ë
    ùmxi·
  ã                   ó€   — 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    úU/home/htdocs/ttos/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                 ó¤  — t        |«      }t        j                  d|«      }||j                  «       z   }t	        j
                  |g|dd¬«      }|j                  d d }t        j                  d|«      d   }|j                  dd  }	|t        |	«      k7  r.t        j                  dj                  |t        |	«      «      «      ‚|	j                  «       S )Nz<IT)ÚinputÚcapture_outputÚchecké   r   z0Plugin response length {} does not match data {})ÚlenÚstructÚpackÚencodeÚ
subprocessÚrunÚstdoutÚunpackr   ÚMalformedErrorÚformatÚdecode)
r   r&   r(   Úinput_lengthÚlength_bytes_leÚrequestÚprocess_resultÚresponse_len_leÚresponse_lenÚresponses
             r   r#   zPluginHandler._call_plugin5   sÉ   € ä˜:“ˆÜ Ÿ+™+ d¨LÓ9ˆØ! J×$5Ñ$5Ó$7Ñ7ˆô $Ÿ™ØˆE˜°¸Tô
ˆð
 )×/Ñ/°°Ð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   ÚInvalidResourcer7   )r   Ú
plugin_cmds     r   r   zPluginHandler._find_pluginL   sO   € Ü—Z‘Z—^‘^¤M×$:Ñ$:Ó;ˆ
ØÐÜ×,Ñ,Ø'×.Ñ.¬}×/EÑ/EÓFóð ð Ðr   N)r   r   r   Ú__doc__rC   r   r   r   r   r   Ústrr#   r   r   r   r   r   r      sS   „ ñð -€Hð˜dó ð4˜zð 4¨kó 4ð! ð !°ð !¸ó !ð.˜cô r   r   )r   rA   r/   r2   Úgoogle.authr   Úgoogle.oauth2.webauthn_typesr   r   ÚABCr   r   r   r   r   ú<module>rK      s5   ðÛ 
Û 	Û Û å "ß @ô	D�c—g‘gô 	Dô<�Oõ <r   