+
    šh©jò_  ã                   óŒ  € R t ^ RIt^ RIHt ^ RIHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ]! ^^#4      w  ttttt]! ^(^*4      w  tt]! ^^#4       U u. uF  p ]! V 4      NK  	  up w  ttttt]! ^(^*4       U u. uF  p ]! V 4      NK  	  up w  tt ! R R4      t  ! R	 R
] 4      t! ! R R4      t" ! R R4      t#R# u up i u up i )aõ  
This module provides GSS-API / SSPI Key Exchange as defined in :rfc:`4462`.

.. note:: Credential delegation is not supported in server mode.

.. note::
    `RFC 4462 Section 2.2
    <https://tools.ietf.org/html/rfc4462.html#section-2.2>`_ says we are not
    required to implement GSS-API error messages. Thus, in many methods within
    this module, if an error occurs an exception will be thrown and the
    connection will be terminated.

.. seealso:: :doc:`/api/ssh_gss`

.. versionadded:: 1.15
N)Úsha1)ÚDEBUGÚmax_byteÚ	zero_byteÚbyte_chrÚ	byte_maskÚbyte_ord)Úutil)ÚMessage)ÚSSHExceptionc                   ó¤   a € ] tR t^Lt o RtRt^t]! ^4      ]^,          ,           t	]
^,          tRtR tR tR tR tR tR	 tR
 tR tR tRtV tR# )ÚKexGSSGroup1z“
GSS-API / SSPI Authenticated Diffie-Hellman Key Exchange as defined in `RFC
4462 Section 2 <https://tools.ietf.org/html/rfc4462.html#section-2>`_
lE   ÿÿÿÿ8Ê{3If?ñE yéZô3¢Vý58nÛoP·eõ?a-ûÓtBLèûy3W[�<‘p¨6m5ÂÝPøß&aÌF!Í33*¾w& ãAR‘M;L}. c|&A“@”h\Š&&#-D¨v‡dÿÿÿÿ z(gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==c                ó€   € Wn         V P                   P                  V n        R V n        ^ V n        ^ V n        ^ V n        R # ©N)Ú	transportÚkexgss_ctxtÚkexgssÚgss_hostÚxÚeÚf©Úselfr   s   &&ÚK/var/www/html/bestweb/venv/lib/python3.14/site-packages/paramiko/kex_gss.pyÚ__init__ÚKexGSSGroup1.__init__Y   s4   € Ø"ŒØ—n‘n×0Ñ0ˆŒØˆŒØˆŒØˆŒØˆŽó    c                ó  € V P                  4        V P                  P                  '       dR   \        V P                  V P
                  V P                  4      V n        V P                  P                  \        4       R# \        V P                  V P
                  V P                  4      V n
        V P                  P                  V n        \        4       pVP                  \        4       VP                  V P                   P#                  V P                  R7      4       VP%                  V P                  4       V P                  P'                  V4       V P                  P                  \(        \*        \,        \.        4       R# )zE
Start the GSS-API / SSPI Authenticated Diffie-Hellman Key Exchange.
N©Útarget)Ú_generate_xr   Úserver_modeÚpowÚGr   ÚPr   Ú_expect_packetÚMSG_KEXGSS_INITr   r   r
   Úadd_byteÚc_MSG_KEXGSS_INITÚ
add_stringr   Ússh_init_sec_contextÚ	add_mpintÚ_send_messageÚMSG_KEXGSS_HOSTKEYÚMSG_KEXGSS_CONTINUEÚMSG_KEXGSS_COMPLETEÚMSG_KEXGSS_ERROR©r   Úms   & r   Ú	start_kexÚKexGSSGroup1.start_kexa   sô   € ð 	×ÑÔØ�>‰>×%×%Ð%ä˜Ÿ™ §¡¨¯©Ó0ˆDŒFØ�N‰N×)Ñ)¬/Ô:Ùä�T—V‘V˜TŸV™V T§V¡VÓ,ˆŒàŸ™×/Ñ/ˆŒÜ‹IˆØ	�
‰
Ô$Ô%Ø	�‰�T—[‘[×5Ñ5¸T¿]¹]Ð5ÓKÔLØ	�‰�D—F‘FÔØ�‰×$Ñ$ QÔ'Ø�‰×%Ñ%ÜÜÜÜö		
r   c                ó2  € V P                   P                  '       d   V\        8X  d   V P                  V4      # V P                   P                  '       g   V\        8X  d   V P                  V4      # V P                   P                  '       d   V\        8X  d   V P                  V4      # V P                   P                  '       g   V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # Rp\        VP                  V4      4      h)úx
Parse the next packet.

