7x  java/lang/Object()V   org/freertr/sec/secSshlowerLorg/freertr/pipe/pipeSide;  org/freertr/pipe/pipeSidesetTime(I)V  userPLorg/freertr/pipe/pipeLine;  org/freertr/pipe/pipeLinegetSide()Lorg/freertr/pipe/pipeSide;  userS " # userC % &'clientZ ) *+clntUserLjava/lang/String; - .+clntPass 0 12 clntPubkey[B 4 5 workerStart 7 89servAuthLorg/freertr/auth/authGeneric; ; <=keyrsaLorg/freertr/cry/cryKeyRSA; ? @AkeydsaLorg/freertr/cry/cryKeyDSA; C DEkeyecdsaLorg/freertr/cry/cryKeyECDSA;Gjava/lang/Thread FI J(Ljava/lang/Runnable;)V FL Mstart O P workerClient R S workerServerUjava/lang/Exception WXY Z[org/freertr/util/logger traceback(Ljava/lang/Throwable;)V ] ^_setClose()Z a ^ cde f'org/freertr/util/debugger secSshTrafh main stopped Wj kldebug(Ljava/lang/String;)V nop q+org/freertr/pack/packSshAuthmethodsorg/freertr/pack/packSshunone wxy z{java/lang/Stringequals(Ljava/lang/Object;)Z n} ~+username  org/freertr/auth/authGeneric authUserNone1(Ljava/lang/String;)Lorg/freertr/auth/authResult;  servUserLorg/freertr/auth/authResult;  org/freertr/auth/authResultresultIpassword n +  authUserPassC(Ljava/lang/String;Ljava/lang/String;)Lorg/freertr/auth/authResult; publickeyorg/freertr/pack/packSshSign l n 2pkeySign getKeyVerifier!()Lorg/freertr/cry/cryKeyGeneric; n 2pkeyBlob  org/freertr/cry/cryKeyGeneric sshReader([B)Z  authUserPkeyP(Lorg/freertr/cry/cryKeyGeneric;Ljava/lang/String;)Lorg/freertr/auth/authResult; n authPkeyCreate r packSend   doPackRecv(Lorg/freertr/pack/packSsh;)V n _ authReqParse getKeyHashAlgo"()Lorg/freertr/cry/cryHashGeneric; getKeyHashAlgn()Ljava/lang/String; n getAuthen2signed()[B (Lorg/freertr/cry/cryKeyGeneric;Lorg/freertr/cry/cryHashGeneric;Ljava/lang/String;[BLjava/lang/String;[B)Lorg/freertr/auth/authResult;  _setReady r  copyBytes()Lorg/freertr/pack/packSsh;  pckRxLorg/freertr/pack/packSsh;  pckTxorg/freertr/sec/secSshRx (Lorg/freertr/sec/secSsh;)Vorg/freertr/sec/secSshTx  org/freertr/util/bitssleep  isClosed()I r packRecv r pckTyporg/freertr/pack/packSshChan  _chanWindowParseorg/freertr/pack/packSshInit _extensInfoParse  _ chanDataParse  2buf  morePut([BII)I    chanBytes  _ chanOpenParse  chanRem  openFailCreate  _ chanReqParse  processChanReq;(Lorg/freertr/pack/packSsh;Lorg/freertr/pack/packSshChan;)Z  ' needReply  ! "chanFailCreate $ %chanSuccCreate r' ( pipe * +getTime - .window 0 1chanWindowCreate 3 4 blockingGet 6 7 nonBlockGet 9 :chanDataCreate < =+type?xon-xoffAsignalC window-change rE FGpckDatLorg/freertr/pack/packHolder; IJK LMorg/freertr/pack/packHoldermsbGetD(I)I OPQ RSorg/freertr/user/userReader setTermWdt(Lorg/freertr/pipe/pipeSide;I)V OU VS setTermLenXstarting r [ \exchangeVersion^org/freertr/pack/packSshKex ] a b+ remoteVersion ]d elhashStr g hgetLocalVersion ]j khashSwap m n kexInitFill p qr kexInitCreate(Z)V ]t uhashPck ]w x hashMerge z {| kexInitParse(Z)Z ~  kexInitChoose?(Lorg/freertr/pack/packSshInit;Lorg/freertr/pack/packSshInit;)Z   getDHgroup()Lorg/freertr/cry/cryKeyDH; ] difHelLorg/freertr/cry/cryKeyDH;   getDHhash ] hasher Lorg/freertr/cry/cryHashGeneric;  kexKeysLorg/freertr/pack/packSshSign;   getKeySigner_(Lorg/freertr/cry/cryKeyGeneric;Lorg/freertr/cry/cryKeyGeneric;)Lorg/freertr/cry/cryKeyGeneric;   sshWriter ] 2cert ] hashInt ] hashBuf([B)V ] hashPay ] _ gexReqParse ]  gexGroupFill ] gexGroupCreate  org/freertr/cry/cryKeyDHmodulusLjava/math/BigInteger; ] hashBig(Ljava/math/BigInteger;)V  group ] _ gexInitParse  servXchg  servKey ] hashCalc ]  gexReplyFillT(Lorg/freertr/cry/cryHashGeneric;Ljava/lang/String;Lorg/freertr/cry/cryKeyGeneric;)V ] gexReplyCreate ] {_ ] kexReplyCreate  _newKeysExchange ] encSetup"(Lorg/freertr/pack/packSshInit;Z)V  'kexExts  extensInfoCreate n :(Lorg/freertr/pack/packSsh;Lorg/freertr/pack/packSshKex;)V n _ servReqParse n +service ssh-userauth n lservActpCreate   serverAuther;(Lorg/freertr/pack/packSsh;Lorg/freertr/pack/packSshAuth;)I  random(II)I n authFailCreateorg/freertr/pipe/pipeSetting   settingsPut(ILjava/lang/Object;)V n authSuccCreate  openDoneCreate   chanLoc   shellexec subsystempty-req r  stringReadenv   workerThreads ]  gexReqFill ] ! gexReqCreate ]# $_ gexGroupParse ]& ' gexInitFill ]) * gexInitCreate ], -_ gexReplyParse ]/ q ]1 2_ kexReplyParse 4 5clntKey 7 89byteComp ([BI[BII)I ]; <2hashVal ]> ?2sign A BC sshVerify9(Lorg/freertr/cry/cryHashGeneric;Ljava/lang/String;[B[B)Z nE Fl servReqCreate nH I_ servAcptParseKssh-connection nM Nl authReqCreate nP Q_ authSuccParse S TchanOpenCreate V W_ openDoneParse Y ZchanReqCreatePty \ ]_ chanSuccParse _ `chanReqCreateShllbjava/lang/RunnableportNum ConstantValue9(Lorg/freertr/pipe/pipeSide;Lorg/freertr/pipe/pipeLine;)VCodeLineNumberTablegetPipe startClient)([BLjava/lang/String;Ljava/lang/String;)V startServert(Lorg/freertr/auth/authGeneric;Lorg/freertr/cry/cryKeyRSA;Lorg/freertr/cry/cryKeyDSA;Lorg/freertr/cry/cryKeyECDSA;)Vrun StackMapTableqorg/freertr/cry/cryHashGeneric workerStopworkerRxworkerTx2 SourceFile secSsh.java!a # &' 89<=@ADE12*+.+  cdefgr:**+* *,*,*,!*! * h& ~ '09ig*!hjkgE*$*,(*-,*+/*3h lmgO*$*+6*,:*->*B*3h 5g( FY*HKh  ng5*$ *N*QL+V*\W*`bgiTh. ")/4o BTg\M,mtv***6,|**,mv.**6,|,**,mvY,N,[-:,**6,|**,+*+,-:-:-:,**6,,|,ʵ**h2 "$/13?RY[fhjvx 5<>I K o-$ '      p w % gx;*W*+е*+еػY*WY*W*h"!*0:o*rg0*`*\Wh !"gt++khhhU5hPh]DY+M,Y+N-h* &'L)U*\+]/f0m1p9s;o Ksg/_Y*ԷL*Զ*ԴD AAAPAZ}]9^R_Rb+*++W*Y +` x+ +=Y*طL++*ضY*ԷL@+**+;+"Y*طL+*+ *ضY*ԷL+Y*طL+*+#*ضY*ԷL+h(D FGlJsKtMNOQRTUVWXYZ\]_`acdef ghj"k%m1n9o=pDqPrStZu[|^~o _"/- -tgY»Y*طL*ش&*)* ++*+* ,+/*ض*Y +,d M*,2>*,,d566+`+}>++,3T+*+8*ضMhf '/7;BOU`dety|o BugM,;>v,;@v,;Bv#*+DHN*+DHTh&  +:IKo,Sgyb WirYYL+*&Y+M,Z]Y+_N-,`c-fc-i,l,o-s+*+-i-s-v,y,,}-,-,,*>*::------|*+-----+----*+-----,,-+>*+-љ----,,-+,֙-,,ݙ ,+nY+-:*+v+6*+7*+6+ `+**+*+Y+: ** +*+**+#+; v#+;v#+;v#+~;v:+W*+DHN*+DHT/#+#;v #+ +*+h %)2:AEINRV[_cgopyz *.5:ABIPThlpwx~       !!&"*#/$9%A&B(K)P*Y+]-b.j/k1t2~3459:;<@ABCGHIJNO PQ)R1S6T=XKYSZX[__g`lasdxeoG cr] R *0 -n, &!!!D!PgJb WirYYL+*&]Y+_MY+N-Z,fc,-`c-l-o,s+*+,s,i-y--},-,-,O,,,+*+,",,,,,%,(+*+,+,%,.+*+,0,3,i,,,,,v,*/'*/,*/,*/6-:,--,:,=@-֙,-ٻnY+,:D+*+G*(|*,JL+*+OY+:R* +*+U**X+*+[*^+*+[*+hbhi klm%n.o2p9qArEsJtNuRvWw[x_ygzh|q}rz &'<=FRSqryz #$-26;CDIo, [r] 3.8*n+)(vw