+
    O×iL!  ã                   óü   € ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHtHt ^ RI	H
t
 ^RIHtHtHtHt ^RIHtHt ^RIHtHt ]P,                  ! ]4      t ! R R]
P2                  4      t ! R	 R
]4      t ! R R]4      tR# )é    N)ÚDictÚListÚOptionalÚTuple)Úferny)Ú
JsonObjectÚ	JsonValueÚget_strÚget_str_or_none)ÚPeerÚ	PeerError)ÚRouterÚRoutingRulec                   ó†   a € ] tR t^t o ]P
                  ! R4      tV 3R lR ltV 3R lR ltV 3R lR lt	V 3R lt
R	tV tR
# )ÚPasswordResponderz!Enter passphrase for key '(.*)': c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )é   Úpassword)r   Ústr)ÚformatÚ__classdict__s   "€Ú0/usr/lib/python3/dist-packages/cockpit/remote.pyÚ__annotate__ÚPasswordResponder.__annotate__   s   ø€ ÷ #ñ #¡©#¥ñ #ó    c                ó<   € Wn         . V n        R V n        ^ V n        R # ©N)r   Úhostkeys_seenÚerror_messageÚpassword_attempts)Úselfr   s   &&r   Ú__init__ÚPasswordResponder.__init__   s   € Ø ŒàˆÔØ!ˆÔØ!"ˆÖr   c                ó>   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[ RS[/# )r   ÚreasonÚhostÚ	algorithmÚkeyÚfingerprintÚreturn)r   Úbool)r   r   s   "€r   r   r   %   s9   ø€ ÷ ñ ¡sð ±#ð Á#ð ÉCð Ñ^að Ñfjñ r   c              ƒ  óJ   "  € V P                   P                  WW4V34       R # 5i)F)r   Úappend)r!   r%   r&   r'   r(   r)   s   &&&&&&r   Ú
do_hostkeyÚPasswordResponder.do_hostkey%   s#   é € Ø×Ñ×!Ñ! 6°ÀÐ"MÔNÙùs   ‚!#c          	      óB   <€ V ^8„  d   QhRS[ RS[ RS[ RS[S[ ,          /# )r   ÚmessagesÚpromptÚhintr*   )r   r   )r   r   s   "€r   r   r   )   s.   ø€ ÷ ñ ©ð ±cð Áð ÉÑRUÍñ r   c              ƒ  ór  "  € \         P                  R W24       \        P                  P	                  V4      pVe4   VP                  ^4      p\         P                  RV4       RV 2V n        R# V P                  f   Q hV P                  ^ 8X  g   Q hV ;P                  ^,          un        V P                  # 5i)zGot askpass(%s): %sNzCThis is a passphrase request for %s, but we don't do those.  Abort.zlocked identity: )	ÚloggerÚdebugr   ÚPASSPHRASE_REÚ	fullmatchÚgroupr   r   r    )r!   r1   r2   r3   ÚmatchÚpaths   &&&&  r   Ú
do_askpassÚPasswordResponder.do_askpass)   s    é € Ü�‰Ð*¨DÔ9ä!×/Ñ/×9Ñ9¸&ÓAˆØÒð —;‘;˜q“>ˆDÜ�L‰LÐ^Ð`dÔeØ#4°T°FÐ!;ˆDÔÙà�}‰}Ò(Ð(Ð(Ø×%Ñ%¨Ô*Ð*Ð*Ø×Ò !Õ#ÕØ�}‰}Ðùs   ‚B5B7c                óœ   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[S[S[S[S[S[S[3,          ,          ;R&   S[ S[,          ;R&   S[;R&   # )r   r   r   r   r    )r   r   r   r   Úint)r   r   s   "€r   r   r      sV   ø‡ ‚ ñ ‘s�mÑñ ñ
 ™™c¡3©©S±#Ð5Õ6Õ7Ñ7ñ ñ ™C•=Ñ ñ ñ Ñò r   )r   r   r   r    N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚreÚcompiler7   r"   r.   r<   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s9   ø‡ € Ø—J’JÐCÓD€M÷#ð #÷ð ÷ð ÷) ƒ r   r   c                   óœ   a a€ ] tR t^<t oRtV3R lR ltV3R lV 3R lltV3R lR ltV3R lR	 ltV3R
 lV 3R llt	V3R lt
RtVtV ;t# )ÚSshPeerNc                ó   <€ V ^8„  d   QhRR/# ©r   r*   N© )r   r   s   "€r   r   ÚSshPeer.__annotate__C   s   ø€ ÷ E#ñ E#¨Dñ E#r   c           
   ƒ  óæ  "  € V P                   f   Q h\        P                  RV P                  V P                  V P
                  4       V P                  P                  R4      w  rpV'       d%   VP                  4       '       d   Tp\        V4      pMV P                  pR p\        V P                  4      pRR/pV P                  e   VP                  RR7       MVP                  RRR7        V P                   P                  W@P                  VV P
                  VVR	7      G R j  x€L
  T P                   P?                  R.4      pT PA                  T. 4      G R j  x€L
  R #  L<  \        \        P                  3 d4   p\        P                  R
YH4       \!        RR\#        T4      R7      ThR p?i\$        P&                   d¿   pTP(                  '       d'   TP(                  ^ ,          w  r”r«pRT RT
 RT 2RT/pM/ p\+        T\$        P,                  4      '       d   RpMT P
                  '       d   RpMRp\        P                  R\/        T4      Y€P
                  TP(                  Yí4       \!        YíT/ R7      ThR p?i\$        P0                   d�   p\        P                  RYH4       \2        P5                  TP6                  R4      pRT9   d+   T P                  e   TP8                  ^ 8X  d   RTR&   MRTR&   \!        RTP:                  ;'       g    RTR7      ThR p?i\$        P<                   d3   p\        P                  RYH4       \!        R\#        T4      R7      ThR p?ii ; i EL5i)Nz1Starting ssh session user=%s, host=%s, private=%sÚ:ÚStrictHostKeyCheckingÚyesÚ1)ÚNumberOfPasswordPromptsÚno)ÚPasswordAuthenticationÚKbdInteractiveAuthentication)Ú
login_nameÚportÚhandle_host_keyÚoptionsÚinteraction_responderz connecting to host %s failed: %szno-host)ÚerrorÚmessagezhost-keyÚ zhost-fingerprintzinvalid-hostkeyzunknown-hostkeyzunknown-hostzPSshPeer got a %s %s; private %s, seen hostkeys %r; raising %s with extra args %r)r]   Úauth_method_resultsz$authentication to host %s failed: %sznot-providedr   z	not-triedÚdeniedzauthentication-failedz)unknown failure connecting to host %s: %szinternal-error)r^   zcockpit-bridge)!Úsessionr5   r6   Úuserr&   ÚprivateÚ
rpartitionÚisdigitr?   r   r   ÚupdateÚconnectÚOSErrorÚsocketÚgaierrorr   r   r   ÚSshHostKeyErrorr   Ú
isinstanceÚSshChangedHostKeyErrorÚtypeÚSshAuthenticationErrorÚdictÚfromkeysÚmethodsr    r   ÚSshErrorÚwrap_subprocess_argsÚspawn)r!   ÚbasenameÚcolonÚportstrr&   rY   Ú	responderr[   ÚexcÚ_reasonr'   r(   r)   Ú
error_argsr]   ÚresultsÚargss   &                r   Údo_connect_transportÚSshPeer.do_connect_transportC   s   é € Ø�|‰|Ò'Ð'Ð'Ü�‰ÐHÈ$Ï)É)ÐUY×U^ÑU^Ð`d×`lÑ`lÔmà#'§9¡9×#7Ñ#7¸Ó#<Ñ ˆ˜ß�W—_‘_×&Ò&ØˆDÜ�w“<‰Dà—9‘9ˆDØˆDä% d§m¡mÓ4ˆ	Ø*¨EÐ2ˆà�=‰=Ò$Ø�N‰N°3ˆNÕ7à�N‰N°$ÐUYˆNÔZð.	IØ—,‘,×&Ñ& t¿	¹	ÈØ7;·|±|ÈWØ=Fð 'ó H÷ Hð Hð^ �|‰|×0Ñ0Ð2BÐ1CÓDˆØ�j‰j˜˜rÓ"×"Ò"ñaHøô œŸ™Ð)ô 	SÜ�L‰LÐ;¸TÔGÜ˜I¨YÄÀCÃÔIÈsÐRûä×$Ñ$ô 	]Ø×&×&Ð&ð >G×=TÑ=TÐUVÕ=WÑ:�˜y¨{Ø(¨T¨F°!°I°;¸aÀ¸uÐ*EÐGYÐ[fÐg‘
à�
ä˜#œu×;Ñ;×<Ò<Ø)‘Ø——�Ø)‘ð '�ä�L‰LÐkÜ˜c› C¯©°y×7NÑ7NÐPUôcä˜E°UÐPRÔSÐY\Ð\ûä×+Ñ+ô 	BÜ�L‰LÐ?ÀÔKä—m‘m C§K¡K°Ó@ˆGØ˜WÔ$¨¯©Ò)BØ×.Ñ.°!Ô3Ø*5�G˜JÒ'à*2�G˜JÑ'äÐ3Ø"+×"9Ñ"9×"TÐ"TÐ=TØ07ô9à>AðBûô �~‰~ô 	IÜ�L‰LÐDÀdÔPÜÐ,´c¸#³hÔ?ÀSÐHûð	Iúò
 	#ùs”   ‚BM1ÂA)M1Ã/7E% Ä&E#Ä'E% Ä+1M1ÅM.ÅM1Å#E% Å%M+Æ .F.Æ.M+ÇM+ÇA.I?È5A