:param ptype: The (string) type of the incoming packet
:param `.Message` m: The packet content
z.GSS KexGroup1 asked to handle packet type {:d})r   r!   r&   Ú_parse_kexgss_initr-   Ú_parse_kexgss_hostkeyr.   Ú_parse_kexgss_continuer/   Ú_parse_kexgss_completer0   Ú_parse_kexgss_errorr   Úformat©r   Úptyper2   Úmsgs   &&& r   Ú
parse_nextÚKexGSSGroup1.parse_next{   sÚ   € ð �>‰>×%×%Ð%¨5´OÔ+CØ×*Ñ*¨1Ó-Ð-Ø—‘×+×+Ð+°Ô:LÔ1LØ×-Ñ-¨aÓ0Ð0Ø�^‰^×'×'Ð'¨UÔ6IÔ-IØ×.Ñ.¨qÓ1Ð1Ø—‘×+×+Ð+°Ô:MÔ1MØ×.Ñ.¨qÓ1Ð1ØÔ&Ô&Ø×+Ñ+¨AÓ.Ð.Ø>ˆÜ˜3Ÿ:™: eÓ,Ó-Ð-r   c                óü   €  \         P                  ! ^€4      p\        V^ ,          ^4      VR,          ,           pVR,          pW P                  V P                  39  g   K_   \
        P                  ! T4      T n        R# )a@  
generate an "x" (1 < x < q), where q is (p-1)/2.
p is a 128-byte (1024-bit) number, where the first 64 bits are 1.
therefore q can be approximated as a 2^1023.  we drop the subset of
potential x where the first 63 bits are 1, because some of those will
be larger than q (but this is a tiny tiny subset of potential x).
ºé   NN:Né   NN)ÚosÚurandomr   Úb7fffffffffffffffÚb0000000000000000r	   Úinflate_longr   )r   Úx_bytesÚfirsts   &  r   r    ÚKexGSSGroup1._generate_x‘   sb   € ð Ü—j’j “oˆGÜ ¨¥
¨DÓ1°G¸BµKÕ?ˆGØ˜B•KˆEØ×3Ñ3°T×5KÑ5KÐLÖLØÜ×"Ò" 7Ó+ˆŽr   c                óä   € VP                  4       pW P                  n        VP                  4       pV P                  P                  W#4       V P                  P	                  \
        \        4       R# )zƒ
Parse the SSH2_MSG_KEXGSS_HOSTKEY message (client mode).

:param `.Message` m: The content of the SSH2_MSG_KEXGSS_HOSTKEY message
N©Ú
get_stringr   Úhost_keyÚ_verify_keyr%   r.   r/   ©r   r2   rQ   Úsigs   &&  r   r8   Ú"KexGSSGroup1._parse_kexgss_hostkey¡   óL   € ð —<‘<“>ˆØ"*�‰ÔØ�l‰l‹nˆØ�‰×"Ñ" 8Ô1Ø�‰×%Ñ%Ô&9Ô;NÖOr   c                ó”  € V P                   P                  '       g¬   VP                  4       p\        4       pVP	                  \
        4       VP                  V P                  P                  V P                  VR7      4       V P                   P                  V4       V P                   P                  \        \        \        4       R# R# )z{
Parse the SSH2_MSG_KEXGSS_CONTINUE message.

:param `.Message` m: The content of the SSH2_MSG_KEXGSS_CONTINUE
    message
©r   Ú
recv_tokenN©r   r!   rP   r
   r'   Úc_MSG_KEXGSS_CONTINUEr)   r   r*   r   Úsend_messager%   r.   r/   r0   ©r   r2   Ú	srv_tokens   && r   r9   Ú#KexGSSGroup1._parse_kexgss_continue®   s“   € ð �~‰~×)×)Ð)ØŸ™›ˆIÜ“	ˆAØ�J‰JÔ,Ô-Ø�L‰LØ—‘×0Ñ0ØŸ=™=°Yð 1ó ôð
 �N‰N×'Ñ'¨Ô*Ø�N‰N×)Ñ)Ü#Ô%8Ô:Jöñ r   c                ó<  € V P                   P                  f   \        4       V P                   n        VP                  4       V n        V P                  ^8  g#   V P                  V P
                  ^,
          8”  d   \        R4      hVP                  4       pVP                  4       pRpV'       d   VP                  4       p\        V P                  V P                  V P
                  4      p\        4       pVP                  V P                   P                  V P                   P                  V P                   P                  V P                   P                   4       VP#                  V P                   P                  P%                  4       4       VP'                  V P(                  4       VP'                  V P                  4       VP'                  V4       \+        \-        V4      4      P/                  4       pV P                   P1                  WW4       VeD   V P2                  P5                  V P6                  VR7       V P2                  P9                  W'4       MV P2                  P9                  W'4       RV P                   n        V P                   P=                  4        R# )z‰
