Files
ServerSync/lib/paramiko/__pycache__/kex_gss.cpython-314.pyc

233 lines
30 KiB
Plaintext
Raw Normal View History

2026-02-12 02:28:23 +02:00
+
u<10>i<EFBFBD>_<00><00><><00>Rt^RIt^RIHt^RIHtHtHtHtH t H
t
^RI H t ^RI Ht^RIHt]!^^#4wttttt]!^(^*4wtt]!^^#4Uu.uF p]!V4NK upwttttt]!^(^*4Uu.uF p]!V4NK upwtt!RR4t !R R
] 4t!!R R 4t"!R R4t#R#uupiuupi)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)<01>sha1)<06>DEBUG<55>max_byte<74> zero_byte<74>byte_chr<68> byte_mask<73>byte_ord)<01>util)<01>Message)<01> SSHExceptionc<00><>a<00>]tRt^LtoRtRt^t]!^4]^,,t ]
^,t Rt Rt RtRtRtRtR tR
tR tR tR tVtR#)<0F> KexGSSGroup1z<31>
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<00><EFBFBD><EFBFBD><EFBFBD>8<>{3If?<16>E y<>Z<EFBFBD>3<EFBFBD>V<EFBFBD>58n<38>oP<>e<EFBFBD>?a-<2D> <0A>tBL<42> <0A>y3W[<5B><<3C>p<EFBFBD>6m5<6D><1F>P<EFBFBD><12>&a<05>F!<1D>33*<2A>w& <20>AR<14>M;L}.<08>c|&A<>@<40>h\<17>&&# -D<>v<EFBFBD>d<EFBFBD><EFBFBD><EFBFBD><EFBFBD>z(gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==c<08><><00>WnVPPVnRVn^Vn^Vn^VnR#<00>N)<07> transport<72> kexgss_ctxt<78>kexgss<73>gss_host<73>x<>e<>f<><02>selfrs&&<26>7/tmp/pip-target-zhdecbcm/lib/python/paramiko/kex_gss.py<70>__init__<5F>KexGSSGroup1.__init__Ys4<00><00>"<22><0E><1A>n<EFBFBD>n<EFBFBD>0<>0<><04> <0B><1C><04> <0A><12><04><06><12><04><06><12><04><06>c <0C><00>VP4VPP'dR\VPVP
VP 4VnVPP\4R#\VPVP
VP 4Vn
VPPVn \4pVP\4VPVP P#VPR74VP%VP4VPP'V4VPP\(\*\,\.4R#)zE
Start the GSS-API / SSPI Authenticated Diffie-Hellman Key Exchange.
N<EFBFBD><01>target)<18> _generate_xr<00> server_mode<64>pow<6F>Gr<00>Pr<00>_expect_packet<65>MSG_KEXGSS_INITrrr
<00>add_byte<74>c_MSG_KEXGSS_INIT<49>
add_stringr<00>ssh_init_sec_context<78> add_mpint<6E> _send_message<67>MSG_KEXGSS_HOSTKEY<45>MSG_KEXGSS_CONTINUE<55>MSG_KEXGSS_COMPLETE<54>MSG_KEXGSS_ERROR<4F>r<00>ms& r<00> start_kex<65>KexGSSGroup1.start_kexas<><00><00> <0A><18><18><1A> <0F>><3E>><3E> %<25> %<25> %<25><18><14><16><16><14><16><16><14><16><16>0<>D<EFBFBD>F<EFBFBD> <10>N<EFBFBD>N<EFBFBD> )<29> )<29>/<2F> :<3A> <12><14>T<EFBFBD>V<EFBFBD>V<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>,<2C><04><06><1C><0E><0E>/<2F>/<2F><04> <0A> <13>I<EFBFBD><01> <09>
<EFBFBD>
<EFBFBD>$<24>%<25> <09> <0C> <0C>T<EFBFBD>[<5B>[<5B>5<>5<>T<EFBFBD>]<5D>]<5D>5<>K<>L<> <09> <0B> <0B>D<EFBFBD>F<EFBFBD>F<EFBFBD><1B> <0C><0E><0E>$<24>$<24>Q<EFBFBD>'<27> <0C><0E><0E>%<25>%<25> <1E> <1F> <1F> <1C> 
rc <0C>2<00>VPP'dV\8XdVPV4#VPP'gV\8XdVP V4#VPP'dV\ 8XdVPV4#VPP'gV\8XdVPV4#V\8XdVPV4#Rp\VPV44h)<02>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})rr!r&<00>_parse_kexgss_initr-<00>_parse_kexgss_hostkeyr.<00>_parse_kexgss_continuer/<00>_parse_kexgss_completer0<00>_parse_kexgss_errorr <00>format<61>r<00>ptyper2<00>msgs&&& r<00>
parse_next<EFBFBD>KexGSSGroup1.parse_next{s<><00><00> <10>><3E>><3E> %<25> %<25> %<25>5<EFBFBD>O<EFBFBD>+C<><17>*<2A>*<2A>1<EFBFBD>-<2D> -<2D><15><1E><1E>+<2B>+<2B>+<2B><15>:L<>1L<31><17>-<2D>-<2D>a<EFBFBD>0<> 0<> <11>^<5E>^<5E> '<27> '<27> '<27>U<EFBFBD>6I<36>-I<><17>.<2E>.<2E>q<EFBFBD>1<> 1<><15><1E><1E>+<2B>+<2B>+<2B><15>:M<>1M<31><17>.<2E>.<2E>q<EFBFBD>1<> 1<> <12>&<26> &<26><17>+<2B>+<2B>A<EFBFBD>.<2E> .<2E>><3E><03><1A>3<EFBFBD>:<3A>:<3A>e<EFBFBD>,<2C>-<2D>-rc <0C><><00>\P!^<5E>4p\V^,^4VR,,pVR,pW PVP39gK_\
P !T4TnR#)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).
<EFBFBD><EFBFBD>NN:N<>NN)<08>os<6F>urandomr<00>b7fffffffffffffff<66>b0000000000000000r <00> inflate_longr)r<00>x_bytes<65>firsts& rr <00>KexGSSGroup1._generate_x<5F>sb<00><00><10><18>j<EFBFBD>j<EFBFBD><13>o<EFBFBD>G<EFBFBD><1F><07><01>
<EFBFBD>D<EFBFBD>1<>G<EFBFBD>B<EFBFBD>K<EFBFBD>?<3F>G<EFBFBD><1B>B<EFBFBD>K<EFBFBD>E<EFBFBD><14>3<>3<>T<EFBFBD>5K<35>5K<35>L<>L<><15><15>"<22>"<22>7<EFBFBD>+<2B><04>rc <0C><><00>VP4pW PnVP4pVPPW#4VPP \
\ 4R#)z<>
Parse the SSH2_MSG_KEXGSS_HOSTKEY message (client mode).
:param `.Message` m: The content of the SSH2_MSG_KEXGSS_HOSTKEY message
N<EFBFBD><07>
get_stringr<00>host_key<65> _verify_keyr%r.r/<00>rr2rQ<00>sigs&& rr8<00>"KexGSSGroup1._parse_kexgss_hostkey<65><00>L<00><00><15><<3C><<3C>><3E><08>"*<2A><0E><0E><1F><0F>l<EFBFBD>l<EFBFBD>n<EFBFBD><03> <0C><0E><0E>"<22>"<22>8<EFBFBD>1<> <0C><0E><0E>%<25>%<25>&9<>;N<>Orc <0C><><00>VPP'g<>VP4p\4pVP \
4VP VPPVPVR74VPPV4VPP\\\4R#R#)z{
Parse the SSH2_MSG_KEXGSS_CONTINUE message.
:param `.Message` m: The content of the SSH2_MSG_KEXGSS_CONTINUE
message
<EFBFBD>r<00>
recv_tokenN<EFBFBD>rr!rPr
r'<00>c_MSG_KEXGSS_CONTINUEr)rr*r<00> send_messager%r.r/r0<00>rr2<00> srv_tokens&& rr9<00>#KexGSSGroup1._parse_kexgss_continue<75>s<><00><00><14>~<7E>~<7E>)<29>)<29>)<29><19> <0C> <0C><0E>I<EFBFBD><17> <09>A<EFBFBD> <0A>J<EFBFBD>J<EFBFBD>,<2C> -<2D> <0A>L<EFBFBD>L<EFBFBD><14> <0B> <0B>0<>0<><1F>=<3D>=<3D>Y<EFBFBD>1<><12> <0E>
<11>N<EFBFBD>N<EFBFBD> '<27> '<27><01> *<2A> <10>N<EFBFBD>N<EFBFBD> )<29> )<29>#<23>%8<>:J<> <0E> rc <0C><<00>VPPf\4VPnVP4VnVP^8g#VPVP
^,
8<>d \ R4hVP4pVP4pRpV'dVP4p\VPVPVP
4p\4pVPVPPVPPVPPVPP 4VP#VPPP%44VP'VP(4VP'VP4VP'V4\+\-V44P/4pVPP1WW4VeDVP2P5VP6VR7VP2P9W'4MVP2P9W'4RVPnVPP=4R#)z<>
Parse the SSH2_MSG_KEXGSS_COMPLETE message (client mode).
:param `.Message` m: The content of the
SSH2_MSG_KEXGSS_COMPLETE message
N<EFBFBD>Server kex "f" is out of rangerXT)rrQ<00> NullHostKey<65> get_mpintrr$r rP<00> get_booleanr"rr
<00>add<64> local_version<6F>remote_version<6F>local_kex_init<69>remote_kex_initr)<00>__str__r+rr<00>str<74>digest<73>_set_K_Hrr*r<00> ssh_check_mic<69> gss_kex_used<65>_activate_outbound<6E>rr2<00> mic_token<65>boolr^<00>K<>hm<68>Hs&& rr:<00>#KexGSSGroup1._parse_kexgss_complete<74>s<><00><00> <10>><3E>><3E> "<22> "<22> *<2A>&1<>m<EFBFBD>D<EFBFBD>N<EFBFBD>N<EFBFBD> #<23><12><1B><1B><1D><04><06> <10>F<EFBFBD>F<EFBFBD>Q<EFBFBD>J<EFBFBD>D<EFBFBD>F<EFBFBD>F<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>a<EFBFBD>Z<EFBFBD>/<2F><1E>?<3F>@<40> @<40><15>L<EFBFBD>L<EFBFBD>N<EFBFBD> <09><10>}<7D>}<7D><EFBFBD><04><18> <09> <0F><19> <0C> <0C><0E>I<EFBFBD> <0F><04><06><06><04><06><06><04><06><06> '<27><01><15>Y<EFBFBD><02>
<EFBFBD><06><06> <10>N<EFBFBD>N<EFBFBD> (<28> (<28> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <10>N<EFBFBD>N<EFBFBD> *<2A> *<2A> 
<EFBFBD> <0B> <0A> <0A>d<EFBFBD>n<EFBFBD>n<EFBFBD>-<2D>-<2D>5<>5<>7<>8<>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>Q<EFBFBD><0F> <10><13>R<EFBFBD><17>M<EFBFBD> <20> <20> "<22><01> <0C><0E><0E><1F><1F><01>%<25> <14> <20> <10>K<EFBFBD>K<EFBFBD> ,<2C> ,<2C><1B>}<7D>}<7D><19> -<2D> <0E> <11>K<EFBFBD>K<EFBFBD> %<25> %<25>i<EFBFBD> 3<> <10>K<EFBFBD>K<EFBFBD> %<25> %<25>i<EFBFBD> 3<>&*<2A><04><0E><0E>#<23> <0C><0E><0E>)<29>)<29>+rc <0C><><00>VP4pVP4VnVP^8g#VPVP^,
8<>d \ R4h\ VPVP VP4p\4VPn VPPP4p\4pVPVPPVPPVPPVPP 4VP#V4VP%VP4VP%VP&4VP%V4\)VP+44P-4pVPP/W64VP0P3VP4V4p\4pVP0P6'd<>VP0P9VPP:RR7pVP=\>4VP%VP&4VP#V4Ve$VPAR4VP#V4MVPAR4VPPCV4RVPn"VPPG4R#VP=\H4VP#V4VPPCV4VPPK\L\N\P4R#)z}
Parse the SSH2_MSG_KEXGSS_INIT message (server mode).
:param `.Message` m: The content of the SSH2_MSG_KEXGSS_INIT message
<EFBFBD>Client kex "e" is out of rangeT<65><01>gss_kexNF))rPrcrr$r r"rrbrrQrjr
rergrfrirhr)r+rr<00>asbytesrlrmr<00>ssh_accept_sec_contextr<00>_gss_srv_ctxt_status<75> ssh_get_mic<69>
session_idr'<00>c_MSG_KEXGSS_COMPLETE<54> add_booleanr,rorpr[r%r.r/r0<00> rr2<00> client_tokenrt<00>keyrurvr^rrs && rr7<00>KexGSSGroup1._parse_kexgss_init<69>sZ<00><00><19>|<7C>|<7C>~<7E> <0C><12><1B><1B><1D><04><06> <10>F<EFBFBD>F<EFBFBD>Q<EFBFBD>J<EFBFBD>D<EFBFBD>F<EFBFBD>F<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>a<EFBFBD>Z<EFBFBD>/<2F><1E>?<3F>@<40> @<40> <0F><04><06><06><04><06><06><04><06><06> '<27><01>"-<2D>-<2D><04><0E><0E><1F><12>n<EFBFBD>n<EFBFBD>%<25>%<25>-<2D>-<2D>/<2F><03><15>Y<EFBFBD><02>
<EFBFBD><06><06> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <10>N<EFBFBD>N<EFBFBD> (<28> (<28> <10>N<EFBFBD>N<EFBFBD> *<2A> *<2A> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> 
<EFBFBD> <0B> <0A> <0A>c<EFBFBD><1A>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>Q<EFBFBD><0F> <10><12><1A><1A><1C> <1E> %<25> %<25> '<27><01> <0C><0E><0E><1F><1F><01>%<25><18>K<EFBFBD>K<EFBFBD>6<>6<> <10>M<EFBFBD>M<EFBFBD><<3C>
<EFBFBD> <09> <14>I<EFBFBD><01> <0F>;<3B>;<3B> +<2B> +<2B> +<2B><1C> <0B> <0B>/<2F>/<2F><14><0E><0E>)<29>)<29>4<EFBFBD>0<><0E>I<EFBFBD> <0E>J<EFBFBD>J<EFBFBD>,<2C> -<2D> <0A>K<EFBFBD>K<EFBFBD><04><06><06> <1F> <0A>L<EFBFBD>L<EFBFBD><19> #<23><18>$<24><11> <0A> <0A>d<EFBFBD>#<23><11> <0C> <0C>Y<EFBFBD>'<27><11> <0A> <0A>e<EFBFBD>$<24> <10>N<EFBFBD>N<EFBFBD> (<28> (<28><11> +<2B>*.<2E>D<EFBFBD>N<EFBFBD>N<EFBFBD> '<27> <10>N<EFBFBD>N<EFBFBD> -<2D> -<2D> /<2F> <0A>J<EFBFBD>J<EFBFBD>,<2C> -<2D> <0A>L<EFBFBD>L<EFBFBD><19> #<23> <10>N<EFBFBD>N<EFBFBD> (<28> (<28><11> +<2B> <10>N<EFBFBD>N<EFBFBD> )<29> )<29>#<23>%8<>:J<> rc <0C><><00>VP4pVP4pVP4pVP4\RPW#V44h)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
<EFBFBD>CGSS-API Error:
Major Status: {}
Minor Status: {}
Error Message: {}
<EFBFBD><04>get_intrPr r<<00>rr2<00>
maj_status<EFBFBD>
min_status<EFBFBD>err_msgs&& rr;<00> KexGSSGroup1._parse_kexgss_error*<00>Q<00><00><17>Y<EFBFBD>Y<EFBFBD>[<5B>
<EFBFBD><16>Y<EFBFBD>Y<EFBFBD>[<5B>
<EFBFBD><13>,<2C>,<2C>.<2E><07> <09> <0C> <0C><0E><1A> <04> <0B>F<EFBFBD><1A><07><0E> 
<EFBFBD>
r)rrrrrrN)<18>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__r$r#rrrHrrI<00>NAMErr3r@r r8r9r:r7r;<00>__static_attributes__<5F>__classdictcell__<5F><01> __classdict__s@rr r Lsn<00><><00><00><08> K<04>A<EFBFBD> <09>A<EFBFBD> <20><14><0E><18>A<EFBFBD><1C>5<><15>!<21>A<EFBFBD> <0A><15> 5<>D<EFBFBD><13>
<EFBFBD>4.<2E>,,<2C> P<01><11>.+,<2C>Z6<0E>p
<EFBFBD>
rr c<00>&<00>]tRtRtRtRt^tRtRtR#)<07> KexGSSGroup14iDz<>
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<EFBFBD><00><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26>U<EFBFBD>G9
tcb0]Q\-<2D>:<3A>$<24>90.`U<>_<EFBFBD>b;YS7x]Ek<1F>`:xds<64>! ,w<G<>8<EFBFBD>qbd R _ <0C><08>h<EFBFBD><13>d<EFBFBD>d<EFBFBD><06>Y6K<36>pRT{<7B>U<08>j<EFBFBD>K<>#<23>Gt|<7C>L<EFBFBD><1F><0F>4<EFBFBD>S<EFBFBD>8<EFBFBD> <20>FYpw,(.><00>=<3D>H<EFBFBD>G2C<32>d<EFBFBD>c_<12>.K?&j<>_<EFBFBD>c<EFBFBD>}<7D>z[\V<>_1M.D<>^<5E>/1v5 I <09>j<EFBFBD>V&|<7C> <0A>/<2F>mV<>lR<><6#<23>{n4<0E>(EY91<39>T<EFBFBD>:<3A>g8 H <09>Ap<>cb4B<34>B<EFBFBD>j~H<><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z)gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==<3D>N) r<>r<>r<>r<>r<>r$r#r<>r<>r<>rrr<>r<>Ds<00><00><08> K<08>A<EFBFBD> <09>A<EFBFBD> 6<>Drr<>c<00>va<00>]tRtRtoRtRtRtRtRtRt Rt
R t R
t R t R tR tRtRtRtRtRtVtR#)<14> KexGSSGexiPz<>
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==<3D><00> ic<08><><00>WnVPPVnRVnRVnRVnRVnRVnRVnRVn RVn
R#)NF) rrrr<00>p<>q<>grrr<00> old_stylers&&rr<00>KexGSSGex.__init__[sP<00><00>"<22><0E><1A>n<EFBFBD>n<EFBFBD>0<>0<><04> <0B><1C><04> <0A><15><04><06><15><04><06><15><04><06><15><04><06><15><04><06><15><04><06><1E><04>rc <0C>
<00>VPP'd"VPP\4R#VPPVn\ 4pVP \4VPVP4VPVP4VPVP4VPPV4VPP\4R#)zF
Start the GSS-API / SSPI Authenticated Diffie-Hellman Group Exchange
N)rr!r%<00>MSG_KEXGSS_GROUPREQrr
r'<00>c_MSG_KEXGSS_GROUPREQ<45>add_int<6E>min_bits<74>preferred_bits<74>max_bitsr,<00>MSG_KEXGSS_GROUPr1s& rr3<00>KexGSSGex.start_kexgs<><00><00> <10>><3E>><3E> %<25> %<25> %<25> <10>N<EFBFBD>N<EFBFBD> )<29> )<29>*=<3D> ><3E> <12><1D><0E><0E>/<2F>/<2F><04> <0A> <13>I<EFBFBD><01> <09>
<EFBFBD>
<EFBFBD>(<28>)<29> <09> <09> <09>$<24>-<2D>-<2D> <20> <09> <09> <09>$<24>%<25>%<25>&<26> <09> <09> <09>$<24>-<2D>-<2D> <20> <0C><0E><0E>$<24>$<24>Q<EFBFBD>'<27> <0C><0E><0E>%<25>%<25>&6<>7rc <0C><><00>V\8XdVPV4#V\8XdVPV4#V\8XdVP V4#V\ 8XdVPV4#V\8XdVPV4#V\8XdVPV4#V\8XdVPV4#Rp\VPV44h)r6z'KexGex asked to handle packet type {:d})r<><00>_parse_kexgss_groupreqr<71><00>_parse_kexgss_groupr&<00>_parse_kexgss_gex_initr-r8r.r9r/r:r0r;r r<r=s&&& rr@<00>KexGSSGex.parse_nextzs<><00><00> <11>'<27> '<27><17>.<2E>.<2E>q<EFBFBD>1<> 1<> <12>&<26> &<26><17>+<2B>+<2B>A<EFBFBD>.<2E> .<2E> <12>o<EFBFBD> %<25><17>.<2E>.<2E>q<EFBFBD>1<> 1<> <12>(<28> (<28><17>-<2D>-<2D>a<EFBFBD>0<> 0<> <12>)<29> )<29><17>.<2E>.<2E>q<EFBFBD>1<> 1<> <12>)<29> )<29><17>.<2E>.<2E>q<EFBFBD>1<> 1<> <12>&<26> &<26><17>+<2B>+<2B>A<EFBFBD>.<2E> .<2E>7<><03><1A>3<EFBFBD>:<3A>:<3A>e<EFBFBD>,<2C>-<2D>-rc<08><><00>VP^,
^,p\P!V^4p\V^,4p\ V4p^<5E>pV^<5E>,'gV^,pV^,pK#\
P !V4p\V^,V4VR,,p\P!V^4pV^8<>gKXWq8gK`Ypn R#)rDrCN)
r<EFBFBD>r <00> deflate_longr<00>lenrFrGrrJr)rr<><00>qnorm<72>qhbyte<74>
byte_count<EFBFBD>qmaskrKrs& rr <00>KexGSSGex._generate_x<5F>s<><00><00> <11>V<EFBFBD>V<EFBFBD>a<EFBFBD>Z<EFBFBD>A<EFBFBD> <1D><01><14>!<21>!<21>!<21>Q<EFBFBD>'<27><05><19>%<25><01>(<28>#<23><06><18><15>Z<EFBFBD>
<EFBFBD><14><05><19>D<EFBFBD>=<3D>=<3D> <12>q<EFBFBD>L<EFBFBD>F<EFBFBD> <11>a<EFBFBD>K<EFBFBD>E<EFBFBD><12><18>j<EFBFBD>j<EFBFBD><1A>,<2C>G<EFBFBD><1F><07><01>
<EFBFBD>E<EFBFBD>2<>W<EFBFBD>R<EFBFBD>[<5B>@<40>G<EFBFBD><14>!<21>!<21>'<27>1<EFBFBD>-<2D>A<EFBFBD><11>A<EFBFBD><05>A<EFBFBD>E<EFBFBD><15><12>rc <0C>(<00>VP4pVP4pVP4pW0P8<>d VPpW0P8d VPpW#8<>dTpWC8dTpW nW0nW@nVPP 4pVf \ R4hVPP\RPW#V44VPW#V4wVn Vn \4pVP\4VP!VP4VP!VP4VPP#V4VPP%\&4R#)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 packzPicking p ({} <= {} <= {} bits))r<>r<>r<>r<>r<00>_get_modulus_packr <00>_logrr<<00> get_modulusr<73>r<>r
r'<00>c_MSG_KEXGSS_GROUPr+r,r%r&)rr2<00>minbits<74> preferredbits<74>maxbits<74>packs&& rr<><00> KexGSSGex._parse_kexgss_groupreq<65>s2<00><00><14>)<29>)<29>+<2B><07><19> <09> <09> <0B> <0A><13>)<29>)<29>+<2B><07> <18>=<3D>=<3D> (<28> <20>M<EFBFBD>M<EFBFBD>M<EFBFBD> <18>=<3D>=<3D> (<28> <20>M<EFBFBD>M<EFBFBD>M<EFBFBD> <13> "<22>#<23>G<EFBFBD> <12> "<22>#<23>G<EFBFBD><1F> <0A>+<2B><1B><1F> <0A><13>~<7E>~<7E>/<2F>/<2F>1<><04> <0F><<3C><1E>N<>O<> O<> <0C><0E><0E><1B><1B> <11> -<2D> 4<> 4<><17><07> <0E>
<EFBFBD> <1E>)<29>)<29>'<27>'<27>J<><0E><04><06><04><06> <13>I<EFBFBD><01> <09>
<EFBFBD>
<EFBFBD>%<25>&<26> <09> <0B> <0B>D<EFBFBD>F<EFBFBD>F<EFBFBD><1B> <09> <0B> <0B>D<EFBFBD>F<EFBFBD>F<EFBFBD><1B> <0C><0E><0E>$<24>$<24>Q<EFBFBD>'<27> <0C><0E><0E>%<25>%<25>o<EFBFBD>6rc <0C>8<00>VP4VnVP4Vn\P!VP4pVR8gVR8<>d\ RP V44hVPP\RP V44VP4\VPVPVP4Vn \4pVP\ 4VP#VP$P'VP(R74VP+VP4VPP-V4VPP/\0\2\4\64R#)z~
Parse the SSH2_MSG_KEXGSS_GROUP message (client mode).
:param `Message` m: The content of the SSH2_MSG_KEXGSS_GROUP message
r<EFBFBD>r<>z<Server-generated gex p (don't ask) is out of range ({} bits)zGot server p ({} bits)rN)rcr<>r<>r <00>
bit_lengthr r<rr<>rr r"rrr
r'r(r)rr*rr+r,r%r-r.r/r0)rr2<00>bitlens&& rr<><00>KexGSSGex._parse_kexgss_group<75>s<00><00> <13><1B><1B><1D><04><06><12><1B><1B><1D><04><06><15><1F><1F><14><16><16>(<28><06> <12>T<EFBFBD>M<EFBFBD>v<EFBFBD><04>}<7D><1E><1C>"<22>F<EFBFBD>6<EFBFBD>N<EFBFBD><0E> <0E> <0A><0E><0E><1B><1B> <11>+<2B>2<>2<>6<EFBFBD>:<3A>
<EFBFBD> <0A><18><18><1A><14>T<EFBFBD>V<EFBFBD>V<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>,<2C><04><06> <13>I<EFBFBD><01> <09>
<EFBFBD>
<EFBFBD>$<24>%<25> <09> <0C> <0C>T<EFBFBD>[<5B>[<5B>5<>5<>T<EFBFBD>]<5D>]<5D>5<>K<>L<> <09> <0B> <0B>D<EFBFBD>F<EFBFBD>F<EFBFBD><1B> <0C><0E><0E>$<24>$<24>Q<EFBFBD>'<27> <0C><0E><0E>%<25>%<25> <1E> <1F> <1F> <1C> 
rc <0C>j<00>VP4pVP4VnVP^8g#VPVP^,
8<>d \ R4hVP 4\ VPVPVP4Vn \ VPVPVP4p\4VPn VPPP4p\4pVPVPP VPP"VPP$VPP&V4VP)VP*4VP)VP,4VP)VP.4VP1VP4VP1VP4VP1VP4VP1VP4VP1V4\3VP544P74pVPP9W64VP:P=VP>V4p\4pVP:P@'d<>VP:PCVPPDRR7pVPG\H4VP1VP4VPKV4Ve$VPMR4VPKV4MVPMR4VPPOV4RVPn(VPPS4R#VPG\T4VPKV4VPPOV4VPPW\X\Z\\4R#)z|
Parse the SSH2_MSG_KEXGSS_INIT message (server mode).
:param `Message` m: The content of the SSH2_MSG_KEXGSS_INIT message
ryTrzNF)/rPrcrr<>r r r"r<>rrrbrrQrjr
rergrfrirhr<>r<>r<>r<>r+rr|rlrmrr}rr~rr<>r'r<>r)r<>r,rorpr[r%r.r/r0r<>s && rr<><00> KexGSSGex._parse_kexgss_gex_init<69>s<><00><00> <19>|<7C>|<7C>~<7E> <0C><12><1B><1B><1D><04><06> <10>F<EFBFBD>F<EFBFBD>Q<EFBFBD>J<EFBFBD>D<EFBFBD>F<EFBFBD>F<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>a<EFBFBD>Z<EFBFBD>/<2F><1E>?<3F>@<40> @<40> <0C><18><18><1A><14>T<EFBFBD>V<EFBFBD>V<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>,<2C><04><06> <0F><04><06><06><04><06><06><04><06><06> '<27><01>"-<2D>-<2D><04><0E><0E><1F><12>n<EFBFBD>n<EFBFBD>%<25>%<25>-<2D>-<2D>/<2F><03><15>Y<EFBFBD><02>
<EFBFBD><06><06> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <10>N<EFBFBD>N<EFBFBD> (<28> (<28> <10>N<EFBFBD>N<EFBFBD> *<2A> *<2A> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <0F> 
<EFBFBD> <0B>
<EFBFBD>
<EFBFBD>4<EFBFBD>=<3D>=<3D>!<21>
<EFBFBD>
<EFBFBD>
<EFBFBD>4<EFBFBD>&<26>&<26>'<27>
<EFBFBD>
<EFBFBD>
<EFBFBD>4<EFBFBD>=<3D>=<3D>!<21>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>Q<EFBFBD><0F> <10><12><1A><1A><1C> <1E> %<25> %<25> '<27><01> <0C><0E><0E><1F><1F><01>%<25><18>K<EFBFBD>K<EFBFBD>6<>6<> <10>M<EFBFBD>M<EFBFBD><<3C>
<EFBFBD> <09> <14>I<EFBFBD><01> <0F>;<3B>;<3B> +<2B> +<2B> +<2B><1C> <0B> <0B>/<2F>/<2F><14><0E><0E>)<29>)<29>4<EFBFBD>0<><0E>I<EFBFBD> <0E>J<EFBFBD>J<EFBFBD>,<2C> -<2D> <0A>K<EFBFBD>K<EFBFBD><04><06><06> <1F> <0A>L<EFBFBD>L<EFBFBD><19> #<23><18>$<24><11> <0A> <0A>d<EFBFBD>#<23><11> <0C> <0C>Y<EFBFBD>'<27><11> <0A> <0A>e<EFBFBD>$<24> <10>N<EFBFBD>N<EFBFBD> (<28> (<28><11> +<2B>*.<2E>D<EFBFBD>N<EFBFBD>N<EFBFBD> '<27> <10>N<EFBFBD>N<EFBFBD> -<2D> -<2D> /<2F> <0A>J<EFBFBD>J<EFBFBD>,<2C> -<2D> <0A>L<EFBFBD>L<EFBFBD><19> #<23> <10>N<EFBFBD>N<EFBFBD> (<28> (<28><11> +<2B> <10>N<EFBFBD>N<EFBFBD> )<29> )<29>#<23>%8<>:J<> rc <0C><><00>VP4pW PnVP4pVPPW#4VPP \
\ 4R#)z<>
Parse the SSH2_MSG_KEXGSS_HOSTKEY message (client mode).
:param `Message` m: The content of the SSH2_MSG_KEXGSS_HOSTKEY message
NrOrSs&& rr8<00>KexGSSGex._parse_kexgss_hostkey1rVrc <0C><><00>VPP'g<>VP4p\4pVP \
4VP VPPVPVR74VPPV4VPP\\\4R#R#)zv
Parse the SSH2_MSG_KEXGSS_CONTINUE message.
:param `Message` m: The content of the SSH2_MSG_KEXGSS_CONTINUE message
rXNrZr]s&& rr9<00> KexGSSGex._parse_kexgss_continue>s<><00><00> <14>~<7E>~<7E>)<29>)<29>)<29><19> <0C> <0C><0E>I<EFBFBD><17> <09>A<EFBFBD> <0A>J<EFBFBD>J<EFBFBD>,<2C> -<2D> <0A>L<EFBFBD>L<EFBFBD><14> <0B> <0B>0<>0<><1F>=<3D>=<3D>Y<EFBFBD>1<><12> <0E>
<11>N<EFBFBD>N<EFBFBD> '<27> '<27><01> *<2A> <10>N<EFBFBD>N<EFBFBD> )<29> )<29>#<23>%8<>:J<> <0E> rc <0C>|<00>VPPf\4VPnVP4VnVP 4pVP 4pRpV'dVP 4pVP^8g#VPVP^,
8<>d \R4h\VPVPVP4p\4pVPVPPVPPVPPVPP VPPP#44VP$'gVP'VP(4VP'VP*4VP$'gVP'VP,4VP/VP4VP/VP04VP/VP24VP/VP4VP/V4\5VP744P94pVPP;WW4VeDVP<P?VP@VR7VP<PCW'4MVP<PCW'4RVPn"VPPG4R#)z<>
Parse the SSH2_MSG_KEXGSS_COMPLETE message (client mode).
:param `Message` m: The content of the SSH2_MSG_KEXGSS_COMPLETE message
NrarXT)$rrQrbrcrrPrdr<>r r"rr
rerfrgrhrirjr<>r<>r<>r<>r<>r+r<>rrr|rlrmrr*rrnrorprqs&& rr:<00> KexGSSGex._parse_kexgss_completeTs<00><00> <10>><3E>><3E> "<22> "<22> *<2A>&1<>m<EFBFBD>D<EFBFBD>N<EFBFBD>N<EFBFBD> #<23><12><1B><1B><1D><04><06><15>L<EFBFBD>L<EFBFBD>N<EFBFBD> <09><10>}<7D>}<7D><EFBFBD><04><18> <09> <0F><19> <0C> <0C><0E>I<EFBFBD> <10>F<EFBFBD>F<EFBFBD>Q<EFBFBD>J<EFBFBD>D<EFBFBD>F<EFBFBD>F<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD>a<EFBFBD>Z<EFBFBD>/<2F><1E>?<3F>@<40> @<40> <0F><04><06><06><04><06><06><04><06><06> '<27><01><15>Y<EFBFBD><02>
<EFBFBD><06><06> <10>N<EFBFBD>N<EFBFBD> (<28> (<28> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <10>N<EFBFBD>N<EFBFBD> )<29> )<29> <10>N<EFBFBD>N<EFBFBD> *<2A> *<2A> <10>N<EFBFBD>N<EFBFBD> #<23> #<23> +<2B> +<2B> -<2D> 
<EFBFBD><14>~<7E>~<7E>~<7E> <0E>J<EFBFBD>J<EFBFBD>t<EFBFBD>}<7D>}<7D> %<25>
<EFBFBD>
<EFBFBD>
<EFBFBD>4<EFBFBD>&<26>&<26>'<27><13>~<7E>~<7E>~<7E> <0E>J<EFBFBD>J<EFBFBD>t<EFBFBD>}<7D>}<7D> %<25>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>T<EFBFBD>V<EFBFBD>V<EFBFBD><1C>
<EFBFBD> <0C> <0C>Q<EFBFBD><0F> <10><12><1A><1A><1C> <1E> %<25> %<25> '<27><01> <0C><0E><0E><1F><1F><01>%<25> <14> <20> <10>K<EFBFBD>K<EFBFBD> ,<2C> ,<2C><1B>}<7D>}<7D><19> -<2D> <0E> <11>K<EFBFBD>K<EFBFBD> %<25> %<25>i<EFBFBD> 3<> <10>K<EFBFBD>K<EFBFBD> %<25> %<25>i<EFBFBD> 3<>&*<2A><04><0E><0E>#<23> <0C><0E><0E>)<29>)<29>+rc <0C><><00>VP4pVP4pVP4pVP4\RPW#V44h)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<EFBFBD>r<>r<>s&& rr;<00>KexGSSGex._parse_kexgss_error<6F>r<>r) rrr<>rrr<>r<>r<>r<>r<>r<>rrN)r<>r<>r<>r<>r<>r<>r<>r<>r<>rr3r@r r<>r<>r<>r8r9r:r;r<>r<>r<>s@rr<>r<>Psa<00><><00><00><08>
3<>D<EFBFBD><13>H<EFBFBD><13>H<EFBFBD><19>N<EFBFBD>
<1F>8<>&.<2E>4<13>$*7<>X
<EFBFBD>B<<0E>| P<01><11>,0,<2C>d
<EFBFBD>
rr<>c<00>6a<00>]tRtRtoRtRtRtRtRtVt R#)rbi<>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<08><00>RVnR#)<02>N<>r<><00>rs&rr<00>NullHostKey.__init__<5F>s <00><00><15><04>rc<08><00>VP#rr<>r<>s&rrj<00>NullHostKey.__str__<5F><00> <00><00><13>x<EFBFBD>x<EFBFBD>rc<08><00>VP#rr<>r<>s&r<00>get_name<6D>NullHostKey.get_name<6D>r<>rr<>N)
r<EFBFBD>r<>r<>r<>r<>rrjr<>r<>r<>r<>s@rrbrb<00>s<00><><00><00><08> <16><18><18>rrb)$r<>rF<00>hashlibr<00>paramiko.commonrrrrrr<00>paramikor <00>paramiko.messager
<00>paramiko.ssh_exceptionr <00>ranger&r.r/r-r0r<>r<>r(r[r<><00>c_MSG_KEXGSS_HOSTKEY<45>c_MSG_KEXGSS_ERRORr<52>r<>r r<>r<>rb)<01>cs0r<00><module>r<>s<><00><01>.<04>"
<EFBFBD><18><02><02><1A>$<24>/<2F>
<EFBFBD>"<22>b<EFBFBD>M<EFBFBD> <02><13><17><17><16><14>*/<2F><02>B<EFBFBD>-<2D>'<27><14>&<26> <20><02>B<EFBFBD>-<2D>(<28>-<2D>Q<EFBFBD>X<EFBFBD>a<EFBFBD>[<5B>-<2D>(<28> <02><15><19><19><18><16><1F>r<EFBFBD>2<EFBFBD><1D>/<02>&<26>A<EFBFBD>H<EFBFBD>Q<EFBFBD>K<EFBFBD><1D>/<02>+<2B><16>*<2A>
u
<EFBFBD>u
<EFBFBD>p 7<>L<EFBFBD> 7<>M
<EFBFBD>M
<EFBFBD>`
<18><18><>u)<29><>/s <00>B<<04>:C