I?É?M+ÊM+ÊA?L!Ì
L!Ì!M+Ì8M+Ì9-M&Í&M+Í+M1c                ó,   <€ V ^8„  d   QhRRRRRS[ RR/# )r   r&   z
str | Noner9   r^   r*   N©r   )r   r   s   "€r   r   rN   Š   s*   ø€ ÷ 2ñ 2˜Lð 2°ð 2É
ð 2ÐW[ñ 2r   c                óx   <€ WP                   8X  d   V P                  4        R # Vf   \        SV `  WV4       R # R # r   )r&   ÚcloseÚsuperÚdo_kill)r!   r&   r9   r^   Ú	__class__s   &&&&€r   r‡   ÚSshPeer.do_killŠ   s.   ø€ Ø—9‘9ÔØ�J‰JŽLØŠ\Ü‰G‰O˜D¨Ö1ñ r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r^   r*   Nrƒ   )r   r   s   "€r   r   rN   �   s   ø€ ÷ !ñ !¡Jð !°4ñ !r   c                óÀ   € \        VR 4      P                  R4      '       d=   \        VR4      pT P                  RY P                  ;'       g    RR7       RV n        R# R# )Ú	challengezplain1:ÚcookieÚ	authorizeÚ )Úcommandr�   ÚresponseN)r
   Ú
startswithÚwrite_controlr   )r!   r^   r�   s   && r   Údo_authorizeÚSshPeer.do_authorize�   sR   € Ü�7˜KÓ(×3Ñ3°I×>Ò>Ü˜W hÓ/ˆFØ×Ñ {¸6ÏMÉM×L_ÐL_Ð]_ÐÔ`Ø ˆDŽMñ ?r   c                ó   <€ V ^8„  d   QhRR/# rL   rM   )r   r   s   "€r   r   rN   –   s   ø€ ÷ ñ ¨ñ r   c                ó   € R V n         R # r   )r   )r!   s   &r   Údo_superuser_init_doneÚSshPeer.do_superuser_init_done–   s	   € ØˆŽr   c                óL   <€ V ^8„  d   QhRS[ RS[RS[S[,          RS[RS[RR/# )r   Úrouterr&   rc   r[   rd   r*   N)r   r   r   r   r+   )r   r   s   "€r   r   rN   ™   sF   ø€ ÷ Fñ F™vð F©Sð F¹Á½ð FÑPZð FÑhlð FÐquñ Fr   c               óü   <€ \         SV `  V4       W n        W0n        \	        VR R4      V n        WPn        \        P                  ! 4       V n	        \        VRR4      pVR9   d   RpMRV/pV P                  W'R7       R# )r   Nzinit-superuserFÚid)Ú	init_hostÚ	superuser)NÚnone)r†   r"   r&   rc   r
   r   rd   r   ÚSessionrb   r   Ústart_in_background)	r!   r›   r&   rc   r[   rd   Úinit_superuserrŸ   rˆ   s	   &&&&&$  €r   r"   ÚSshPeer.__init__™   su   ø€ Ü‰Ñ˜Ô ØŒ	ØŒ	Ü ¨°TÓ:ˆŒØŒä—}’}“ˆŒô )¨Ð2BÀDÓIˆØ˜^Ô+Ø‰Ià˜~Ð.ˆIà× Ñ ¨4Ð ÖEr   c                óš   <€ V ^8„  d   Qh/ S[ S[P                  ,          ;R&   S[;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[;R&   # )r   rb   r&   rc   r   rd   )r   r   r¡   r   r+   )r   r   s   "€r   r   rN   <   sQ   ø‡ ‚ Ù‘e—m‘mÕ$Ñ+ñ á
�Iñ ñ ‘3�-Ññ ñ ‘s�mÑñ	 ñ
 �Mò r   )r&   r   rd   rb   rc   )r@   rA   rB   rC   rb   r€   r‡   r”   r˜   r"   rF   rG   rH   Ú__classcell__©rˆ   r   s   @@r   rJ   rJ   <   sI   ù‡ € Ø'+€G÷E#ð E#÷N2ó 2÷!ð !÷ð ÷Fó F÷{ … r   rJ   c                   ób   a a€ ] tR t^¬t oV 3R ltV3R lR ltV3R lR ltV3R ltRtVt	V ;t