Parse the SSH2_MSG_KEXGSS_COMPLETE message (client mode).

:param `.Message` m: The content of the
    SSH2_MSG_KEXGSS_COMPLETE message
NúServer kex "f" is out of rangerX   T)r   rQ   ÚNullHostKeyÚ	get_mpintr   r$   r   rP   Úget_booleanr"   r   r
   ÚaddÚlocal_versionÚremote_versionÚlocal_kex_initÚremote_kex_initr)   Ú__str__r+   r   r   ÚstrÚdigestÚ_set_K_Hr   r*   r   Ússh_check_micÚgss_kex_usedÚ_activate_outbound©r   r2   Ú	mic_tokenÚboolr^   ÚKÚhmÚHs   &&      r   r:   Ú#KexGSSGroup1._parse_kexgss_completeÅ   sÁ  € ð �>‰>×"Ñ"Ò*Ü&1£mˆD�N‰NÔ#Ø—‘“ˆŒØ�F‰F�QŒJ˜DŸF™F T§V¡V¨a¥ZÔ/ÜÐ?Ó@Ð@Ø—L‘L“Nˆ	à�}‰}‹ˆØˆ	ßØŸ™›ˆIÜ�—‘˜Ÿ™ §¡Ó'ˆô ‹YˆØ
�‰Ø�N‰N×(Ñ(Ø�N‰N×)Ñ)Ø�N‰N×)Ñ)Ø�N‰N×*Ñ*ô		
ð 	�‰�d—n‘n×-Ñ-×5Ñ5Ó7Ô8Ø
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�QŒÜ”�R“‹M× Ñ Ó"ˆØ�‰×Ñ Ô%ØÒ Ø�K‰K×,Ñ,Ø—}‘}°ð -ô ð �K‰K×%Ñ% iÕ3à�K‰K×%Ñ% iÔ3Ø&*ˆ�‰Ô#Ø�‰×)Ñ)Ö+r   c                óü  € VP                  4       pVP                  4       V n        V P                  ^8  g#   V P                  V P                  ^,
          8”  d   \	        R4      h\        V P                  V P                  V P                  4      p\        4       V P                  n	        V P                  P                  P                  4       p\        4       pVP                  V P                  P                  V P                  P                  V P                  P                  V P                  P                   4       VP#                  V4       VP%                  V P                  4       VP%                  V P&                  4       VP%                  V4       \)        VP+                  4       4      P-                  4       pV P                  P/                  W64       V P0                  P3                  V P4                  V4      p\        4       pV P0                  P6                  '       dó   V P0                  P9                  V P                  P:                  RR7      pVP=                  \>        4       VP%                  V P&                  4       VP#                  V4       Ve$   VPA                  R4       VP#                  V4       MVPA                  R4       V P                  PC                  V4       RV P                  n"        V P                  PG                  4        R# VP=                  \H        4       VP#                  V4       V P                  PC                  V4       V P                  PK                  \L        \N        \P        4       R# )z}
Parse the SSH2_MSG_KEXGSS_INIT message (server mode).

:param `.Message` m: The content of the SSH2_MSG_KEXGSS_INIT message
úClient kex "e" is out of rangeT©Úgss_kexNF))rP   rc   r   r$   r   r"   r   rb   r   rQ   rj   r
   re   rg   rf   ri   rh   r)   r+   r   r   Úasbytesrl   rm   r   Ússh_accept_sec_contextr   Ú_gss_srv_ctxt_statusÚssh_get_micÚ
