Subject: For the interested ones : libssh2_userauth_publickey_fromfile and libssh2_userauth_hostbased_fromfile with no need of the publickey file

For the interested ones : libssh2_userauth_publickey_fromfile and libssh2_userauth_hostbased_fromfile with no need of the publickey file

From: Jean-Louis CHARTON <Jean-Louis.CHARTON_at_oikialog.com>
Date: Fri, 27 Mar 2009 12:02:55 +0100

Hi all,

I've made it possible to pass a NULL pointer for the publickey parameter
of libssh2_userauth_publickey_fromfile and
libssh2_userauth_hostbased_fromfile functions.
In this case, the functions recompute the public key from the private
key file data.
It's implemented in the following functions:
write_bn()
gen_publickey_from_rsa()
gen_publickey_from_dsa()
gen_publickey_from_rsa_evp()
gen_publickey_from_dsa_evp()
gen_publickey_from_private_keyfile()

I've made the changes in userauth.c file from version 1.0 of libssh2
source code.
At this time, my code support rebuild of the publickey for RSA and DSA
private key files.
The rsa1 (i.e SSH PRIVATE KEY FILE FORMAT 1.1) private key file format
is not yet implemented.

I tested both RSA and DSA keys and it works fine.

I don't pretend the way I coded it is perfect or fully compliant with
the rest of libssh2 code.
I'm new to libssh2 project so maybe I introduced duplicated code because
I'm not aware of all the code already written ...
So well, feel free to send me comments and rewrite it partially or
totally if you think it's necessary.

Regards,

Jean-Louis Charton

