From b36a27bedbf510db9540b3970e5985768def5e38 Mon Sep 17 00:00:00 2001 From: ncpfs archive import Date: Tue, 28 Apr 2026 20:39:58 +0200 Subject: [PATCH] Import ncpfs 2.0.0 --- .downloads/ncpfs-2.0.0.tgz | Bin 0 -> 117212 bytes Changes | 6 ++ Makefile | 2 +- README | 6 ++ ipx-1.0/ipx_configure.c | 7 ++ ipx-1.0/ipx_interface.c | 7 ++ ipxdump/ipxdump | Bin 7604 -> 0 bytes ipxdump/ipxparse | Bin 10891 -> 0 bytes man/Makefile | 2 +- man/npasswd.1 | 55 ++++++++++++ ncpfs-0.24.lsm => ncpfs-2.0.0.lsm | 8 +- util/Makefile | 2 +- util/ncplib.c | 62 +++++++++++-- util/ncplib.h | 20 ++++- util/ncplib_err.et | 3 + util/ncptest.c | 27 +++++- util/npasswd.c | 144 ++++++++++++++++++++++++++++++ util/nwcrypt.c | 128 ++++++++++++++++++++++++++ util/slist.c | 4 +- 19 files changed, 463 insertions(+), 20 deletions(-) create mode 100644 .downloads/ncpfs-2.0.0.tgz delete mode 100755 ipxdump/ipxdump delete mode 100755 ipxdump/ipxparse create mode 100644 man/npasswd.1 rename ncpfs-0.24.lsm => ncpfs-2.0.0.lsm (84%) create mode 100644 util/npasswd.c diff --git a/.downloads/ncpfs-2.0.0.tgz b/.downloads/ncpfs-2.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ceec7fb949e082a1d5ff559964911e4bc0642669 GIT binary patch literal 117212 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