session_idr'   Úc_MSG_KEXGSS_COMPLETEÚadd_booleanr,   ro   rp   r[   r%   r.   r/   r0   ©	r   r2   Úclient_tokenrt   Úkeyru   rv   r^   rr   s	   &&       r   r7   ÚKexGSSGroup1._parse_kexgss_initò   sZ  € ð —|‘|“~ˆØ—‘“ˆŒØ�F‰F�QŒJ˜DŸF™F T§V¡V¨a¥ZÔ/ÜÐ?Ó@Ð@Ü�—‘˜Ÿ™ §¡Ó'ˆÜ"-£-ˆ�‰ÔØ�n‰n×%Ñ%×-Ñ-Ó/ˆô ‹YˆØ
�‰Ø�N‰N×)Ñ)Ø�N‰N×(Ñ(Ø�N‰N×*Ñ*Ø�N‰N×)Ñ)ô		
ð 	�‰�cÔØ
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�QŒÜ�—‘“Ó×%Ñ%Ó'ˆØ�‰×Ñ Ô%Ø—K‘K×6Ñ6Ø�M‰M˜<ó
ˆ	ô ‹IˆØ�;‰;×+×+Ð+ØŸ™×/Ñ/Ø—‘×)Ñ)°4ð 0ó ˆIð �J‰JÔ,Ô-Ø�K‰K˜Ÿ™ÔØ�L‰L˜Ô#ØÒ$Ø—‘˜dÔ#Ø—‘˜YÕ'à—‘˜eÔ$Ø�N‰N×(Ñ(¨Ô+Ø*.ˆD�N‰NÔ'Ø�N‰N×-Ñ-Ö/à�J‰JÔ,Ô-Ø�L‰L˜Ô#Ø�N‰N×(Ñ(¨Ô+Ø�N‰N×)Ñ)Ü#Ô%8Ô:Jör   c                ó¸   € VP                  4       pVP                  4       pVP                  4       pVP                  4        \        RP                  W#V4      4      h)a�  
Parse the SSH2_MSG_KEXGSS_ERROR message (client mode).
The server may send a GSS-API error message. if it does, we display
the error by throwing an exception (client mode).

:param `.Message` m: The content of the SSH2_MSG_KEXGSS_ERROR message
:raise SSHException: Contains GSS-API major and minor status as well as
                     the error message and the language tag of the
                     message
úCGSS-API Error:
Major Status: {}
Minor Status: {}
Error Message: {}
©Úget_intrP   r   r<   ©r   r2   Ú
maj_statusÚ
min_statusÚerr_msgs   &&   r   r;   Ú KexGSSGroup1._parse_kexgss_error*  óQ   € ð —Y‘Y“[ˆ
Ø—Y‘Y“[ˆ
Ø—,‘,“.ˆØ	�‰ŒÜð÷ �FØ¨óó
ð 	
r   )r   r   r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r$   r#   r   r   rH   r   rI   ÚNAMEr   r3   r@   r    r8   r9   r:   r7   r;   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   L   sn   ø‡ € ñð 	K€AØ	€AÙ  ›¨°A­Õ5ÐØ! A�ÐØ5€Dòò
ò4.ò,,ò Pòò.+,òZ6÷p
ð 
r   r   c                   ó&   € ] tR tRtRtRt^tRtRtR# )ÚKexGSSGroup14iD  z›
GSS-API / SSPI Authenticated Diffie-Hellman Group14 Key Exchange as defined
in `RFC 4462 Section 2
<https://tools.ietf.org/html/rfc4462.html#section-2>`_
l‰   ÿÿÿÿ�&•U¢G9
tcb0]Q\-¥:¾$•90.`U´_¼b;YS7x]EkŠ`:xds€!,w<Gï8¶qbdR_ÊØhÅÀd«d©ÃY6K–pRT{ÜUÄj¼K­#¹Gt|õL¤ê‹4šS«8Ø ÒFYpw,(.> Â=¶H³G2C’düc_Ÿ.K?&jÚ_†c½}­z[\Vµ_1M.D‰^±/1v5I	ŽjÖV&|ÓŠ/òmVÀlRÓ<6#å{n4ó(EY91ÇTï:Ìg8	H	ÍAp¢cb4BÑBˆj~Hüÿÿÿÿ z)gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==© N)	r‘   r’   r“   r”   r•   r$   r#   r–   r—   r�   r   r   rœ   rœ   D  s   † ñð 	K€AØ	€AØ6„Dr   rœ   c                   óv   a € ] tR tRt o RtRtRtRtRtR t	R t
R	 tR
 tR tR tR tR tR tR tR tRtV tR# )Ú	KexGSSGexiP  z•
GSS-API / SSPI Authenticated Diffie-Hellman Group Exchange as defined in
`RFC 4462 Section 2 <https://tools.ietf.org/html/rfc4462.html#section-2>`_
z%gss-gex-sha1-toWM5Slw5Ew8Mqkay+al2g==é   é    i   c                ó¸   € Wn         V P                   P                  V n        R V n        R V n        R V n        R V n        R V n        R V n        R V n	        RV n
        R # )NF)r   r   r   r   ÚpÚqÚgr   r   r   Ú	old_styler   s   &&r   r   ÚKexGSSGex.__init__[  sP   € Ø"ŒØ—n‘n×0Ñ0ˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŽr   c                ó
  € V P                   P                  '       d"   V P                   P                  \        4       R# V P                   P                  V n        \        4       pVP                  \        4       VP                  V P                  4       VP                  V P                  4       VP                  V P                  4       V P                   P                  V4       V P                   P                  \        4       R# )zF
Start the GSS-API / SSPI Authenticated Diffie-Hellman Group Exchange
N)r   r!   r%   ÚMSG_KEXGSS_GROUPREQr   r
   r'   Úc_MSG_KEXGSS_GROUPREQÚadd_intÚmin_bitsÚpreferred_bitsÚmax_bitsr,   ÚMSG_KEXGSS_GROUPr1   s   & r   r3   ÚKexGSSGex.start_kexg  s¨   € ð �>‰>×%×%Ð%Ø�N‰N×)Ñ)Ô*=Ô>Ùð Ÿ™×/Ñ/ˆŒÜ‹IˆØ	�
‰
Ô(Ô)Ø	�	‰	�$—-‘-Ô Ø	�	‰	�$×%Ñ%Ô&Ø	�	‰	�$—-‘-Ô Ø�‰×$Ñ$ QÔ'Ø�‰×%Ñ%Ô&6Ö7r   c                óÂ  € V\         8X  d   V P                  V4      # V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # V\        8X  d   V P                  V4      # Rp\        VP                  V4      4      h)r6   z'KexGex asked to handle packet type {:d})r©   Ú_parse_kexgss_groupreqr¯   Ú_parse_kexgss_groupr&   Ú_parse_kexgss_gex_initr-   r8   r.   r9   r/   r:   r0   r;   r   r<   r=   s   &&& r   r@   ÚKexGSSGex.parse_nextz  sÒ   € ð Ô'Ô'Ø×.Ñ.¨qÓ1Ð1ØÔ&Ô&Ø×+Ñ+¨AÓ.Ð.Ø”oÔ%Ø×.Ñ.¨qÓ1Ð1ØÔ(Ô(Ø×-Ñ-¨aÓ0Ð0ØÔ)Ô)Ø×.Ñ.¨qÓ1Ð1ØÔ)Ô)Ø×.Ñ.¨qÓ1Ð1ØÔ&Ô&Ø×+Ñ+¨AÓ.Ð.Ø7ˆÜ˜3Ÿ:™: eÓ,Ó-Ð-r   c                óº  € V P                   ^,
          ^,          p\        P                  ! V^ 4      p\        V^ ,          4      p\	        V4      p^ÿpV^€,          '       g   V^,          pV^,          pK#   \
        P                  ! V4      p\        V^ ,          V4      VR,          ,           p\        P                  ! V^4      pV^8”  g   KX  Wq8  g   K`   Ypn	        R# )rD   rC   N)