begin 644 userauth.c.gz
M'XL("#6QS$D"`W5S97)A=71H+F,`[#UK=]K(DM_Y%1WF;`P$.W;&=^>1<6:Q
MD6W..,`"3FXV-X<C4`.ZD24B"3N>3/:W;U6W6FJ]'V#/[,SXG!"0NJOKW=75
MK=+S%CFSUO>VOERYI#%ODA>'A\?[\/%=FXQ56R47ED%O+)/\Y,"OY7\9^LQQ
M5B\.+'OYJD9:I&,8A'5VB$T=:M]2[0"NXZT1U73'M?79QM4!@&IJ9.-0HIO$
ML3;VG+(K,]U4[7NRL.P;IXV][G1W12R;_6]M7')C:?I"GZL(HTU4FY(UM6]T
MUZ4:6=O6K:Y1#?NY*]6%#PJ@#,.ZT\TEF5NFIF,_A_6[H>Z/'FHD_at_IQ#K(7`
M:FYIT';CN$"0JP*V"%2=6;>4]YS[[#(M5Y_3-C30'6(`.(0B#PKT06?>+4`+
M!IX;JGY#[8-4=&!8B3,"':!7VP"*VV(4(,,!!!@1CU[-FF]NJ.FJ0G3/0206
MW+')C>I26U<-A_<5,N""8WTE2@(*^U1GW;&%J=Y0Q`R_!\BO+$.#!J85-/+&
M@*:J>>^-#^1P\);M`#+W9$91KX`PBU!3_at_ZL`V_:1N[%<2CCC0$=A`!U4E"S@
M!N>28RW<.U0/3^%X1V=-YZAVT%-'9;11X4RN>HXC$3:Y[(W)>'`^>=L9*02^
M#T>#-[VNTB6G[^"F0LX&PW>CWL7EA%P.KKK*:$PZ_2[V/!OT)Z/>Z?5D`-?J
MG3%TKN,]^/>.*/\<CI3QF`Q&I/=Z>-4#>##`J-.?])0QLY->_^SJNMOK7[0)
MP"#]P81<]5[W)M!R,FBSH>,]L>/@G+Q61F>7<*5SVKOJ3=ZQ4<][DSZ.>`Y#
M=LBP,YKTSJZO.B,RO!X-!V.%&3N0V.V-SZXZO==*]P!P@'&)\D;I3\CXLG-U
M%:%X\+:OC("&&+FG"B#;.;U2^'!`<+<W4LXF;0`9?#L#/@*25XS>\5`YZ\%W
M8(T"='5&[]K('0`[5O[[&MK!3=+MO.Y<*&/2"+B#?9,8!'(ZNQXIKQ%W8,GX
M^G0\Z4VN)PJY&`RZ8P_KL3)ZTSM3QB_)U0#%<4ZNQTH;QIETV/``!1@'M^'[
MZ?6XARSDTIDHH]'U<-(;])L@^;?`)$"V`[V[C-V#/B,;^#48O4.XR`\F#8;Q
MVTL%;HV0PXQQ'>3(&!AX-I%:XJC`SXE$+W;N*Q=7O0NE?Z9@@P$">ML;*TV0
M7P]0O$"H./C;#HQ\S<B'-M_at_3T.._)*5N,P&3WCGI=-_T$'_>GH!6C'L<$T^O
MQM=GEYX,T#Z>UVK?Z.;<V(!#K7L3QQ0,ZO9_at_59=N_31W[]?T8/5*NN2XFF[A
MI=ISH(=2=##@"0EX%K!CHH/OFQ,+9Q+P)&M#==D$@D-^HR\TNB"7G3?*=/QN
M/+WN#::7,N1[Y_F&P_X&W(6^J-5J#OJY.=F8CKXT8:3Y2K5;S.CI=&8V(M=G
MFP7(*/L/G!0XW]/>1?_Z-?B3F9G;0S==^>?,G,[N7>HT:U]8SP@.:W*">+RL
ML9O`HRNZ<,%KJ7/*^#0#UNB__at_E-;Z?,5N#:8I<%-"C<VH^#]#Y!;V'M-GIV0
M8P]4"R$?OF3?3_M`_0N8AQJ`/S8C1TU^1U^0QI-&J\&OD:?D\//WA\TF^2*H
MO*$W-R"CQMKKUR;[^SY)',97]BG48N5:YN;;%P!QGQRW`_)?,NJ&%G"3R4-0
MQK!G$&"6WM_at_F&T;T>EG[FBK5)36GZ\W,T.<?Z?T4YX&I[:B-#/%<]4['X\L7
MTS'8-IASBSB430%9(AV-.ZW0!1_at_CJ[V/I&&92^R)R!G4%.*/:`?E=+:)3W`,
M"+"6FB^3=`=`)UY?>RK@`0<]``4P-S?\9P,HV']%FRA-WMW,:&=Z[81Z_D*]
M2`9FW#H(?!]:U:$)A7^FKXF`,4`[AFO?P3_\7^#"?_G4LM9`![06TH'99W#6
M$*)!4)*NLJ8GI']]=24IJ:<Y>%6HI,!W:%MS`,7&H":$A!`K209SPIF8K,%M
M\IVGMD_at_U\VU14_-,9+Z^Q^8^0UC/H.%WW@@XGN^,H#V71%LPQ^^2T,KT5:0I
M#-S3+&C=""E,D]D>W/7@>=QAA)8R)VWWYM2-FI.V4W-:"W/Z)+XLQ9>/#V!@
MZV3#T5!@:\G`/F6T^R2U6V:T6TKM/F:-NYE-4?8Y9JLY#IHM.MM/\&^)WWG/
M#"->AXSX4^C7,O3KXY_8P)%U!0V<2Z0M&)=BX%P/?*7-:K7T-3JKE2=)7^EW
MY3+0VI*GW2F]7<=\16$'$3:O%G(<EG!:>COA#7@[)"D?)B`-&&NJJ^;##=HF
MPE;>#*?#7Y1WOBM;?Q0.*1(O`&O(B:2W!1V,1Q<$ALF]N=ORI.D)=RK46Z.S
MS;*1Y8R%8+JG%]/.]>0RL5']S+I9P]H?1N+R9B;&UMM`)*ZG;U4(X[C=W4(@
MNJX+/>-4"RY-E]0]FD*?!K`IL'36*&;I:(P=Q]G<8)KGQK+OB6H8%L\:$6K;
MEGUP<`#1L.H2:CB8==@8&M%=C(I_%L:+KM1R+3*=LLY3UB_D.$(,3G%,PC=X
MD[KO&A!YN7^,AIRQN3=,"5_]T3'.)$_%=)?G(-.'])021J`4>2YDY#FU@)#$
M\*7%[_M*<2)Q+M2"N17>XCOO1F!$W_at_U?VUMA^^*WIOXL['D?6+S40B3]&-*=
M)S$F1,@,Z(](+-[35X'SD:($,@CZ-$,2%);&L,JR-`%6&8T&(ZY?2<WJUZ8Z
M,R_at_FOCQM][4?UX"RJ2'/0#Z'84>]?U3$3VM_^VG?3T<"4>U/Z:>[.7Y:2_#3
MW:B?UOX_^6F(S1[>3VNRG]9VZ*>[PH%I^7XZ'(7^0?VTENBG(V3^[:<C^N7!
MP1!^H1OTK^.O>;*5NU;NKSDG<"V3WU9UG/7*5AT:3PXX+A?#>>]*X<T7:WXE
MF"+6'Q_?0<L:@Z+^D?P'6'42D(`3PC$L<.FWL-84UGT!FTC=KDM>"!O%K:BP
M7<1M`SF8UE(R#T0K1IUD#Q&;D&QV_1'(&BJOIS95M>F0_at_X#E.9#29H2(S\:M
MI6NMIB1V#F<Q-RR'0G/!*.0#0GT\/KRU<=X/,,-M<-V\50U=>[XQ;3JWEJ;^
M*]A%/0U"E'4L>:.ZA3CHW.GN?(4T[[_"G(:@>(Z8^),]KN%^]"&!*9V46=H3
M$G&^;=EGR#XA:O/$#R[8[@A(6=A=&+]N(?RT1\1/HPMU8[A1K`3W']:PG,UZ
M;=G\K$01U?`0E]3"YRR;>GTJ/1U"#XDS$\117[Y\P7UVL&)!SL:AMKIQ5U,\
MB8!;A%=X(@&O4-/UCG1X_&4;_6]QF^I>IQ#Q.9LYIN<6&P,F@:5NHC763<ND
M=;)2U^`E''07$!3BA'K'W,>"G1O0'3P,P+;_^Q8,!@[_!H^O_at_-]?Z,N-S0?%
MMGBB`!A)V*$5[&IMEBOLA_W9"05GQ:)/&(6[#NQ$S`T_at_Z>(Y`%-%ON)9!W:.
MXGG-#S2'/3;#D%8MD16-R$Q,@JE8FI](2R"2)E]_GL092S26T]Q>O,!AAF9@
M/$QBW$_QK(OS_ML/Y,0?X_at_LR9?IZ?#&]'BLCG)VFX^NS,\"T';]SWNE=7>,6
M\2'Y^E*D5M<J&)H[11_2.,*$LHQ:XQBO(,_U>7"AYEL?N]XX.FZR:!4P-^D<
M1899Y\`4.13^&[Y[FN$%\.%EE*=?T^1D/6EYJ7UDH3V77+\GD?U7(=%-D:44
M)P4AV?XIOS;5-8-&5CK_0VV+G66Y6UDXP:UP,L=#3<%"!@-!A[J-IRGC><RT
MZ:>-;M-;/A;P.Z83N"EJ+1IEP#3%5"<YOFA'*8B7Q0C<__9([@WW,R!(^B6[
ML,B*+`<%R4VQ_>>,YK(<TAULT?B]8!P?0B/B5Q-W(R0ORY9-#>?9LR8P,F9F
M(SSA,I[$)PRQ)>&TP_;_4A),L"$A.">:1KGDK1DE8*E@?=#R_42J$E`%ZTY'
M,$`BZ@&2.AX=O\P<JN!(S'\DM\XS$,\AQ/W!'*92F"!"DVDEQ^(!DJ5ESZ41
M/=MFVSF%C"GW+$J^.XC8(N(#X7?G[!=E,E4Z%YU>OY()\JZ9-OB6S\E@?A\)
MNC/JL"620).4,CZ>9.(45$)X/&`DCY5^MZ#G<"@_!\NPW4?%$V0D8)V<M\AR
M?!$3S7+)$694T7&<\PHYN5T05(28RM8*8G&W-U6$DF>G_AQ,/TO;-D$X5L0Z
M^=_3+6T\'PI?VAP6!\8#Y<,JHQ?N4B2R^=L],83[@SX$Y_6^Q7/K"0,_F,6'
M!)"A8N\//Z!PTA8=4;(AJGYKW;4QHM[3;JFW;'-QUT`*JG?(H-_-!7,1_!;L
M7XPGG8G"\H5XVOD,?G0?6Y;28DH":+K6BL5;&:3RLZ/RXJAKX>,*-'AP0VP(
M0;CC$`O6Y(:Z?A)9*K%#I5ENCV0C\8^8\4HD%9MKWDL]0'7)WK\.]X*.*5G@
M>,J7U(?^<RS,,WA_at_TW.Y.7B%]S"JZX*G`PV^/&YF#<ER/R#*KU^_LN.X7A8H
MEO204C[\89U#]`H@?7)/0PDA?A>"HOU?<>FL.[#0PH3N?:Q1.-L"J_=:]JCI
M.1>1+!$9K;#]/<TVOV+T8TKWSK(9<4,#GRFRC#V>V"I&B@"`,<..DD=Y.:0P
M-(%`&6@^TDE[-LDYS6%G/'[;G>+#*1<*K'JGY]?]LT:##Z]-`1=S"0NB6;.9
M>"[>S^843'P=;YWX\GO'6D1)@9F%VV?A?-,:27[$?!,;;_M\4SJ89G@&"""V
MR/$A.*7R>4,BPZB4//R^61=Z6@_RD`ANOEJN[[2991D<&UF=$83$TQ0FI.?.
M9%AX]/4P<^7B`T,F_6^NIN6FY7QX5=-R(>KRTW)^\]\U+;<OF!ZLMS.`I_at_3H
M\J[-8Z?N2J3G$E)S60AXMARUFB;9]Y_X*9NJ*P,RJVTQQ'T3+H&RWZ<HF.16
M$H(M)Q8._at_EID4R![@D)X^S-Q9E?YGH1`X>@TS3+J'0A8;]9L38L[?6QO;N/H
MWKXU,Z_P!E^]F>_;=I!#S9DL=Y5#]5U9M1QJEN,LD*3PG%"HS1\IFQGWL)67
MT\&<D;?&E6:S0AG-;(U+71.'/?\NR"E"2F7+B>0S?7]@4V<-43'],3"F\M;$
MTIP^:K_]1JJ!.-H!C!?R4Z?5?$,T:?OPB=N4M&LIYU(,4H&U5S3P:9=/XE9,
MY(:2N1G+AK`]%O25^?XRUV?NQG^D^)!(!)FCO14RI3N9[WV7/TR>W:6#.O5F
MG.YMO7T5C[]E$G7G0C_,E'G*4":]6]^5F=!8!V^Q*:\FJ\X=1ZFY_'P5#7,B
M=[W:#+7/F`F\)?!)C-/Y0T2-(V>176:-O=TT>M0$BF,$[6(NW'I./$J"ME.O
M$O8L/+M'/.>O)?F37?F4JG[E:R)W8]G)%+[M7A+B`+L\>J/`\_0%(PCF5'8%
MIV0H$L!29XYKJW,W18YYB2<V>!8#2Y_`S3^5R]S%8-2=*O\<]D9*MPRDP"#H
MYS4:0IN5[9JKAC&#\(@L5-T`ZR@#\C"#=1GA2<:T%=F2G:F./B=^OO,9\24>
MR9267"*3DUI>\)B153V6$[K%!_=Q?YE.<[G$:IJRA!.M)01:/+-0QE*24K3%
M#*5LRG;;%.Z^-%?D97++&D/B_%+;5C3<"[VLK(^I4]+N[+A$$CM-*_*3VG%#
M"B<Z26Q[OM29U)SSJ64(*)C!KDY0+&F>IV3;8%0PQUZ"+ZG)\BTX4B8GGTEF
M:HX^IO3HR0\_'V:83#B'7X!#*8GYZGS)S?DG_at_D[9`R_at_BXIR)<2=$;15S;HOA
M-E-_A=7TBV1T4IQQY77"BZS9.W^_HU3B+C<0V0I<A;Z50J&"B<1R2<52"<:'
MVJ0IO6GSZ#%5A37[-FOWOU*,]QARV$8&I?#(8VLAEF:L7M/9W2+72T.G#CL9
MAU6H61T.>DOM`T).#7Q&5'>Q#"VK\IT.174^]LG)*Y':NB4W^I(_B7J0T>WY
M3J>@=/XQHF(;A&DS5O85S]W%W5PAUU8V;1*D2A0Y56):0;;$*^1=(&%RV'SY
MV+L_X6]!<4+O=*%0@:I66]1"JU,9KD^2?A(6'SCGE1G\!_'Y&P)4C:BQ\A:J
M271M^O///Q_`'>*X]_AT-T!@9V6#&BBU#.A9IV0C1T9;*=5-D@^VLF>*6QF%
M3I*[>4-E%#W)&BZG_DGH+W1JE_5#]HCCLE_at_N@+06WHD:UFJ>^%_at_T[^JI21N6
M2>LC]OD"/MT;KPH*KK:FKE<*(=A\BIT$A@[YE:R2CLA?6:H6+8"27>\DH-A_
M'IUIV9!#P(*=GE4MM*`0BM\K6_at_CER4++K_RQ3:V3,&%YA3KP\VZ%U1L`,USH
M(GI/GY(&QO:+)77G>*6))9#V_F7OX:TY_V'N!=ML@;QP92M(%?`B9XKQ.+&A
M>BJESEUJDSO5(<K_at_7)ZA`I#[^S*R-KW330W!RE55`GWYZ80<[9;!/5XPA26C
M\6T6V1P655^T_`(SPB!23LD&1,GJPZ^6IC`S_at_9I73BH@.%)-JC#!ODJ_at_4_7$
MU<8B[@&1;8*J!ZHET?U`AH)(Q.:(!%DF3Y.>!"IP(-I01(KH4?`Y).+:JFZ@
M>P*3="DKOE^30S?/4B5U!WO4'=;0N_I>NKE/CCXTFRDF%56IZ_at_PG]=?X"I.P
M5^6:4LN/C`HR.=F&^#;Y^HC5F;N9KVQ?M_;(7LB$FL7K+B73*-S`8]+H><RW
M*G_FD[V;@E>W7E$;%,'ZJ`*I8*CLH3?^\HIF6RC5;./"A&K.<4VQAV_O^4B-
M>Z_*#=;>T:`]>Q?/_1V"$=WNZ)YAD'_C"X)4+&W%'#;]#+K)>CUG+L+?0<3U
MBHH.?"645)0`%)8<+_MW0E!D^_Y]/O6OC_RTJ"?6%X%86;00D2E`D*`F2SBH
M#ND_%:B+$COX--_at_-U]PV8Q9KPGB%C`T]C\%P\3SV,PF'F#8*E9JI#OW/8XA(
M\"1?+7H,HRV>AFO!;`O!3)M]<C<8/">'-./(^_BU^3"SFM#C-GMZCF/-ZY?C
M"F=G6BP7=SPA?KP7+^P8CNR"$T]%5P-^!3II.3!47_at_N2PE6K0FN#<NL"?YR,
MA4'V^I#'U:+WY6`\P:)8KY7)Y:`+BD%6EN.BEA5931!FJ*V6Z"-..!1"(1*H
MBSIE&&<779:$%PG`&S_ZC3[S%ZZ,F,.#,`N<J7H+\Z.T%>[O-(3;-9I;+`Q*
M54(,+PTB^(:6Q#'1A.YZ$WL*P1B/)]]J[K^*UMUAOC.UM6[J+IA#B!X`#RB9
M\YMU(WL8]$V2.)LD1S4EYXR^^3":K8[S*WGX<)9#JB_at_73GHD]A4+DB`&?1(9
MI+1?Y>K)G_1/<Z]]B\"$K!FPN&%OF1))(UF_"A513!)G4]K.\`0J^6/9^AH1
MVVY*Q2#CN$=5M/E0`3_at_BK</T\RN-^^/"!3H+S_at_U^"@JIP_E-8Q4;F2NGG]E+
MZ*3'NKU'CU3$9ZWJ*+V-J8F7&*(1:`Q#I]ACUHEC5IXQDMUMP>>R$W)!L2>T
MJPSO9\BJ]4XOK%NH>X8V%^B.XJG..M&[,NMPJ6U,MY-?&,;O7*NQP#/HR+02
MSZ!G!PB>K[-F_PZ<16+:D4>X+;B3T)"E1,.!:%HK^!Z^S>,NX3#3L)AM%N__
M\4%Z4$M^Z2"."?^_/_X0+F>RW;/WC,_;/WN?#B;T[+V7A...(*E>>G1YE)1A
MSSI4G6P<:71GQ279?=)M^:FL24^+)-!]RIH9CQ+E[>'@7\(.V'-\RS)6\Z99
MM;QC)8Q0!!4*O?]Q)9'7($,Z.3./M%BI*+ZTRA3?8RJA<&F*\,6$\A13;)%2
MHP*9&JE3(4,(;C=^:-;]8"6IND68I7%DXO,0M*DE[3UG.YGX&>W(F>Q<I8$V
M\LP<.;(=QS-&')[T_CZUL,@0O)9(D@>O1U5-5F`*$V(`8>FNVF+YP]]-K2Y5
M75;$EO_F;)PG5-`EVA;O5K7,/?9Z$JPG;:CVDM625DVO]:_LW(`,":_[!LUW
M*5R'&HLRW$\^?BX)IE!ECUJ98RI1J?,7]C7RSM@_PL&O])-@$55K9@#GI$14
MJYE?VT1B2]3O%-VVE[#,?=A=:IMXR":W3$F*/E6N7I("+[TR29I")]>[R`5?
M::"BE5%21P\7(MX127GUCC.&R2Z#G#KB#P]!13`O%1__at_ARKHUTHZ+\D1[)[L
M<@'5KC#,A5-)+2).</?,2G^/1L'!HLN_"D3*0<<#D.CG*JH,)'>I1%Q"FF'W
M)$;R(=4'C7>,K%6S-XZDOV":?1HD&^"'O\%2RD[S%SSRLB1K"?)[A`*EQO0B
MF$)CB_at_BS=/@1U5_V5KJ_at_5`/_,M6C#E!D7`X_'.C6+=NJA<']-]0E-/%>01V_
M?Q0"D3!T:A=O(SP9V7BO%\D#)3$RM7-DR+1(/)K7\?4>L(3%RJUD$_";?W+E
M_;8MAI1,Y"^KNU'F::YE)Z42HFTD_J8\J?ZUA(T4P:(<!M%2W%SZY%5TYHT,
M$DG,XFGZB+IZB:TQ?TM2JZ^\448M[_5,[(3&P<'!'36,@P-8'KMX<-!1%_[1
M%]N^CZ:[_#&D4W8C);<:I238=JF%:X$PS&_)N=;$=X8*PH>_X.698<V2\G9/
M?&J:58_#%WJ,NG[.Z@'X[U'%[3!-TW$%H1I2RL-_WL>/S[VL5J6#\2D&JB^W
M*`*4;LS5#'HWSJN:`RN4<RQ"5H+=?:T52`^5&.19J3EF^^79<<&TH&QWA:/7
MOY>1#[.,W(U!%3.D"@N>TGI27"(8,Y4#']MVS/*6#U.;-7#RI:JQRMN]VU1C
MS=DVWE4U5GGFKU2/U9/9?O7.L?GJ3U+*-5"@[6NY[C)*+ZNS#U3/-9FD8N14
MMK^"[ZC*,;YHN=/PD8GXD8I'?X<5P[_D.ZSDEU4][DNH,HY</*93>""[R*FL
MZXNJ9&W2G500K%^F3'(914GQ\0R*KQ@"`;(]W3NZ=XO'&O^OO2MK:N,(PL_F
M5ZQY,1*6D0BFXJCR8!-PJ8@%Q9&'N"A*QX*V+"255B(A5?GOF6./F=DY>F9G
M)4%XL\Q.[QS=/3/=W[<]?<0(K44!@F'E$$#?J\Z>K+[\DZ,*--M*9O(5+K#,
M0%C0+TQ$(%68,=:2K<%,B?'H1U)AV9+-+,XH="9A3//K+[]WCC`X[;K[Q_%%
MYZ0C9YMGQ(LL[T\!PLO9;$SPP=E4D/+0_=XP2R[N,=,TF#[T<;UHU6>>FOHQ
M>F1BYQ1O#E.T&GRM])VO^-H*\+6%\D_at_2U*2$K+W:"DFGMV>G#F61^N.!!215
M"3#U"=\D??)0.DDI9D/AFZ3#EJ!!IDWEH,'_-Z1STU=G;9#.CVN%=`9J3&>F
M%=M)[#.:#,;+83A$7<2%A;#`\;T&(IJKE16DDW4\#I!.06DD$$U.WL''2N":
M^#PO`BW=X)KXW])9M8=KTMU*_K7@?-+]PS7%%7T.<$U!C:J`:S+3XIKG9GII
MKDV4/VN1Y\Y'52N+[J3JYP_=2>59@"X3_0<&W47Q3B]R1G>F;S?`+MV&9(WN
MS%]CB>Y,W_BIBE'D.Q3\!9_T=:SP<WVUAXS;[#F].UV02'5$Z5W)G?RO:#$*
MZCC84$\V=M8KFPRCZ3*]6Y:^&)B4<UL6N[.?KQX:Y3BIK04_at_U&VR'-&G^<M4
MY$.`-Z\FVY=?!NUJ+S(WZ5*U%_4W<F^U%_.]V['Z(G\F>H'U%S,]\%"`D3DI
M_at_8XYFJ3=.HY6MNINFQ"QE0],WAEL24S>V1.N/5.@%6$V#74[0T>L+\-()MDR
MPZB1DB8>P<)6FJ#4!!57Z0!?_4Z5B=A,%]>2B#VG7UH3LK"S>?A`CN?C)VU&
MEA==#[ZBF1V%XQD)T:!>I/E#\KTWDFG$J=L_at_3]R)`IAX+-HB2?X.3SZ.ZN`)
M$Q[?<U<96'WB],GR*OH2S,)'7MO1HIH^#2K);]6*:0$/.?)7;:Q6&ZTQ`A?'
M1V=?NYT_CPT'\S3W3S\W?<JG_H.(@@DDI_*J=PW,TP@?HL8E]<-O644KHV00
M!5L=E4\=]#`GNGQ3^:H/$U=KEE5K9%T3":3UN%YY@]I5L^8-"N&/3>$-/G=#
M615O<!47"^_,PS=HX]EZ@\[DG3MZSKE;3DC^@Q01F(>HJ_,%KMLB)(P?HOO1
M(H_at_7T7B,D[5-(B/)X.+_&_1P11YT"UCBA`KJ1&_^1#X*/>K-'\;H=Y`DDLFG
MMS__at_YGLOG`;)AD>M$L*`?,`+I$'FL=(-HT&J?9.;?_+CB]W\L1^_58),R4^.
M+9DR!6]8O&07LO$"DJ'63#A36O(`B-R!LBZYW-MK^K2:]*D?^X79K4.JUEI/
MX"L"95TRT[E^UJ4J#QLT&L%LA,_T^Z52LCC[T_*31&IM2#K6E7PIWR5?\[C/
M,2;@9TBPX92RO?VV0(<B%`8:X"7)372XIW2AY"3,4BGV;QBH474IS_+I3DBJ
MDZ8P0>*:MF\%/0Y/;P)\@MH?*'U!.5-0%X_PD]HKOZN=J[8R>2;/BE=9=<"Y
M9,[)R](VV^MC3HKS!IVSE\6<A"Z:-7,2=:L_[<V'M]%D$>*05_08*HF3_at_Q%:
MX1#M#(VTL+)@4##FI.R=?KB3)=F3/OB3N69G/NWTRV^=[M7MQ?'E^5GW\OCV
MY+I[M+-33^?P-JWO7*L5F(X)`$G")P26V,"<1QW74<UHS$IL%/[2Z9Z<I7A[
M@?+(UP?I3>Z7O?OP=M%C;C/<(Y&6'?GCJ3^T8$<J!)!_$6J-TJ=*&D03"A/#
MVP2PW62)N6]3='^*<SJJZ3UWO6B,_<FO0<O8(!<.ZD^J8''QP%B:)$K[4YHD
MJA93T]\MV88T1]2BP\(U*A4:G:BL&-FE82*.%X8%)84:D^,9Y6;M="[/&JWF
MX<%A<'UUTOCY?="+@V%X%U%]#KY?G!PU?CK<_W13D[^E=2!$VO.W)/R[Y$77
MEXW/ET>=CD+.?E,I9SMUKPW&O6X;)7(">8FI'0?(CH,=V8B;AX<W]G+C93^I
MEU:8V((PLS(D)X`81#\S:U2!?N5T>3:&^PWUCV5K*>+B=>*;=J2K>'=7RZUB
M_4=N%<Q2%<)M:M*3(HH&X4MIB%%[==Z0]'U+_))(9ZKA\L6_at_OA:)4#8B=<_R
M8U(8-6QTTK868Y2V=Q%O;L&/FG,\^K$V)4/AE"+W-24$>0VP0FP;L`EZX+P8
MSEF^."^9FW8+L>H=]/.-E$KUH'RL-)MM8Z24W3XA<5*]VE44)Y4-!S(49_,I
M<%S0?KS3;HOU;JVM262]5$\:4<1!K<P1)LGRIDP"JO8$$D<2"1=IU5P\BH_at_H
M@&\Q^Q>CC_%C;%I\06%DFK6T)%]X(V`0%WEJWALU-`P?;M+%59;D!GA7@&85
MZZ_@"FS$G*_`:I(+1CA/MVAT#S[__*TQCGZ$.!J'_A)3_<1A5ZZ74B!K/KI=
M[OA;N"U+`Q"%>[(I!I8$2](IF2RF(W+P%0\)PFT`%EY3*@3L\LUU4N*&WYK:
M58S*<[BJO\/=>I>J2G`7A>.A$SCO?HI>.QB'O<ERID.-*<$H_$RA-9#VPF%E
M%/"?8CN=<K/1UE(ZS_at_BJ2-6YP#!0X[><[CJR`=F:!=-\`ZV#Z=V&&0G3,Q=;
MT:^:T62$YCK+<0S.BKD91T-!78GN)U/2&0J)QXM'H^*S>8BU8%_at_P7U(FK9`;
M*LB=+%(,^?*AD:8^8*Z`S\1`!P:1G$GU9/DT(J9*&9Y?G'T[OT*+Y^9`F&FP
M\!MIBXUS%^G<]^;SWE/5#@+GO?03I+JSEEE3T$)"])3)_:U$4]/D]HIU-1OF
MYFEKO@+KUM>L)XX::UA;>YW%D;2(I,B#"'_RURRA'>SN1K(UYO9"^O#WUHWY
M#&EV\=^CFP_T`YV`+42U/\)>LPC_7DCLU-E6;08G&0A@<TA[+5L2OZ97;K-`
MC\4Q.F9L0UXCLT"]%18MT7R\%&90=;HLN8:Z(V:AO6">B5WUIU,\9O0C'(RF
MV*J<;`@W1A:$<\O:P$H!#F6^Q):X5D%Q7=`[@K\;WOO2^Z>CA'*M\TUF"QJY
M9UBV%7S'YU2W*0>IDN4<WFCR./T1#K>!!ZP"]B_at_PXH\2W!S=3&7&A!$SVEM0
M?J:0M%[1)IOVH?0VR]!WY7N?G.7':QOKQ#3.Q0XSY`DWI,8.;<[IM`QA6'<Z
MY7[68QFJB#,'X48N[A4R=(OM/4)ZS?=H)?`^2K37XCR9(W,@XLD98\O1ESL?
M,3S9)X0\*$ASSLFW($EYOQ_at_76YR+_WRT1+2SKP+"7[1D03T6IDH?!<-HR[ZZ
MEDC_15$%HK-X%R=?R4AZ_at_KTT05Z3[0=_T^-]T`_I5T"6D]2%#X/9E,Q"S)78
MP-23:(R_#M%_"OX)Y],PYJHWK!Y8H[$X12C1H].U&J5X>76_JTL2T?]:>B-E
MZ*KJV=DJ=;RWG[Q"4_CTN:QNS9E&8?6V?/G*\#`T^L%Z'G.!3"^8/"]8.8YW
*]A\GS!(SD_at_T!````
`
end

------------------------------------------------------------------------------
_______________________________________________
libssh2-devel mailing list
libssh2-devel_at_lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel
Received on 2009-03-27