Cl}$ z(tV7BfMU`ySxAq5fzzyL7*({Np586Y`8apC^d9@9erX_6J9g~VKE7|Q&(XJ5s&Adi zcW&|5jRe^53n>f4ufuraQqDwJ&tKUN+JTqfeChiag?q1imgF z8|fT~iL5wXcp&MaNOmydL8mi$Nc5dthhDc<*C^a_qk1i(z$oZ&QO&ID+=Cfef|x7w z%;xd42U8OIp?uF~#G4;>P+^{(6trn)6Sje*ds*PkBmOe4C_^PNRa&Pu@+3UdtV{;g zK?mxEWYXwa>y4S1^tp%da3SPy%1T~U#i!LhSryHOt7Hi)DduDP+}W*_<{K6ER~qKH zDpTh3Ah0+FOl?16{+qdN8p8YyS`&o(v2zv%ZV!YXJwtFHF?>MEGr4?Xr3^rD#U%PCHhqvIr1v5@KlC{k~L=r=?SL_Z$a&o6uD^`5t} zG@hI-4bT*F2_(es5+fjhsXLBtu(hIUkEQumy-{yCHBm^jRXIl`B&)G5G~ua@TBQzU z*bqzWvhm&tofzEFTjF7!O-6C(4%L%EFeDm{qXlv0?N?CsIS7CK2?m|>hiFX>aM(j{ zsJS3ig~zFqLl=0Hh}@9rr5d7rVHlhNPFaIlP6mTR0}yQR2z4gsY~W9jFr?jZ97K_i zS9Hj94aphYWtT$=XQ13Z>J?y?9i{O8u&3@1-=Yy>{XQDG>mT*|b-Nw6r$V<&K9@b8 zPAU?8QQ*Z{WS2&$@B;gRGc4*f75hUE?dVCN8`%T2m#dW;;j-28&>P|f9(ktojVeqo z3~xxO122csdA(a#r)G^{RNJFo=v}H~mkjK~w?29M7~0^O zzc9;zmWpIg=SFYYQy@`^0VZJIag1an0-c+T3s)G6z)*PV(OwWk5#q>u*mKV||Aepb z*q(@HY9d+yDufAmH*FDM4uEAId4pQB-lAw2uy`;bP!DFL2UyT}{~dg4u;0e8y`Yc% z5RjMlKzFP)dzRU5O+AtO8g1`MCbhypcacwj68f+|pVif|=l4|kEQCKlz&h7~X{g|| zda*i#<$8;1DO{7)W{a)@VEv;0mAc=XsM_26)~Fk)Q8xj`9y9K+TQ38|@;;zLx+Baf zL3jS)_513{ZD_8*N+ymIFN^ohWYA-37G1!)AqMaS zMYvb6h(wRnwx#4!Go~fMH3lMwH4zF2qNVLc;{pJru)-7s=!nw8fN%-c9(evhole3S z*7VV+7Zb{MFD4egVt1$;L}A}sNYnf-HGNrHcM;%qj34vmKNVvnAR5|erU|R=Eh?CA zBD!@A0;v69fSBr{!_Yg|AE1#y6~LUq*1v?)fF@<&za@Nt;ZM3uCI$iSgpnp<-3x!@ z)zt~~7CSNYaepC!(G5uyPk=yo`$)$^DV8|-!~xW`daq|1QQ@+g6 zK81DMsjKHGGlvldIflmMyD7;B8RM{Y9p>#TIg2T*aVrDvD8^GaeOy#cSZg1z#qp>ZPP!Ke!Hs-R z+yW@n!3aJ6bUmVIeRP5o@{M6{fmFZqs^}Jngo&txq3TfHWyU5Vdqy+I>!}%kh%>$o z%ME9xa-qY+F&u?J?SjEOngJNPK747j)JAL)9}^P0;Pqom{*73LPP_$hGku^Wk?Fmt8&oYM)UVO~vN>ttdpsF=Lf|ZrHj1sK2E6WM z*+RT_gmbwcVW=hof63pg_`{{Z3oaMy4&3O1*j(CJp86SnjC#RkM1%F?D;w!xgA$|k zB!qLZ?-8Cnl81Hk@P|S8uli)<*M<{s1dQnjh?gcIcy*5(25(Y)qDPmmPfnlsp6FoI z4gGN(!N~&bEbdmKX2c{VR9Udq8{v_Q? z1Tpe(o8o$6VL4ix_2v57L$l-Y;PTvf!d%o?kQdROa3KO@2P#B2k-#yIk!kc@jJN@W zw_Hh`jI0EKrC;=dJ&~!eya`mTX8KrH$n>6gOq+)82uKeQ=5xYivpsML zi23#tKkU?6Y8GdY4|AjxXKtCu3*OyQPvywMqN#9)HNrw_`vQqs*K(Sv2l){h2FV3!m&R(hp#`tT*6uC z;wktT*^wRotpybzU`V;B5Beyp4bT?S?NT(U)Va1j@ZP(4wyJ*wgSWVWe}}(6xZ~Qm zyV_hntB)_PBL6LI;J0o#h{DN*hdVftq;M*EK8#~q`ekCE*wnN(D~38`TLr7&`syFs z2dCS|+egQHFVrJ=68{joap-yVaWugLH@4Z;v`ff#g&Kgc z=K`5LfrILb)?`F@OUuFJq29H6l9Gd)D})p*Yolo>`Lh1(t1U?fIB8Cix zY^BH(cR3jC_WsfHZNru#Dq$`QIx?Zzw6DJ6s08{zjafh9je^PfMIG1`j8+efF5a22 zH5M?XA`-y9t1D}oQo?j|8K=p1qBIfmiTNgK+vno-0H;jwvyL-kaQ`Gmu0|aIs|n02 z?D|I+^!EpEc;?n8?}jv?q(Z@j1xSo7Ih`p8imyP}fuD(pHlKOk$cVSl@JkRBp5VD1 zkst>QEKK~{I0QoFza8t{6<^ePZa9o$w-?jq(!F$HJaPR_A^W%Je}yJ5eVI1Y%Ix@0 zN;Sm(x7lc|I7 zf9gKJOZWM!HM-OncB_iK8?dR{z!@H6u}B?zbaI+Nxx~NH#lgX`jvm@0a$8F2=^!a=VVnpd_Wr^d3KbI!_Z%xA#xx>+{Zj zd;54EkOzl_oo-O49b+PZDXp&Ovf6<+3lSUQK;>vMh{fJ!0WfbEoxgraX7KdnojZ_{ zyyrT2>G2+O4#?y4Ans`7EPCw6ef`)Rd7Yjcy9@ZwGz5ej9B_3u%Xug$0foDkUpA zRhR{JOV!$Y2S072H4)i?*HQY=nrL)~j_ z8d9?i)eHJhL^IQU?VP}CYy1;BXg-y8Qh*?KZ28exM^;5&KxKVSYc3w}%TU#qd!F#f;mYb}od*SO37^}i(l z707x8$x>#!2j3tPjy%*|VxpP3L`8Yr|Iz{^sd7b*^!p(0E%?1n+tc}jWi(4db9+7Y zx;B0TOM&4UR6hhT>`(Z5gyDL~kS-&N^}Ip8e6EN)7^I(dFTC#CqKY3P#aZX&b&_l* z>Ghu?04(;|KQrr|y8zEgIJjO&Y9$hR>0zT)Z|F&z>^lp$r7YLd476K zuS})W<5V?yjWs#^kCa=^0%sw-baJqLlzN2^_*ENk?DzIkZ`-HO+sAu*EUBBkvQJNc zIclFQ=oBy32rEmOv@hmWrNYwJAPC-0#+~Ga$i?))2w=Y>*GFmCekb_||31muj(c&+pZNh+q@p<`j|I>=zWg7Jv#+Qo;gB8*BNn zlChScsYsW6N|9lB98tt5ycZ`S0kQYwsJ*kdz27-FJZNvG%0WYPSqq@{({IGRIYEA@ ztOdsI6kql+da*y&thbf~yS4-S_&&(e)B1|nuG`1IY^t;jAo?N7L&(f}jl@w5{ROzy zBK--xeXN#6^^wRE*LwH(?EVgwFq7dUT4DI6(NTBSuL z+S>-|(Z*rjjp<+_qhb#a1WOJ$O?^!rlIRZ;!M$X3MIB5W#=&HuyH{00&K4`8QC&-V ztSbTPz34JYb8knHS@+%ZO$3w@NaH2(6DslIJI9Q1*-49c|IYF0-s#g#41p{9%Oc7D zWbf(r?(Q*&{lIL|ut`gFZHN=@g;hEjQ_2ARZDyvu{cL;hpkh4NbyK8bHR3ZZvCsvo z%4tt2&vX0dy_3_8;&W`nC<`<`>0rJr_5+vBfgchirPeftaSJ%gy@Qu0?WwICq&GmB zc0k2628#zGQm(10;C3GED+RqcIzBu-JUBdgd31DmJbl1>BOoGvkI9RKp7}Pa6f|B$ zfTqmA!QpQEr|F{)08L?OgugY-C2TBFn}i$}wa`A@J$!XAwGE`mY&c@Ig36sj69=kgQ*1H!|%r+fQtke9~9w|(Rh@<}H}hHCdQ zt#Y3tc9fPdQ1uc?<+kPtV3tA?Ed?uxlXM|3Z?Nqp8O54N9=}clU;njKh;V6LE%X$) z&Zx}OUsVqqKu*TiO-4WJx+9Rn#xx(w`akqv*UJ3GHhJ}I+C&#=t2jDmVFu4^0Q`xBD~0X`~t7y@S*C@xeBMlnch$6*63XG55*6VeVxbGiePu$4`LD4-?R^YR*Fs$R?-|H+$D0(*3LxB)Fm*72Hbe|?* zHc1woDK56&7}}i(ixzeLfX)5yaAw_1T4qv~`3TE&!C<;r@ZZfY&t_n6Brnrinsb!5 z#C4L^{J)dX+!2r>0x~ascy<$gu;T4G3nknJ+px^&{X!bZZvl>ok0hyYeA{UKT=btI z1F|^N_Xm}lD$ZAJP3tJ=c^G&mtMS6e*hKbO>kab*+2_jzWml$@U44_xe8b@9|0L-| z%sDtb-TrBN@4uRY&S6sMPc`N zD+r4(0L)(V-{}7M4=8fhLjHP)t1{)Rqzyug`@?Ds=+fHf>rzfN@-e;oyt9;M&p)_7 zbnHTpRzF{lvL|`IPmYCP|1J@$!T8A|c=Fx-w5tHWsbSHKr$Yk8 z%|YpBpp=^p^*|S>Q4Q+^$a*Fe+F=N>`!_emz~voyI?chtBL3Dt;^CNC>*Y5&i>Spo zm>5BC5%$HVVT|Sx@QQETo6~OGY5lAV_kA{(D87Q9YMb*xm+ysF?-~9LXU7gms%MkO zg~8bIfgXT<`B*huGx~UdK%v}ue1T$?4$rR2RIi@R_)&1dpcxJ{v_g(U8YZ0gqxXc= z)ElzEFl>mvNKRGx^ClUFVz^Nh9;i~)rc??j25-fvKF6)df)VTm=b({>^`Tpvp*O@5 z_sRw@TQ%wDn@UyM*B#gPTY#BJR5Vn?T3ns9khiH2gArNp{|aP7;g1Jfs>S7TdT1UN zrFJ>B6)GxA+z=QIk}Es{0<)6*{A&&X*zE_+N-Byg4j;J9OxIzeer=@x2l#<%M3e_R z`|X32*VPOt%j@e!{}n^4%tl|#i_7?N6TUk0nXb%X*fr0^)W5?`<)_(|XzP?a`;vbj z`;yOMv4GZSC>#Bo7%lwGJWQThNi!AA&vZTYZ$%qEjx?C-qAzzNba2={IGv^OvoVr+4SSk=|@-m!@f{?wtGnH~jxF$dmV3)4<#m|Gl}sp3(m;uQu-T zzx=PqfBAcLf}h9JkAd@+%Buy#7`V*vY9XAV82sPR$$fC_8Bu^D3&Yw^n&Yrj_-v|T zGzH>Aw50lUrxs?gEwH_gsT1VCQp|#fGZ^r&R}bUPIp-2+xi*JP2i{feQ zd|K0}^@MXPD)XvI(Kybnrc6r@D;1lUqw!~4gm4}{QAcSz1!a_#x2L0A;HBvg+;fy~ zj!&O!MH==m)6A2 zP~WsqUmhH{w|AaTcM@abrb(bylVa52&~pJfF<|plEonGQM|z7o%l|sQX>JZF&EK?& zw4<{)f&VZDsQy9c`y5?@t;LY zbYtgqL(;)(;^l~yEIq}PnX?_?;Khp3M=QS(hfxmLd1a#6XJ ze7RLB$0(7;6k0Vs$Y0}U!1DhJ{4z(lP{I}49M{4E%t~^ZKb8Jt2C>g{0Nh0XS2_Nx zb^focHdpWH{~i7RO!OaUQ0cj^UIfEZaunp~=6}k`(3o}_{B4xq4(X3Aq3}GrbxqQ5 zJoXG|q(^a3e1zP1f_(5`v9;nQoIy+fd-(s*AAd#*pd09aYpt1;|CZO5@8W;|@6dm3 z4&#q02Mcb;v_2i*0BBp!9$f&zpcfaxI8vRC8*>(JuhUWG@|aRj(`GNI68qh^v+7)< zqW;rQrIb}gls=VOD=D!=j3v&-aky#V>Iqp`49EX@lFQ2K@^r!FZ#t=z+~$c@dZGCA zA%Y9Vu)6t}D^6ijD7$dCQ-Ndgph3jIL@d#{)x+ABYHcQAKuX7ZM~aXb1AwC#G+W@& zdihzh&fLPz+|o|A;98Nm!@7JN^8*=UIJU0m45e7CDA_Xlo>r#jak8xGDiuBXMrJx_ zpUO1Mtiyx*Y3v;S{eF@Oij;0!Nko>=kf(hr+O4_ieKmx~^*6g^yhQ#4%M4L5L-X2E3z zKAn?H^MA+f?cEpc&&^}p!2hkRtt@Bn|C@LBzqj)_y#PW+o?A$!fPaXTtKNCx6|*1c zFB}HF3A-`Jfr>9Y4j71n0w$Yw@r?s7_mL~CEA`a#1|WWV6o?(@%%vLw&lC)?aHPtf zxOKxJ8BNa5Io|;s0zM^ttvFEWJoL_g=(6)!9ctDc=M5tBVz45RE&_5TL z9m{8~ zu>diaXo<{)MAVNnG_b2X+oMbz#cmM7E*=M?9y$jom)~b>HyNZ|6vywXu}=RZK_K0c z9fA^l@qiTI3aE6)FN4XTr_Q_$C*9D7YP@eWwx8_mwx2qjQfNc9QCYTT%^Fj3{=wnA51O2^HlSn2!(>NR|fDF>#E?SL~kW5fe0l z#wA$6TWAFVrICR~(F?rDL7PmD(JsX;11OUwC~<1@;>=89e*inyi#8l5lXH}Tpa~|-g*^chg2T;hG#H)*!^AC| z6HIPRd14GuafVJqV-S&s!DYC-iKZ~42N=&}=`sYeqM%I^fPn}p?mIvM=oC!N!uHG4 zLq&lvo^J27)eg|C(>9r4D+bRUpl5(h){Atl<%eFUB$J72uEu$VnR>IUx+ z32>naLoeKjjE2uV*jUJgoclnYF-O=t-&LuFQtla4u1g;!m6|$f@3(hO=j$QwPVAwQ z#KZ-i#IC^zk{7__M@V@`J*YXN*CA1OkeOXNN*Lb+BrN0$cQm0*#zpY70wxw#1|SCE zuxN0wm`@CusUp0{6JigXKi>a&xXJr<&KI6PoGjuj2mmJ^n_~MTF_Ff|GNNy*@HQZm zJEHZ*{z5tORbBdn0bNTXv4M65o>ukp=>i)K&O9U|eZ{a;I2nzwM|g5W7o7-+%h2s! z_#>e&fRa(_(zaDWa6Lr8p-*Vx8R}w=K=|TNPiUfDp}G!T8sfk3EQ_$_5mm-c%fCc5gOR`t%L3^_`uHss%TVBU{m#J+O_;QE_8S z7W66aQF+X!-J51~B3J!3j8&vJ+27l!7D;n2pflLc4&{|6CN1d#$y4LH^ICoL=Ry1Q)#34vdk4?1(a>`gl++v4 zW#fH-YEV~!@dMdbU4meN>>vst7`%x58%y6bOF%*#r4SS13SE;RT#Dv-c<^-Z*~{bh zF2TO?A^^ULJllxX{kotIPuPLp6ct@qig2ED1RCSmFa)T0@bU$vxgA7aK@}FepnPpC zRd(Ay?d`O$iP|kJ@H2|EdYyyW_Z|8#efD9+S`Fp0jtER!ToI)@ogn+#E@paS7c?U3 zwWB?{;s8^NEWLBXr2#OsOVQ+vLL|YO>LQz)H0Qy%lI>QeOCV{fT=Vddt0i;8X(|kS zK3Z<>!eYhz_PQ5=3A3)XLw^!p{DnQeE+s_~yPA#{xn0K*RQr#o|GWgB`vkaw{;TGC zmi{ldR_^ToZ{?HS>|4Re$?t3ZG$Dsuqrgc>(3TfpG#o>Iwn&leWa*-=!&GUjamRuE zyX}98-gmqAe~R{en*UpFtljPZ+xQ%NJwIZzB4pxF`8bIvNL0l99X3%zr71Sc_dArp&IIR_pz?}Y@Df;9wvtI7!am#H#zuQ1w`*1|g=QwCu~ z*Dlb5VGz@u30`$#Xu!~a=k>^nmahw=pdVl2*kshop&K7mKmwbBvk~HmM?Cf@g1M;k z4S=c1w*fpIXIC@FSK2;NdnYC3xTN{z7TwVma2;dP#iHCh91ncF+;YRv9pPmP-CBIo z{>MH=_0O#Zyh;9Rt>*kc*4OX!e}A|BFRvymP-WSQCRW^KR5Z7#>8aI_l#NN_L&DQ$ zRuNQxsFo&CxHNP}_}{}s9b`&r9Y|h^Mady)Yp4jT6PCG1ew9%tpu%no{yk}~(%ZpE z)uMi3OH=FQAufLe#O0X~S3d&c>P(1h@b8bS9|qB?bH^%vY5uP_8IG5}OdE5?e_2~@ zVL6Qd(Og}>i~sUBtpDG0|JPU%|NoW7>PnN&|K+>f8qaN2E|BhW?iXDgf zf-PnVkU4M;pZue}b9zFB(S8RneDIK7_@<0NDrCZdP&PEUI^G;fwTgY6^h2ryH&wCA zI=Ukprc1MdB}Iy$rCE?gDo1@*i~rAYP=J{Xyl6wwX25Zs9Pb=$pFZFErW{>(F#hpn zuYwPE_m0i8GZ&Z@6g<8uOYus@+1)!ieY&^b-lB(i;Z%>${{>BiEahw{>Px~6=?cgx zp(M7Uu>8UhHljji%z>X9N>_Il%H5u-*O6^8#1rwi`>wBQ$~3C}vJ1fH{9nKp)xJ}Y z?Iu%DhVSfG38>25+55k9{{JoZ-yrp|{EO#VbG$H7+Ra@%yOmIBM%dK92h8L;k0Ws}t2$JL;u6R(tAH{Q^ky zN^Qfh1NeQQo~d;4xuJhp-<`d_x(X(w;bL3o$;caZ!>ciAy4)zb48mSiHA*y69K}H} zKz$RN?m2YK;?H2{odvxs4$_HsyK#V0Hkv%bVswMy7{eb|sl_2BXCbTnOE`KQE^Asu z9a!kq)k#oA4HqqB7kb&B48AfZ%HDgI!m^^i42_hXpig~^)IsnL&oefV^w_GeU|fU+ zW%$oMN4vEcO`>5=)CKt=V$b8?++&?wfc?No)c6%n%dr}J0a`?o?hwv0cr}dZm&1oH znSHbA8$cZO1~|W$Xv_&G;fNJ+C$Sp?_SIVT2DJSPOib4uvAUA1ATQmRtm%hCFC=5^ z122AstJNL&$diBX_07@Ez@>2gX-|thyuYWaxE0|D8v+lu_IZCUM=M6^%ncnZdZECXHfIu3lMV zCOb%S!*GCQ$57ekDqe#Tbt4Q5X8kUQhC*sA0XSYkuUZSgo?pK}B z>e9UebY-M+geEZ7+qDt%$znGdJ}!zFbb7tI+Q!!oU?`5J3Tu(-rW*m7QFVPtDaf=aaj&tt<;-X*j0?9RU{Iwy5IA|`%EJeGh(WN&bg#7 zX2%_B1o_j5YmN%`G(=jtS!I_G8kqyD_ZNs8?06Kxj0f`AH&m z6M#&)WYKb5PXb#A`(mDag|x1o@bzrY?7f2lPskcPCWaR`8oTV!E+F3zUNgt67Lkf8 z!e*GBOJc=Et?%QsjD7T;*qMYO00+pXN#lRfqaFdC0*QfMM*bOM-PuG;fvIcaRD_nt zJW0^`pMt?#n2mk(x&T~v9u4H%4=~S@Mzel?**mZIyvP5s{GS%>y0^*ytu{ISU#qd) zYOJ)@DF0ilamWAN#%F1fL_jh;pNz>7T@1NEp5#3@P?q@?7Pj)m?NGkBl`3V8!xV8q z+;_t(_pN&5)rPJ=*ihSbdhkPZQSZKk1F!q9$Hh?Asw%U?)YKiu9m#swkk_HUZ`(Ad zWtiM?5|IL;wFD%Q?k%qf5IiKeL83kA`(Td2X9q9UGns~?$=Sf~s(rr;M8iYsGsY*; z1zqS7AguBfdvT&~{hp%N2T}S>C0CZnaUkVy=|%)15^91{1}X%d55+aBLRWw2pJ3|N zizgr%ClN!0eE|oMP*NdnOfBIIs}c;Pd$0CRpC7(FRoe%@s8`#^$J+;|zigU|MjD>T>Qz>a8eNmFUc@%eooZ&gu9cpmYA~FD!7KoDlP%0lgs~){BO$!Z0fuS!wRs!B%+pvd?$>sc^E8d7dituf@*F*`^BQm~ZvO3uA{ zx;O!qKyx-wbaOi&rKbu6w>a6rQP?G*l3I;k!n3Lbh>&8HbgCtU*YW-U7CTvhrbQH5 z1X4npO3pDTFlyz%Zf!MEkfR7r);@Qb;|!fm`UT_$qY?QWD@cuAuf5Tku_*Wm11VF@ z(zmVmng4Tix_jjjP@PIu;g_cV(t1-dZR*@Okta ztuGE^(}Q_#Z5fEq<~%w)m;i*y4u?V?6NBAdM}4nlQHb39?uwKYd{``VUJ7 ze?zkQeupkf=Ezz-#|v^zb4B zXkT5=Eugdt+yFwGc{iHo|CTJl84J#O+~bv{e?|_@2`1aL}f-szSs8lzKQv zcuvv>IT8N=KpPhHK*R}xT2*q*$D-&#LY?MH`Wc9FR^^je2%++q_ zY5yGz5f<>Jt(YqW#3WLrAhMT0nge}-#V{zW$HY0C|JqW}@s3P@My|}*PLi>G$iSka zfi3HSNxaz11_$I+0$YzsSQZpa3h1FKUl1ZV3r4X)<9d%JWpUD&L{I3H)`fbxLOoN+ zC`Gwml1KswBDc$jdYzx88c7N>Q(!&RQMpqfn7>Sw({TcFWr>STG`7<^hm1@>07%DrGdspjakmhs<)D${OP_go11ZX2>y)di-1IuUckv@Vw@=07Si}MtT)GHo z@1ua4!&Vqo?=P4zVWJja=HrwdKQg&9vuZSxGA+5%5qK z_`-|rU9O+X4$m}$!N~6+9ete+I?c5zZw#BnTN)nM9$$1wR7Bd>TwPwvpE53-G3UTp zqLm=oOpRf+C@!Lykg7v;d_^Q#)Ru^p!(E4QWIuHcmvCpqbx_V zRr~upYT#aBJkM7in~C9)voweGIG&*&Ap^@ML|pL%1gE84_(vPM1xUClObyjTC>(<} z4uF9~(>UC06e4oMkzT0`MLonlN7WEHWs5DAGs5IzWlRV4`#yXOc3VP<-uC~)=%@luE?d<}K?+r-i%}V}U zPN!uk7j3VK*&BFT0A_YC%Bgz1RVV^c2it;PI1ro-59(z8Qd-P&e-qH*zeBR?=u?v^#SYpaN5IO!x$Ew=besY6yn*(vo2jy3D{C9bz`it zP;RZRR?_PB=X)m@drK{p8%1vpciRi)lzB`XOlW@k;+?{B*$(ATrf>szgKQ_cEC}Gl?Xj{ISWne>f zW|zQJvRH)G__M6uHgiStCT+Pgd26*?k*TI=i%MrUH#M?mqKo7wQk~Y%0=r79M!wHk zv&p1zVgGYhky3uTIAUVc?tYtOFPTZZWE(KV!#|#Xvwu% z^ftZ45(x8{YC-9*;XL*G&WG`T?A6x2J^pXG)mowWA0RWXuQXRzDgIOQF8=Q=+W*L+ z-x&bi835fG0Noh?eRcz&M_tNkHPt3avw^!WUmR`k@1JZRosfbONRfW!_fu}j>=_K3 z2g=?j#s8gQ(Vbz@f4pIl9tDgY?Kcj0Iw$*wr=8>WKVP;_PElKc6Vhx}QYDku)(1+q z;FB)7+b)0#C0AEbTGXfwOrf?O=v;U%9>aj*ozA4WhH4K~U(;vCBtYSZbcKgtFfG+Q zg}cFM)ENYqa}|!==$8 z%-fDfXwX69IPb%7;l{pQZ#r4SznibIQU)L7Q59tD2LTh*6t6TQKX|)d>~qK>FulL2 z8>VHAsta%&knnlZKK`kF+`+uhc#b|heZH{r5UDTlzSn)3%Xb?VM6GVdgl%%9tY(J#>f;Xw+Fm=>{Fl~WDn3R4Ick< zLdk7u3NWs1nJ*ZbKgayaatY{Cen(`iuPVq~9y~e3OG}+6^2rsT#9;`VtwP+R)(|C$ znj^Cd7dV0k=2%@=n2HiOBy0pv9ziIscYq1Dr_b=44?K$)=(hZtjn$^_&ta11>-#m% z^2sL6x90RuI49}Sf#>3FIQ<4HbxcWbL8!oW(bh*x4shQ=YAN#U6}&vuaaAm9B&hNS zEic|GOZTmk3o{0rU#S^|uN5_uZaLJW`H040t~|GUK@)-E@rBEl6Yo)OnzB3WjkK^p zEHkwCdP?b;SaPj&=b11;cStj*P};;Co7gXq=rCjqv}PL%YYpBw<<*Rh<0boeoOhB| zC8ZFhH@=OkDw%K9c>nEtc!?AUE7l$-*pJV|;n;eEwJKTXX4^|ziJP=lN6;Q^pz^-b zYL>IKDg;yHHmzp)O{@GkG%%C@Jv&`x+BNQY@6 zd*wUZ#J|-x(U{$>)z^AxdQL{fi2Q+Vzn8rOk>$c3X$Z&?nBABv+sl<@J3hzQQprxs zjE!xV-mk2pn*cI-fBmJ4_NEsV%eaJ1OK{8J59}lLK&4H3l8si;mXTswTbogm*)z15 z!tjEK_9O3otd@mMq}%?pE0zu3Mfg?w6(F?-A)73ODtxrC$nI^ZA#NQCn?=d2wf0o& z9Ms{lfT?m8X-t-^t*2#?*<^~W&2ajxW#S{C(NyK*J;M!@DWw2xBr&n%%xJ~%Rtw>+ zqKe>WBhl#4mU94Xt`q@muBbA`;tkG8ldwZE+iJiSKJkMn4VBhg(=B5Oox>4r=WZ2c zq-j+aglDB?AWJzz7m*g{7^TGunbVhVKqNM-Gi1?p%>ajk#o}DJIJux$bz}_*`?HVP zkdS+vn?XF~aZtf{1ApM|CY~HlI_(UApHhZ3AkClG!z0ixW-S{KE!~e)k%C@-U&^qi zCABfL$}&_*bFY~ir8e65r~8(hRpJ`!8SaH$eoWFoo;108j*uMTS|I~auuSxlo6{Uz z9htz!o4UmsY|gt5-$tKfdRrCy_4g_}*M{%EY0_7+fTqX~*`;_ndOHd(kylEC$4Pv= zrEF0$+rsOUi%ENguvoA=Sd4#0iZiL+nMw&{<|6R!c@{3LtgiW5)DU%{p*W zrCJrWq>Ew`dJc(rp}SD=n59$wAS`bx(~-w$n~yafJgAzdwVG}*H?veWnLfG!N9oj> zL75z~UDoL~aYhg6G{d8j?s>Qv4ykbG@Oeo)r~GZithv2gjCnO@ zmVDS)Tz^a7!aTlvFaT4N{D5 zsBdelJrv*nz^}`_D(Q0d_mYL|*rd@7KTxgJHMN*LL`801z66W?EXeH!Zn&iPf%&zWkhM z($raL6iiD}`N)kgrcda@bk*&_Aix_;bwoBdK(G5Kcj3fN%Q?#51v4a7()sNoQ z^ja(FT5S`gdp|h$XSDXPpfz)4HCKmM3p)J7N29ANb$IqWKvH|V(`&D0_5|v!)77We zUCUt8G0X@4EAJO4ofwCP8ynUT;hv@^-h27b5%KJ8v)*hd&OFS3c&b zXansH`syFS*_3l(dF69%j}IQzTI*v*C5N9Ib}s-){n&R0a2!t=;o9=2HnAh|0;V``xKBLmGsk~uYC;k9SQ*ObUN7ekD7SeW28o%1^S~V{FS!Kn+19G<7QgeC1j77 zSvrZ`;dn|T57$2jOVB7dFdDf7VnGHx5EBDG{jIf#k za?HU=t#bwqE#DS_O75VbYNbq&ms%~xqo)b-G1?)|(Z}yhA2T$YX>gkG zC!|Lx#ndBXd826Z$c=pF`el!;G?>G)7(=fRh{H69j2d*Fll)7`CVe3z zBHa+dKxx<_DXDf-21ixXu5D2?r&yaP13px!P1n@Z&keHfK&CtC!?YH3eNin)oFR;v zVU^Y)L_jS0odQZ>c#YpNlk}$g9g6x7nrrZlf@?78#Qyw_I@vUo+|_|9P1Tf}tHPRu z=pe%T`L?gQqpumLIOX$!VNeWBdAH^Sf65<>FZq^+zk7IC_~umHxRGN9BA3D6}XaQBW5P zA1P#Z90D{dh1hCUsx_yFS{tC@WE=!!?QKY1D!dwoI6y6Q40K$AAlz5?%{APawKt|T z;tvMixjRtQ7*pq|O)X+u_kV5Nr_c(9zQWLWE5Ub}q4F7;4t~X@D-@gK3=Vqp#Pr8L zPTB6wT+rz_;~Y*MqeReqn%|~{kW+`m%bc7M)^HeC1rMPA7$ZGtorcz;uQ)b6&g*pi z3a(92CnOx0Z{f1&dQ(xa?jkhYM*N4T?E*6#fO zZsYUZ3%&bjY&h_vn7y>fzGE-BSq$pxspk#Yl}~4~j3(#jXmSOdS=E8llzh@C)8mlx z$<-aF1~B6oNE^EO0J|+Qk6(I8Kuo-(){}m>x#7i!8Aq;RJXqST;He8;!%00tAQ^G<{V)u?N*x!*x zHsZio3R4Hd+W~nJSRJXSq9IbIX>zg*fm5sn{l3C3LOD8Na1FX+YN`HE0p$i7`ArZ8 zD)PfCUSRa8N-_<~&@s0uykt+nQI6P;F?jn(DVJNkbcpHoa7jAW+kg{YDkT#@abHwq@_7qEGOhG8aM zq*9#H)+fIRKp4)LiF@6l+fzIWKv+jJ_96QJo=*mDIJl~#ZvM56NLD`Y$8r9-LD_`~)vd#b$aci%UTCPCiZKM?&@<=8l^hk+RXQ({l&tOm zJ+fh<_U;eiAPYTC#Z38aCABcRDh?@L(8vSA{|cZ20lW->a(>TAjK_L@C;%blNX39~ zeg7N*)@tq~4mx-cg?+c{Z2>%a2FKG7C^0^9DDx{C1d;dkE9ho$8L9GjtKV1bWW3ZJ za%C3-+`1|I-Kv9UL8SK4HCQD*K#LgDJfGpCU{nJxJ&N%Pl4J0(Z?rlMoG2K)^Na&G zW_qqBJ)?NL8Zvbx1s)GcN(k$i&>QYjk+B)fY=bi2h4jc))8*xEZ5)HP@4wWi__>*8g1<1nMZk}O`otcShs3&v};Tc zE=Nu;Kpq5f66SXs@p8zXVHXs`2Zv2QHv<@2?}`{%bT&dpMlzTCoV1(n1b~_8OTKGG z-tOp0CQivTlL>){gzQjA&{5)Jj3tL(XsvgtEo#<;bW1a8RY_ov-NoF~{1h)4V9^hN z;TIomWK=m>w%)uELPO^B0;ZehO^|_zOkF*hP+SXMRVO)A0FB177rxM_iD%w}?f_+? zG1Cmxh^WI_Y6UnV{yQId?S6z9je+8aY?{I+0#fSxk@S8303 zyxs^{XH26lqSFO%ycAj7kr;8%lukjPI{>KHwjrl<-cIk0-931ElBS}7_CRB#%?;$d zf3e>Bqj$kuk0pd2brm|%OESK5AQL!9%yiY&p&V4W-O%d3$`<^%l^9$PldMNqK=p^5 z`+PFy8$}|8fLu^{$&0&7VYlAHe=w9ptFHToyOwwhJwnlvdxkiOwZ(-G(oERBki_Q5 zcZg&I4RBN#BiitpJ%;Ta*HbgVFHAWB&2V^ah~)Tjf-x>4r`qGGGyFhq&VEXuz$!RO zla()s)HqYLc@d>G+PWHXMF7P`2nK`T5=IONfx~;>VC#{aR|&o9n-p zl&W=c4E3%<|86X=ZD8n|5sp{=CRZOg$WeS>^}H_dpCrRZeh;XRiygr}Ajek(!H4SAIU+6Jd9+5$EByVhX|Ghf2UrrGYc2PoDyfl%S74+Ol1#3FVkU;_Y=X2;WkH( zf(NW%!1d-bW3^+R!Knwl1F*%Bgsm18#tT?eqT-~%0LI7@Cru38(+xttD0b!8Rhzt+myUH>c<0bBMDqU z2;uz1!L7`5LJ)`OiPx+3+?cAgT6Oi0$;hKvVa~1>bwi&>CDnU{X$P0Oy9>8!YwN)y5|RJ7QV27Ws@c{dlb7`)(|aCud6>kP5i+E>k0C8t1idwRldJo|@?qT9(5BrT$;D)p)CHN*AC1tDv0vf2x@-2Nco4 xh ncpfs-2.0.0 +- Changed the numbering scheme :-). +- Added npasswd. Many thanks to Guntram Blom for his work! +- Hopefully improved error messages a bit +- Hopefully made slist a bit more robust + ncpfs-0.23 -> ncpfs-0.24 - Fixed a bug that made it impossible to umount a filesystem after you tried 'mkdir .' or 'mkdir ..'. diff --git a/Makefile b/Makefile index 6609631..02a1d3d 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # Makefile for the linux ncp-filesystem routines. # -VERSION = 0.24 +VERSION = 2.0.0 # If you are using kerneld to autoload ncp support, # uncomment this (kerneld is in linux since about 1.3.57): diff --git a/README b/README index 830f12a..22aa684 100644 --- a/README +++ b/README @@ -3,6 +3,12 @@ some little utilities it also contains nprint, which enables you to print on NetWare print queues. The opposite side, pserver, is also provided. +I'm planning major changes in the structure of ncpfs for Linux 2.1.x +which will break the binary compatibility. So I changed the numbering +scheme for ncpfs. ncpfs-2.0.x will be the version to be used with +Linux 2.0.0 and older kernels, and ncpfs-2.1.x will be the version for +the development kernels. + INSTALLATION Before you start the installation, make sure that your kernel has IPX diff --git a/ipx-1.0/ipx_configure.c b/ipx-1.0/ipx_configure.c index ba93a2b..da72787 100644 --- a/ipx-1.0/ipx_configure.c +++ b/ipx-1.0/ipx_configure.c @@ -12,6 +12,7 @@ #include #include #include +#include struct option options[] = { { "auto_primary", required_argument, NULL, 1 }, @@ -66,8 +67,14 @@ main(int argc, char **argv) s = socket(AF_IPX, SOCK_DGRAM, AF_IPX); if (s < 0) { + int old_errno = errno; sprintf(errmsg, "%s: socket", progname); perror(errmsg); + if (old_errno == -EINVAL) + { + fprintf(stderr, "Probably you have no IPX support in " + "your kernel\n"); + } exit(-1); } diff --git a/ipx-1.0/ipx_interface.c b/ipx-1.0/ipx_interface.c index bbf9776..e1ef8fe 100644 --- a/ipx-1.0/ipx_interface.c +++ b/ipx-1.0/ipx_interface.c @@ -15,6 +15,7 @@ #include #include #include +#include static struct ifreq id; static char *progname; @@ -118,8 +119,14 @@ ipx_add_interface(int argc, char **argv) s = socket(AF_IPX, SOCK_DGRAM, AF_IPX); if (s < 0) { + int old_errno = errno; sprintf(errmsg, "%s: socket", progname); perror(errmsg); + if (old_errno == -EINVAL) + { + fprintf(stderr, "Probably you have no IPX support in " + "your kernel\n"); + } exit(-1); } diff --git a/ipxdump/ipxdump b/ipxdump/ipxdump deleted file mode 100755 index b6c3cbbe14bf50e2591f85c829b41f7ffe4aa8ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7604 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 diff --git a/ipxdump/ipxparse b/ipxdump/ipxparse deleted file mode 100755 index f98b1467b4aeb59ce404b269d0730df92d1cda9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10891 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 - ncp_add_byte(conn, source->object_security); - ncp_add_word(conn, htons(source->object_type)); - ncp_add_pstring(conn, source->object_name); + ncp_add_byte(conn, object_status); + ncp_add_byte(conn, object_security); + ncp_add_word(conn, htons(object_type)); + ncp_add_pstring(conn, object_name); result = ncp_request(conn, 23); ncp_unlock_conn(conn); @@ -2163,6 +2174,43 @@ ncp_login_encrypted(struct ncp_conn *conn, return result; } +long +ncp_change_login_passwd(struct ncp_conn *conn, + const struct ncp_bindery_object *object, + const unsigned char *key, + const unsigned char *oldpasswd, + const unsigned char *newpasswd) +{ + long id = htonl(object->object_id); + unsigned char cryptkey[8]; + unsigned char newpwd[16]; /* new passwd as stored by server */ + unsigned char oldpwd[16]; /* old passwd as stored by server */ + unsigned char len; + long result; + + memcpy(cryptkey, key, 8); + shuffle((byte *)&id, oldpasswd, strlen(oldpasswd), oldpwd); + shuffle((byte *)&id, newpasswd, strlen(newpasswd), newpwd); + nw_encrypt(cryptkey, oldpwd, cryptkey); + newpassencrypt(oldpwd, newpwd, newpwd); + newpassencrypt(oldpwd+8, newpwd+8, newpwd+8); + if ((len = strlen(newpasswd)) > 63) + { + len = 63; + } + len = ((len ^ oldpwd[0] ^ oldpwd[1]) & 0x7f) | 0x40; + + ncp_init_request_s(conn, 75); + ncp_add_mem(conn, cryptkey, 8); + ncp_add_word(conn, htons(object->object_type)); + ncp_add_pstring(conn, object->object_name); + ncp_add_byte(conn, len); + ncp_add_mem(conn, newpwd, 16); + result = ncp_request(conn, 23); + ncp_unlock_conn(conn); + return result; +} + long ncp_login_user(struct ncp_conn *conn, const unsigned char *username, diff --git a/util/ncplib.h b/util/ncplib.h index 2638b36..ff83776 100644 --- a/util/ncplib.h +++ b/util/ncplib.h @@ -104,7 +104,7 @@ ncp_initialize_as(int *argc, char **argv, int login_necessary, int login_type, long *err); -/* Open an existing permanent connection */ +/* Open a connection */ struct ncp_conn * ncp_open(const struct ncp_conn_spec *spec, long *err); @@ -183,12 +183,21 @@ ncp_scan_bindery_object(struct ncp_conn *conn, struct ncp_bindery_object *target); long ncp_create_bindery_object(struct ncp_conn *conn, - struct ncp_bindery_object *source); + __u16 object_type, + const char *object_name, + __u8 object_security, + __u8 object_status); long ncp_delete_bindery_object(struct ncp_conn *conn, __u16 object_type, const char *object_name); +long +ncp_change_object_security(struct ncp_conn *conn, + __u16 object_type, + const char *object_name, + __u8 security); + struct ncp_prop_login_control { __u8 AccountExpireDate[3] __attribute__ ((packed)); __u8 Disabled __attribute__ ((packed)); @@ -256,6 +265,13 @@ ncp_login_encrypted(struct ncp_conn *conn, const unsigned char *key, const unsigned char *passwd); +long +ncp_change_login_passwd(struct ncp_conn *conn, + const struct ncp_bindery_object *object, + const unsigned char *key, + const unsigned char *oldpasswd, + const unsigned char *newpasswd); + #define NCP_GRACE_PERIOD (0xdf) long diff --git a/util/ncplib_err.et b/util/ncplib_err.et index 3e785d3..f0d5bb6 100644 --- a/util/ncplib_err.et +++ b/util/ncplib_err.et @@ -33,4 +33,7 @@ ec NCPL_ET_NO_PASSWORD, ec NCPL_ET_PWD_TOO_LONG, "Password too long" +ec NCPL_ET_NO_IPX, + "Could not alloc IPX socket. Probably no IPX support in kernel." + end \ No newline at end of file diff --git a/util/ncptest.c b/util/ncptest.c index ad9a268..75488c4 100644 --- a/util/ncptest.c +++ b/util/ncptest.c @@ -106,7 +106,30 @@ test_create(struct ncp_conn *conn) return; } } - + +int +test_change(struct ncp_conn *conn) +{ + long result; + unsigned char ncp_key[8]; + struct ncp_bindery_object user; + + if ((result = ncp_get_encryption_key(conn, ncp_key)) != 0) { + return result; + } + + if ((result = ncp_get_bindery_object_id(conn, 1, + "ME", &user)) != 0) { + return result; + } + + if ((result = ncp_change_login_passwd(conn, &user, ncp_key, + "MEE", "ME")) != 0) + { + return result; + } + return 0; +} int main(int argc, char *argv[]) @@ -120,7 +143,7 @@ main(int argc, char *argv[]) return 1; } - test_send(conn); + test_change(conn); ncp_close(conn); return 0; } diff --git a/util/npasswd.c b/util/npasswd.c new file mode 100644 index 0000000..0f2e551 --- /dev/null +++ b/util/npasswd.c @@ -0,0 +1,144 @@ +/* + * npasswd.c + * + * Change a bindery object's password + * + * Copyright (C) 1996 by Volker Lendecke + * + */ + +#include "ncplib.h" +#include +#include + +static char *progname; + +static void +usage(void) +{ + fprintf(stderr, "usage: %s [options]\n", progname); +} + +static void +help(void) +{ + printf("\n"); + printf("usage: %s [options]\n", progname); + printf("\n" + "-h Print this help text\n" + "-S server Server name to be used\n" + "-U username Username sent to server\n" + "-t type Object type (decimal value)\n" + "\n"); +} + + +int +main(int argc, char *argv[]) +{ + struct ncp_conn_spec *spec; + struct ncp_conn *conn; + char *server = NULL; + char *object_name = NULL; + int object_type = NCP_BINDERY_USER; + unsigned char ncp_key[8]; + struct ncp_bindery_object user; + long err; + + char *str; + + char oldpass[200], newpass1[200], newpass2[200]; + + int opt; + + progname = argv[0]; + + while ((opt = getopt(argc, argv, "hS:U:t:")) != EOF) + { + switch(opt) { + case 'S': + server = optarg; + break; + case 'U': + object_name = optarg; + break; + case 't': + object_type = atoi(optarg); + break; + case 'h': + help(); + exit(1); + default: + usage(); + exit(1); + } + } + + spec = ncp_find_conn_spec(server, object_name, "", + 1, getuid(), &err); + + if (spec == NULL) + { + com_err(argv[0], err, "trying to find server"); + exit(1); + } + + spec->login_type = object_type; + + printf("Changing password for user %s on server %s\n", + spec->user, spec->server); + + str = getpass("Enter old password: "); + if (strlen(str) >= sizeof(oldpass)) + { + printf("Password too long\n"); + exit(1); + } + strcpy(oldpass, str); + + str = getpass("Enter new password: "); + if (strlen(str) >= sizeof(newpass1)) + { + printf("Password too long\n"); + exit(1); + } + strcpy(newpass1, str); + + str = getpass("Re-Enter new password: "); + if (strlen(str) >= sizeof(newpass2)) + { + printf("Password too long\n"); + exit(1); + } + strcpy(newpass2, str); + + str_upper(oldpass); + str_upper(newpass1); + str_upper(newpass2); + + if (strcmp(newpass1, newpass2) != 0) + { + printf("You mistype the new password, try again\n"); + exit(1); + } + + strcpy(spec->password, oldpass); + + if ((conn = ncp_open(spec, &err)) == NULL) + { + com_err(argv[0], err, "when trying to open connection"); + exit(1); + } + + if ( ((err = ncp_get_encryption_key(conn, ncp_key)) != 0) + || ((err = ncp_get_bindery_object_id(conn, 1, spec->user, + &user)) != 0) + || ((err = ncp_change_login_passwd(conn, &user, ncp_key, + oldpass, newpass1)) != 0)) + { + com_err(argv[0], err, "trying to change password"); + } + + ncp_close(conn); + return 0; +} diff --git a/util/nwcrypt.c b/util/nwcrypt.c index 27ee843..de9d955 100644 --- a/util/nwcrypt.c +++ b/util/nwcrypt.c @@ -209,3 +209,131 @@ nw_encrypt(const unsigned char *fra, } +/*****************************************************************************/ +/* */ +/* The following code was contributed by */ +/* Guntram Blohm */ +/* */ +/*****************************************************************************/ + +/* server side (mars etc.) should: + * store the *encrypted* password internally (output from shuffle) + * verify if nw_encrypt(cryptkey from GetCryptKey, old stored password) + == cryptkey in EncryptedChangePassword request buffer (this means + old password was correct) + * decrypt new password in request buffer using (yet to write) inverse of + newpassencrypt with old stored password as parameter + * compute the length of the unencrypted new password as len ^ (first byte of + old internal password) ^ (second byte of old internal password) + */ + +static char +newshuffle[256+16] = { + 0x0f, 0x08, 0x05, 0x07, 0x0c, 0x02, 0x0e, 0x09, + 0x00, 0x01, 0x06, 0x0d, 0x03, 0x04, 0x0b, 0x0a, + 0x02, 0x0c, 0x0e, 0x06, 0x0f, 0x00, 0x01, 0x08, + 0x0d, 0x03, 0x0a, 0x04, 0x09, 0x0b, 0x05, 0x07, + + 0x05, 0x02, 0x09, 0x0f, 0x0c, 0x04, 0x0d, 0x00, + 0x0e, 0x0a, 0x06, 0x08, 0x0b, 0x01, 0x03, 0x07, + 0x0f, 0x0d, 0x02, 0x06, 0x07, 0x08, 0x05, 0x09, + 0x00, 0x04, 0x0c, 0x03, 0x01, 0x0a, 0x0b, 0x0e, + + 0x05, 0x0e, 0x02, 0x0b, 0x0d, 0x0a, 0x07, 0x00, + 0x08, 0x06, 0x04, 0x01, 0x0f, 0x0c, 0x03, 0x09, + 0x08, 0x02, 0x0f, 0x0a, 0x05, 0x09, 0x06, 0x0c, + 0x00, 0x0b, 0x01, 0x0d, 0x07, 0x03, 0x04, 0x0e, + + 0x0e, 0x08, 0x00, 0x09, 0x04, 0x0b, 0x02, 0x07, + 0x0c, 0x03, 0x0a, 0x05, 0x0d, 0x01, 0x06, 0x0f, + 0x01, 0x04, 0x08, 0x0a, 0x0d, 0x0b, 0x07, 0x0e, + 0x05, 0x0f, 0x03, 0x09, 0x00, 0x02, 0x06, 0x0c, + + 0x05, 0x03, 0x0c, 0x08, 0x0b, 0x02, 0x0e, 0x0a, + 0x04, 0x01, 0x0d, 0x00, 0x06, 0x07, 0x0f, 0x09, + 0x06, 0x00, 0x0b, 0x0e, 0x0d, 0x04, 0x0c, 0x0f, + 0x07, 0x02, 0x08, 0x0a, 0x01, 0x05, 0x03, 0x09, + + 0x0b, 0x05, 0x0a, 0x0e, 0x0f, 0x01, 0x0c, 0x00, + 0x06, 0x04, 0x02, 0x09, 0x03, 0x0d, 0x07, 0x08, + 0x07, 0x02, 0x0a, 0x00, 0x0e, 0x08, 0x0f, 0x04, + 0x0c, 0x0b, 0x09, 0x01, 0x05, 0x0d, 0x03, 0x06, + + 0x07, 0x04, 0x0f, 0x09, 0x05, 0x01, 0x0c, 0x0b, + 0x00, 0x03, 0x08, 0x0e, 0x02, 0x0a, 0x06, 0x0d, + 0x09, 0x04, 0x08, 0x00, 0x0a, 0x03, 0x01, 0x0c, + 0x05, 0x0f, 0x07, 0x02, 0x0b, 0x0e, 0x06, 0x0d, + + 0x09, 0x05, 0x04, 0x07, 0x0e, 0x08, 0x03, 0x01, + 0x0d, 0x0b, 0x0c, 0x02, 0x00, 0x0f, 0x06, 0x0a, + 0x09, 0x0a, 0x0b, 0x0d, 0x05, 0x03, 0x0f, 0x00, + 0x01, 0x0c, 0x08, 0x07, 0x06, 0x04, 0x0e, 0x02, + + 0x03, 0x0e, 0x0f, 0x02, 0x0d, 0x0c, 0x04, 0x05, + 0x09, 0x06, 0x00, 0x01, 0x0b, 0x07, 0x0a, 0x08, +}; + +/* + * verschluesseln des neuen Passworts fuer keyed change password + * Verwendung: + * - Shuffle (aus nwcrypt.c) altes passwort nach old (16 bytes) + * - shuffle neues passwort nach new (16 bytes) + * - nwpassencrypt (diese Funktion) zweimal aufrufen fuer je 8 bytes: + * nwpassencrypt(old+0, new+0, out+0) + * nwpassencrypt(old+8, new+8, out+8) + * - NCP-Buffer aufbauen: + * 2 byte Laenge im Hi-Lo-Format + * 1 byte Funktion (0x4b) + * 8 byte (nwcrypt Ergebnis analog login/verify password) + * 2 byte Objecttype + * 1 byte Objectname-Laenge + * n byte Objectname + * 1 byte (Laenge des eingegebenen neuen Passworts ^ old[0] ^ old[1])&0x7f|0x40 + * 16 byte (Ergebnis dieser Funktion doppelt aufgerufen, s.o.) + */ + +/* + * Encrypt the new password for keyed change password + * For info on how to use this function, look at ncp_change_login_passwd + * in ncplib.c. + */ + +static void +newpassencrypt(char *old, char *new, char *out) +{ + char *p, *bx; + char copy[8]; + int i, di, ax; + char cl, dl, ch; + + memcpy(copy, new, 8); + + for (i=0; i<16; i++) + { + for (di=0, ax=0, p=old; di<8; di++, ax+=0x20, p++) + { + cl=newshuffle[(((copy[di]^*p)>>4)&0x0f)+ax+0x10]<<4; + dl=newshuffle[((copy[di]^*p)&0xf)+ax]; + copy[di]=cl|dl; + } + + ch=old[7]; + for (bx=old+7; bx>old; bx--) + { + *bx=((bx[-1]>>4)&0x0f)|((*bx)<<4); + } + *old=((ch>>4)&0x0f)|(*old)<<4; + + memset(out, '\0', 8); + + for (di=0; di<16; di++) + { + if (newshuffle[di+0x100]&1) + ch=((copy[newshuffle[di+0x100]/2]>>4)&0x0f); + else + ch=copy[newshuffle[di+0x100]/2]&0x0f; + out[di/2]|=((di&1) ? ch<<4 : ch); + } + memcpy(copy, out, 8); + } +} diff --git a/util/slist.c b/util/slist.c index 08b2075..9c2a773 100644 --- a/util/slist.c +++ b/util/slist.c @@ -41,9 +41,9 @@ main(int argc, char *argv[]) *p = toupper(*p); } - if ((conn = ncp_initialize(&argc, argv, 0, &err)) == NULL) + if ((conn = ncp_open(NULL, &err)) == NULL) { - com_err(argv[0], err, "in ncp_initialize"); + com_err(argv[0], err, "in ncp_open"); exit(1); }