r£   r	   Údeflate_longr   ÚlenrF   rG   r   rJ   r   )r   r¤   ÚqnormÚqhbyteÚ
byte_countÚqmaskrK   r   s   &       r   r    ÚKexGSSGex._generate_x”  s¬   € à�V‰V�a�Z˜AÕˆÜ×!Ò! ! QÓ'ˆÜ˜% �(Ó#ˆÜ˜“Zˆ
ØˆØ˜D—=”=Ø�q�LˆFØ�a�KŠEØÜ—j’j Ó,ˆGÜ ¨¥
¨EÓ2°W¸Rµ[Õ@ˆGÜ×!Ò! '¨1Ó-ˆAØ�A–˜AžEØØŽr   c                ó(  € VP                  4       pVP                  4       pVP                  4       pW0P                  8”  d   V P                  pW0P                  8  d   V P                  pW#8”  d   TpWC8  d   TpW n        W0n        W@n        V P                  P                  4       pVf   \        R4      hV P                  P                  \        RP                  W#V4      4       VP                  W#V4      w  V n        V n        \        4       pVP                  \        4       VP!                  V P                  4       VP!                  V P                  4       V P                  P#                  V4       V P                  P%                  \&        4       R# )z‰
Parse the SSH2_MSG_KEXGSS_GROUPREQ message (server mode).

:param `.Message` m: The content of the
    SSH2_MSG_KEXGSS_GROUPREQ message
Nz-Can't do server-side gex with no modulus packzPicking p ({} <= {} <= {} bits))rŠ   r®   r¬   r­   r   Ú_get_modulus_packr   Ú_logr   r<   Úget_modulusr¥   r£   r
   r'   Úc_MSG_KEXGSS_GROUPr+   r,   r%   r&   )r   r2   ÚminbitsÚpreferredbitsÚmaxbitsÚpacks   &&    r   r²   Ú KexGSSGex._parse_kexgss_groupreq¦  s2  € ð —)‘)“+ˆØŸ	™	›ˆØ—)‘)“+ˆàŸ=™=Ô(Ø ŸM™MˆMØŸ=™=Ô(Ø ŸM™MˆMð Ô"Ø#ˆGØÔ"Ø#ˆGàŒØ+ÔØŒà�~‰~×/Ñ/Ó1ˆØŠ<ÜÐNÓOÐOØ�‰×ÑÜØ-×4Ñ4Ø¨óô	
ð ×)Ñ)¨'À'ÓJ‰ˆŒ�”Ü‹IˆØ	�
‰
Ô%Ô&Ø	�‰�D—F‘FÔØ	�‰�D—F‘FÔØ�‰×$Ñ$ QÔ'Ø�‰×%Ñ%¤oÖ6r   c                ó8  € VP                  4       V n        VP                  4       V n        \        P                  ! V P                  4      pVR8  g   VR8”  d   \        RP                  V4      4      hV P                  P                  \        RP                  V4      4       V P                  4        \        V P                  V P                  V P                  4      V n        \        4       pVP                  \         4       VP#                  V P$                  P'                  V P(                  R7      4       VP+                  V P                  4       V P                  P-                  V4       V P                  P/                  \0        \2        \4        \6        4       R# )z~
Parse the SSH2_MSG_KEXGSS_GROUP message (client mode).

:param `Message` m: The content of the SSH2_MSG_KEXGSS_GROUP message
r    r¡   z<Server-generated gex p (don't ask) is out of range ({} bits)zGot server p ({} bits)r   N)rc   r£   r¥   r	   Ú
bit_lengthr   r<   r   rÀ   r   r    r"   r   r   r
   r'   r(   r)   r   r*   r   r+   r,   r%   r-   r.   r/   r0   )r   r2   Úbitlens   && r   r³   ÚKexGSSGex._parse_kexgss_groupÒ  s  € ð —‘“ˆŒØ—‘“ˆŒä—’ §¡Ó(ˆØ�TŒM˜v¨œ}Üðß"™F 6›Nóð ð 	�‰×ÑÜÐ+×2Ñ2°6Ó:ô	
ð 	×ÑÔä�T—V‘V˜TŸV™V T§V¡VÓ,ˆŒÜ‹IˆØ	�
‰
Ô$Ô%Ø	�‰�T—[‘[×5Ñ5¸T¿]¹]Ð5ÓKÔLØ	�‰�D—F‘FÔØ�‰×$Ñ$ QÔ'Ø�‰×%Ñ%ÜÜÜÜö		
r   c                ój  € VP                  4       pVP                  4       V n        V P                  ^8  g#   V P                  V P                  ^,
          8”  d   \	        R4      hV P                  4        \        V P                  V P                  V P                  4      V n	        \        V P                  V P                  V P                  4      p\        4       V P                  n        V P                  P                  P                  4       p\        4       pVP                  V P                  P                   V P                  P"                  V P                  P$                  V P                  P&                  V4       VP)                  V P*                  4       VP)                  V P,                  4       VP)                  V P.                  4       VP1                  V P                  4       VP1                  V P                  4       VP1                  V P                  4       VP1                  V P                  4       VP1                  V4       \3        VP5                  4       4      P7                  4       pV P                  P9                  W64       V P:                  P=                  V P>                  V4      p\        4       pV P:                  P@                  '       dó   V P:                  PC                  V P                  PD                  RR7      pVPG                  \H        4       VP1                  V P                  4       VPK                  V4       Ve$   VPM                  R4       VPK                  V4       MVPM                  R4       V P                  PO                  V4       RV P                  n(        V P                  PS                  4        R# VPG                  \T        4       VPK                  V4       V P                  PO                  V4       V P                  PW                  \X        \Z        \\        4       R# )z|
Parse the SSH2_MSG_KEXGSS_INIT message (server mode).

:param `Message` m: The content of the SSH2_MSG_KEXGSS_INIT message
ry   Trz   NF)/rP   rc   r   r£   r   r    r"   r¥   r   r   rb   r   rQ   rj   r
   re   rg   rf   ri   rh   r«   r¬   r­   r®   r+   r   r|   rl   rm   r   r}   r   r~   r   r€   r'   r�   r)   r‚   r,   ro   rp   r[   r%   r.   r/   r0   rƒ   s	   &&       r   r´   Ú KexGSSGex._parse_kexgss_gex_initó  sË  € ð —|‘|“~ˆØ—‘“ˆŒØ�F‰F�QŒJ˜DŸF™F T§V¡V¨a¥ZÔ/ÜÐ?Ó@Ð@Ø×ÑÔÜ�T—V‘V˜TŸV™V T§V¡VÓ,ˆŒÜ�—‘˜Ÿ™ §¡Ó'ˆÜ"-£-ˆ�‰ÔØ�n‰n×%Ñ%×-Ñ-Ó/ˆô ‹YˆØ