# )ÚHostRoutingRulec                ó4   <€ \         SV `  V4       / V n        R # r   )r†   r"   Úremotes)r!   r›   rˆ   s   &&€r   r"   ÚHostRoutingRule.__init__¯   s   ø€ Ü‰Ñ˜Ô ØˆŽr   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r   r[   r*   )r   r   r   )r   r   s   "€r   r   ÚHostRoutingRule.__annotate__³   s   ø€ ÷ &!ñ &!¡*ð &!±¹$µñ &!r   c                óÄ  a a€ S P                   f   Q hS P                   P                  f   Q h\        VRS P                   P                  4      pVS P                   P                  8X  d   R # \        VRR 4      pV\        P                  ! 4       8X  d   R pV'       g"   VP                  R4      w  p pT;'       g    R p\        VRR 4      R8X  d   \        VR4      pMR p\        V\        4      '       g   Q hVe   \        V\        4      '       g   Q hVe   \        V\        4      '       g   Q hW#V3o\        P                  RV4       \        P                  RS4       SS P                  9  da   \        P                  R	SS P                  4       \        S P                   W#WR JR
7      pVP                  VV 3R l4       VS P                  S&   S P                  S,          # )Nr&   rc   Ú@rb   rd   Úchannelz!Request for channel %s is remote.zkey=%szC%s is not among the existing remotes %s.  Opening a new connection.)rd   c                  ó:   <€ SP                   P                  S 4      # r   )r«   Ú__delitem__)r(   r!   s   €€r   Ú<lambda>Ú,HostRoutingRule.apply_rule.<locals>.<lambda>Ö   s   ø€ ¨4¯<©<×+CÑ+CÀCÔ+Hr   )r›   rž   r
   ÚgetpassÚgetuserre   rm   r   r5   r6   r«   rJ   Úadd_done_callback)	r!   r[   r&   rc   Úuser_from_hostÚ_ÚnonceÚpeerr(   s	   f&      @r   Ú
apply_ruleÚHostRoutingRule.apply_rule³   s’  ù€ Ø�{‰{Ò&Ð&Ð&Ø�{‰{×$Ñ$Ò0Ð0Ð0ä�w ¨¯©×(=Ñ(=Ó>ˆØ�4—;‘;×(Ñ(Ô(Ùä�w ¨Ó-ˆð ”7—?’?Ó$Ô$ØˆDßØ#'§?¡?°3Ó#7Ñ ˆN˜A˜qØ!×)Ð) TˆDä�7˜I tÓ,°	Ô9Ü˜G YÓ/‰EàˆEä˜$¤×$Ò$Ð$Ð$ØŠ|œz¨$´×4Ò4Ð4Ð4ØŠ}¤
¨5´#× 6Ò 6Ð6Ð6à˜%Ðˆä�‰Ð8¸'ÔBÜ�‰�X˜sÔ#à�d—l‘lÔ"Ü�L‰LÐ^Ð`cÐei×eqÑeqÔrÜ˜4Ÿ;™;¨°GÐRVÐEVÔWˆDØ×"Ñ"Õ#HÔIØ $ˆD�L‰L˜Ñà�|‰|˜CÕ Ð r   c                ó   <€ V ^8„  d   QhRR/# rL   rM   )r   r   s   "€r   r   r®   Û   s   ø€ ÷ ñ ˜$ñ r   c                óz   € \        V P                  P                  4       4       F  pVP                  4        K  	  R # r   )Úsetr«   Úvaluesr…   )r!   r¼   s   & r   ÚshutdownÚHostRoutingRule.shutdownÛ   s'   € Ü˜Ÿ™×+Ñ+Ó-Ö.ˆDØ�J‰JŽLó /r   c                óv   <€ V ^8„  d   Qh/ S[ S[S[S[S[,          S[S[,          3,          S[3,          ;R&   # )r   r«   )r   r   r   r   r   )r   r   s   "€r   r   r®   ¬   s.   ø‡ ‚ Ù‘%™™X¡c�]©H±S­MÐ9Õ:¹DÐ@ÕAÑAò r   )r«   )r@   rA   rB   rC   r"   r½   rÃ   rF   rG   rH   r¦   r§   s   @@r   r©   r©   ¬   s'   ù‡ € õ÷&!ð &!÷Pð ÷_ … r   r©   )r¶   ÚloggingrD   rj   Útypingr   r   r   r   Úcockpit._vendorr   Újsonutilr   r	   r
   r   r¼   r   r   r›   r   r   Ú	getLoggerr@   r5   ÚAskpassHandlerr   rJ   r©   rM   r   r   Ú<module>rÌ      sh   ðó Û Û 	Û ß .Ó .å !ç EÓ Eß !ß 'à	×	Ò	˜8Ó	$€ô$˜×,Ñ,ô $ôNmFˆdô mFô`1�kö 1r   