�‰Ø�N‰N×)Ñ)Ø�N‰N×(Ñ(Ø�N‰N×*Ñ*Ø�N‰N×)Ñ)Øô	
ð 	�
‰
�4—=‘=Ô!Ø
�
‰
�4×&Ñ&Ô'Ø
�
‰
�4—=‘=Ô!Ø
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�QŒÜ�—‘“Ó×%Ñ%Ó'ˆØ�‰×Ñ Ô%Ø—K‘K×6Ñ6Ø�M‰M˜<ó
ˆ	ô ‹IˆØ�;‰;×+×+Ð+ØŸ™×/Ñ/Ø—‘×)Ñ)°4ð 0ó ˆIð �J‰JÔ,Ô-Ø�K‰K˜Ÿ™ÔØ�L‰L˜Ô#ØÒ$Ø—‘˜dÔ#Ø—‘˜YÕ'à—‘˜eÔ$Ø�N‰N×(Ñ(¨Ô+Ø*.ˆD�N‰NÔ'Ø�N‰N×-Ñ-Ö/à�J‰JÔ,Ô-Ø�L‰L˜Ô#Ø�N‰N×(Ñ(¨Ô+Ø�N‰N×)Ñ)Ü#Ô%8Ô:Jör   c                óä   € VP                  4       pW P                  n        VP                  4       pV P                  P                  W#4       V P                  P	                  \
        \        4       R# )z‚
Parse the SSH2_MSG_KEXGSS_HOSTKEY message (client mode).

:param `Message` m: The content of the SSH2_MSG_KEXGSS_HOSTKEY message
NrO   rS   s   &&  r   r8   ÚKexGSSGex._parse_kexgss_hostkey1  rV   r   c                ó”  € V P                   P                  '       g¬   VP                  4       p\        4       pVP	                  \
        4       VP                  V P                  P                  V P                  VR7      4       V P                   P                  V4       V P                   P                  \        \        \        4       R# R# )zv
Parse the SSH2_MSG_KEXGSS_CONTINUE message.

:param `Message` m: The content of the SSH2_MSG_KEXGSS_CONTINUE message
rX   NrZ   r]   s   && r   r9   Ú KexGSSGex._parse_kexgss_continue>  s“   € ð �~‰~×)×)Ð)ØŸ™›ˆIÜ“	ˆAØ�J‰JÔ,Ô-Ø�L‰LØ—‘×0Ñ0ØŸ=™=°Yð 1ó ôð
 �N‰N×'Ñ'¨Ô*Ø�N‰N×)Ñ)Ü#Ô%8Ô:Jöñ r   c                ó|  € V P                   P                  f   \        4       V P                   n        VP                  4       V n        VP                  4       pVP                  4       pRpV'       d   VP                  4       pV P                  ^8  g#   V P                  V P                  ^,
          8”  d   \        R4      h\        V P                  V P                  V P                  4      p\        4       pVP                  V P                   P                  V P                   P                  V P                   P                  V P                   P                   V P                   P                  P#                  4       4       V P$                  '       g   VP'                  V P(                  4       VP'                  V P*                  4       V P$                  '       g   VP'                  V P,                  4       VP/                  V P                  4       VP/                  V P0                  4       VP/                  V P2                  4       VP/                  V P                  4       VP/                  V4       \5        VP7                  4       4      P9                  4       pV P                   P;                  WW4       VeD   V P<                  P?                  V P@                  VR7       V P<                  PC                  W'4       MV P<                  PC                  W'4       RV P                   n"        V P                   PG                  4        R# )z„
Parse the SSH2_MSG_KEXGSS_COMPLETE message (client mode).

:param `Message` m: The content of the SSH2_MSG_KEXGSS_COMPLETE message
Nra   rX   T)$r   rQ   rb   rc   r   rP   rd   r£   r   r"   r   r
   re   rf   rg   rh   ri   rj   r¦   r«   r¬   r­   r®   r+   r¥   r   r   r|   rl   rm   r   r*   r   rn   ro   rp   rq   s   &&      r   r:   Ú KexGSSGex._parse_kexgss_completeT  s  € ð �>‰>×"Ñ"Ò*Ü&1£mˆD�N‰NÔ#Ø—‘“ˆŒØ—L‘L“Nˆ	à�}‰}‹ˆØˆ	ßØŸ™›ˆIØ�F‰F�QŒJ˜DŸF™F T§V¡V¨a¥ZÔ/ÜÐ?Ó@Ð@Ü�—‘˜Ÿ™ §¡Ó'ˆô ‹YˆØ
�‰Ø�N‰N×(Ñ(Ø�N‰N×)Ñ)Ø�N‰N×)Ñ)Ø�N‰N×*Ñ*Ø�N‰N×#Ñ#×+Ñ+Ó-ô	
ð �~�~ˆ~Ø�J‰J�t—}‘}Ô%Ø
�
‰
�4×&Ñ&Ô'Ø�~�~ˆ~Ø�J‰J�t—}‘}Ô%Ø
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�T—V‘VÔØ
�‰�QŒÜ�—‘“Ó×%Ñ%Ó'ˆØ�‰×Ñ Ô%ØÒ Ø�K‰K×,Ñ,Ø—}‘}°ð -ô ð �K‰K×%Ñ% iÕ3à�K‰K×%Ñ% iÔ3Ø&*ˆ�‰Ô#Ø�‰×)Ñ)Ö+r   c                ó¸   € VP                  4       pVP                  4       pVP                  4       pVP                  4        \        RP                  W#V4      4      h)a�  
Parse the SSH2_MSG_KEXGSS_ERROR message (client mode).
The server may send a GSS-API error message. if it does, we display
the error by throwing an exception (client mode).

:param `Message` m:  The content of the SSH2_MSG_KEXGSS_ERROR message
:raise SSHException: Contains GSS-API major and minor status as well as
                     the error message and the language tag of the
                     message
rˆ   r‰   r‹   s   &&   r   r;   ÚKexGSSGex._parse_kexgss_error†  r�   r   )r   r   r¥   r   r   r®   r¬   r¦   r£   r­   r¤   r   r   N)r‘   r’   r“   r”   r•   r–   r¬   r®   r­   r   r3   r@   r    r²   r³   r´   r8   r9   r:   r;   r—   r˜   r™   s   @r   rŸ   rŸ   P  sa   ø‡ € ñð
 3€DØ€HØ€HØ€Nò
ò8ò&.ò4ò$*7òX
òB<ò|Pòò,0,÷d
ð 
r   rŸ   c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )rb   i   z›
This class represents the Null Host Key for GSS-API Key Exchange as defined
in `RFC 4462 Section 5
<https://tools.ietf.org/html/rfc4462.html#section-5>`_
c                ó   € R V n         R# )Ú N©r…   ©r   s   &r   r   ÚNullHostKey.__init__§  s	   € ØˆŽr   c                ó   € V P                   # r   rÙ   rÚ   s   &r   rj   ÚNullHostKey.__str__ª  ó   € Ø�x‰xˆr   c                ó   € V P                   # r   rÙ   rÚ   s   &r   Úget_nameÚNullHostKey.get_name­  rÞ   r   rÙ   N)
r‘   r’   r“   r”   r•   r   rj   rà   r—   r˜   r™   s   @r   rb   rb      s   ø‡ € ñòò÷ð r   rb   )$r•   rF   Úhashlibr   Úparamiko.commonr   r   r   r   r   r   Úparamikor	   Úparamiko.messager
   Úparamiko.ssh_exceptionr   Úranger&   r.   r/   r-   r0   r©   r¯   r(   r[   r�   Úc_MSG_KEXGSS_HOSTKEYÚc_MSG_KEXGSS_ERRORrª   rÂ   r   rœ   rŸ   rb   )Úcs   0r   Ú<module>rë      sñ   ðñ.ó" 
Ý ÷÷ õ Ý $Ý /ñ 
ˆ"ˆbƒMñØØØØØá*/°°B«-Ñ 'ÐÐ&ñ    Bœ-Ó(™-�Q�Xˆa†[™-Ñ(ñØØØØØñ ˜r 2œó/Ù&�A�HˆQ†K™ñ/Ñ +ÐÐ*÷
u
ñ u
ôp	7�Lô 	7÷M
ñ M
÷`
ó ùòu )ùò/s   ÁB<Á:C