From d2fb4e0cb7a957592a5041db378436199f17cc8b Mon Sep 17 00:00:00 2001 From: iamhyc Date: Wed, 25 Dec 2024 19:18:39 +0800 Subject: [PATCH] chore: scrypt switch to local vendor version --- .../main/ets/entryability/EntryAbility.ets | 2 ++ entry/src/main/ets/importers/aegis.ets | 13 +++++------ oh-package-lock.json5 | 21 +++++++++++++----- oh-package.json5 | 2 +- vendor/scrypt.har | Bin 0 -> 8486 bytes 5 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 vendor/scrypt.har diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index b5dbd5f..c0831d6 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -66,6 +66,7 @@ import { buffer, util } from '@kit.ArkTS'; import { IconManager } from '../common/icons'; import { dispatchImporter } from '../importers'; + export class PreferencesManager { private _instances: Map; private _secrets: SecretSchema[]; @@ -863,6 +864,7 @@ export default class EntryAbility extends UIAbility { } // TODO: restore settings } catch (error) { + console.error((error as BusinessError).message); promptAction.showToast({message: $r('app.string.setting_import_message_failed_decryption'), duration: 1000}); } finally { await fs.close(file); diff --git a/entry/src/main/ets/importers/aegis.ets b/entry/src/main/ets/importers/aegis.ets index 523dbfc..6ee9b14 100644 --- a/entry/src/main/ets/importers/aegis.ets +++ b/entry/src/main/ets/importers/aegis.ets @@ -93,12 +93,9 @@ async function scryptKeyDeriveWrapper(password: string, material: ScryptMaterial } async function callScryptKeyDerive(password: string, material: ScryptMaterial): Promise { - console.time('scryptKeyDerive'); const task = new taskpool.Task(scryptKeyDeriveWrapper, password, material); - const result = await taskpool.execute(task, taskpool.Priority.HIGH); - console.timeEnd('scryptKeyDerive'); - console.log(`${(result as Uint8Array).buffer}`); - return (result as Uint8Array); + const result: Uint8Array = await taskpool.execute(task, taskpool.Priority.HIGH) as Uint8Array; + return result; } export class AegisImporter implements ImporterBehavior { @@ -232,7 +229,7 @@ export class AegisImporter implements ImporterBehavior { if (slot.type!==1) { continue; } const scrypt = slot as ScryptSlotSchema; const salt = hexToUint8Array(scrypt.salt); - const material: ScryptMaterial = { n:scrypt.n, r:scrypt.r, p:scrypt.p, salt, length:32 }; + const material: ScryptMaterial = { N:scrypt.n, r:scrypt.r, p:scrypt.p, salt, length:32 }; const key: Uint8Array = await callScryptKeyDerive(password, material); // try { @@ -254,7 +251,7 @@ export class AegisImporter implements ImporterBehavior { private async encryptAegisDB(password: string, db: AegisDBSchema): Promise { const salt = await generateRandomAad32(); - const material: ScryptMaterial = { n:32768, r:8, p:1, salt, length:32 }; + const material: ScryptMaterial = { N:32768, r:8, p:1, salt, length:32 }; const key: Uint8Array = await callScryptKeyDerive(password, material); // derive master key @@ -285,7 +282,7 @@ export class AegisImporter implements ImporterBehavior { nonce: uint8ArrayToHex(slot_nonce), tag: uint8ArrayToHex(slot_tag), }, - n: material.n, r: material.r, p: material.p, + n: material.N, r: material.r, p: material.p, salt: uint8ArrayToHex(salt), repaired: false, is_backup: false, } as ScryptSlotSchema], diff --git a/oh-package-lock.json5 b/oh-package-lock.json5 index 9176db4..658b62f 100644 --- a/oh-package-lock.json5 +++ b/oh-package-lock.json5 @@ -7,7 +7,8 @@ "specifiers": { "@ohos/hamock@1.0.0": "@ohos/hamock@1.0.0", "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19", - "scrypt@^1.0.2": "scrypt@1.0.2" + "libscrypt.so@oh_modules/.ohpm/scrypt@9blwks9x7ytw18qlwbqjmqxg33neqkvco5fkt3vebmu=/oh_modules/scrypt/src/main/cpp/types/libscrypt": "libscrypt.so@oh_modules/.ohpm/scrypt@9blwks9x7ytw18qlwbqjmqxg33neqkvco5fkt3vebmu=/oh_modules/scrypt/src/main/cpp/types/libscrypt", + "scrypt@vendor/scrypt.har": "scrypt@vendor/scrypt.har" }, "packages": { "@ohos/hamock@1.0.0": { @@ -24,12 +25,20 @@ "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har", "registryType": "ohpm" }, - "scrypt@1.0.2": { + "libscrypt.so@oh_modules/.ohpm/scrypt@9blwks9x7ytw18qlwbqjmqxg33neqkvco5fkt3vebmu=/oh_modules/scrypt/src/main/cpp/types/libscrypt": { + "name": "libscrypt.so", + "version": "1.0.0", + "resolved": "oh_modules/.ohpm/scrypt@9blwks9x7ytw18qlwbqjmqxg33neqkvco5fkt3vebmu=/oh_modules/scrypt/src/main/cpp/types/libscrypt", + "registryType": "local" + }, + "scrypt@vendor/scrypt.har": { "name": "scrypt", - "version": "1.0.2", - "integrity": "sha512-N6kw30YLc1PMDGeT26l3I//krw9PQNgy3ph6rxb5DWR7bMDXTUi9RLLPkhsCI9slBVrVdaefkgQjS24nhMzMzw==", - "resolved": "https://ohpm.openharmony.cn/ohpm/scrypt/-/scrypt-1.0.2.har", - "registryType": "ohpm" + "version": "2.0.0", + "resolved": "vendor/scrypt.har", + "registryType": "local", + "dependencies": { + "libscrypt.so": "file:./src/main/cpp/types/libscrypt" + } } } } \ No newline at end of file diff --git a/oh-package.json5 b/oh-package.json5 index fb44e23..ab70ac6 100644 --- a/oh-package.json5 +++ b/oh-package.json5 @@ -2,7 +2,7 @@ "modelVersion": "5.0.0", "description": "Please describe the basic information.", "dependencies": { - "scrypt": "^1.0.2" + "scrypt": "file:vendor/scrypt.har" }, "devDependencies": { "@ohos/hypium": "1.0.19", diff --git a/vendor/scrypt.har b/vendor/scrypt.har new file mode 100644 index 0000000000000000000000000000000000000000..2bc099ec4b524c53bd43c018989186cd2af80c10 GIT binary patch literal 8486 zcmV+>A=%y^iwFP!000003hjLhbQ{&R=pKz^>tj1kV#k3b_#je^-NL)!)6$YY%4^qU!FAGm z-(|fPLcY-VD365L+y=dznKSZ8aR|X-weQt?E&I&b=j_kf=eN%}Ge>DA+ROB?RZXkB z!Il1&&`L)#1{WEePG?C6vZ&boR8uA2I4cYSqTb*&qmu9{j`Jp$*&R%9~h z6D39f=agmT7w&HW6r0w$U9P$u`)c6|)D&k@J#2#SDK;0Iy@>=$@e~5Rt?q zDb9%~E%3LnQ3-A25((7Bq8K0TOR_16jUg_jWa;J-tON52$63_P3rR*ooQS#@k&Pif zh1RWR*)(D%WUgNnm!!1VP*v5-vS}u&;vG>wS;eNRTn?ARS!J^qo0(KBR}Cf>X9Y#Q zbscPyNl9E3-M|VW$EUcIhO@{fH?V?(7kaA1G#jnj;C472PDflyCTy~@S6qSCxiD@$ zT7uk8cg+%)dx^7JNxA}gV=*>{BTLW^SY*oIi zyHAWV633^s4BY2uz;8_T2uzGcQ9hYwBo1@y@U2E0lrm#O)Z$Vsa=C3PYj=LJ+_fre zr49)5CSG7sg74v?NZiOt(Ks8!{DO?cZD3Io;*#kEiz}Nb{#R?$({OPiO~(H~D#mVd z#2l<7UUV6sJ^njgE*HuftDLTyy87zr@qemt_V}+nYk}RA<^>6DMq*UxPfM%Wejh7v z8(2H)kP)qn#0ngfKwD6^z$ejFjw(@zRwWrORmDnTl|pvaHGdNYo`wqswg0ySn*6~I z|Cb`;v-`i>S??zOzoxFXt{(e;)%9-YbpM|!oYnt{eYMaU2%{D*%BB>5rioAY3tUfJ zLW`m{*=ayGHLVH-SK`DrR!DN9>}zl$!roU`Kk5+}>;l?Rx4^Q9@5XMU(8JoX`@p37 zQJNJ*K85%$iQ%wch8Ps()BVL}zFYCvd1BNmLggt z#aU$SAQV=cEG5P=iDI+tg0e_WLmN3M&i6@3U`0vbqL_&taj9scFNU>HlM`H$BO)-l zTz0Y8Eb*vMWbLx5c9i5}TsIC`xn$|St^_B>?bxT21g@)3V(m!8NZF2dT#_nYKq8w+ z6q}=bnqx&I7k5HGITO}Cjg2Z1Gs)iU#yFqMEej_Wo4fmj6ekkDEXE^|mu1SXuRf$*x( znlM`HZEyDm!#APO3givmgjNTFK0ET?*w*gv=s=POciG)|c-+{Tc`rGj`H|%W;v;@L8*^A990^uO$x+2t$yr|9F z9u73EY4NtBwl(c-p$8J+5^Fr{#Ji5>_CAa3WkvX27fS&I#zjGTCl8Q zvv*B+Rj3`Sh?+ueH?;>=t_q`7p%$ONy#qD+QA@zv*y2}Y1#d!4E#5$@9r?Vi-j#lt zDimJjZ!b3Ee2Ri-?J7UUVTs-#@-~G7p&%|vQz#g2_cn#?C>&}JXKB|4I{bFzZ4Y!{ zo2+OLwc3l#*ruTsI8Pvm34?xx4YoJRsg_W?9ADGn&vHaQzqch2T-kw%_uA?tJjl4o{xC1Q;_ovy8sKBKq8#?^dqes8>%m**+I`oT2 zjy?CCLoa;m=+9m}`r;2zr_76AAuvgHBQNxJzPs&CEd20~?mY77_YeJi_u+33A9?WU zBiny==;tpV9o%!|=|R-ixZ1bEjgEZp*~8y{`uHQek3M|Yq`Dm2w(HQ|dyZ`X+2NNS zIDGe$$6t8y==LAs0^kC5bhIEvnGastb@6j&Yrxonl;`{P}n~iMW&~;i*(vE6K??SBG!);k#ct{M7SDw*B~n zmmcn%*w*QY^^%P&bp3S`n>wAUJW}G_|9t2dJBd80Kh27=O^eN3@&ea%WD$p1MfsE{ zp)@0k8+jpyu0z%q?2~yq)^vo~X#D0{cdhjrHCvJ}YRG4N9ok%MMhGF1Nk|PS&Tb0x zYq*rO)GG)~|Dvnh&ZWzub<1L1-CeP+YPQ?yu3gs6bU9hJo2jdFRWr3wmhEPvY;{d_ z)D^3X)z&R@F3YqHgdE9A(?<3}HR>d3YqA0OUz?CCq? zcKYq7m1;uk6n0B)5hwN}dpIfH*Cp?A3S2bF^HteQHr$mCe}B)>7hXR4^MRv3c}U@@ zG~}a$KRB}E-mEy%234*KD+giDX_!{2njZh|Q^$Y!;NfrIbNoj;w4{v0Cwn+a)`(-0 z@%|_wuHrPS^ib;X>+Pb1dbMHc1y%kMr#R=hZ*<|7+{3Yp4DHslw#- zpWCal^&ekC9v!!ceCnchz4M&^*HpXn`+sd+?ezK2l;QLA|IOAElVq(8R>j-1+O6a` z+1g;0509;OYmBTc6s#AC@@cTT+RHr}&R;J&tadBYC&hWe+F(_-lC5?t*(tR)SX%>O zSwfmk#n@DoV?}GjW-FeJWbO`;w>DVu=5K@M;3=9;SIG;Ws%%E<7P~dhC)qU9gV~%0-NSVPU40B&qIK{YOCGa%l6}yfM{)4XVnzbYPZUZTdUo=+PA`Lw<^Z5uD4rd zMXe21%?T^Ei6C*^OjN>aVQYg`GyGcZ)+8%2F-BsrDZ2V4wuz6is~ExBAPIe}-74~Z zLX>Uic}Z4d!Z27|jP2^{u{Lxw36a$pw!f{n=LWTAH>e!nBZeS?jKR<*7XNYWO&b+U!5wZY}iOCd!k77StA zsb*kfsvJduCO(n8+7OqQR1iAgKTfb%fmcNtrg*yJ@CiG>= z_(J}F^|b#tRk#rU53m1{e5^0QiVmhLdQtWG?D@Z@-d%I{{O_9f|E3I|r~cc#L7x`@ z{^hD!_ZNW<_M0Zs3;=K~08nT0y4; zhewuEjcGa(ycFz9cCo@aa@|d3i`CV~C1O=EwwvioNL4*-iWTsjTa^}g>}q9G6zPFf zH-EMb^coxJH8#*|Y@pZJK%cb%ZW5rMu)&C8gXgggL~MhVSw$y#)hJgJTBkHqRTG0o z6N5$*gGLiWRukMn!7!o8K1GvXV@j zf{O0GR5XGO5plvYh39P~kj-(M;#^81FrHM_Eo%r~dF6R636*)f-QbEudRVDRX@HG= zsaS%=Wr;*`Qxs)M%Kg-2T3vWMbKD|AWhBzLCg^MNM}po~e!1Rk7*xCEBLgU(I6i>luDnAg#CK3bSHRTfCZ{aI@qYdN-&#~Sj7d0^6aAsGkV$n4(=N)6f4Ia zK&N3|nh}^pf=#rCTDeUyQ$3;pS^yJ1b%8aL)yO2J$E~I^-(1&u_&6^%h-|b^;G}*> zelf1mHnW?qyz)w|FMcJ=ATcAI(Oc}INY=Fp91;LI38T@ z*DHTdkUtelNqR*AKz)JojAw=$aA%jtfBZ+CLlS@y_ia2iWWa!D5FK?cWEnnPGRgIz5PU>}t>F=c|7^I-Y z@Q6;6uVu(94en<-i!O1*V|TI2V}0 zP6JlGu#+yb;Pe7}(ab`10r0kc_HDjUA&NNkumHeMOmIPvv;WTs$-0^)8%Uret$TX? zH&wWh^k_!9KE@cOT*aZaEAO&Kou{BNTFYp3%m>+zZEf48&Nm976;m&;WRPFH=M zYx@1KDZ|@$xBFXG=qM^1r{SN0(xiJxXq>0TEd?`p;1ZY%%35wBUw-J+<%ULr zrwHA-V199KD7$rp&Y(?SkQ<&b<%U{1tZQinLD%PoZ|HKve7d(UQQ~h0a>F)~{UOMu zQ};2_L|(c+H{4C-hN@lK4@)uq=g{-d#tHpoJqVrMqQvt<^}S9tRBiv&!&0mOE*$ja zFHQ8x53hyXP?cxUJcm|=I@AK_i9d~(0xN@SK)2$*IGX=BR`9bYUR^&Qz0&{e|N8gG zK1(0m946~@SDXXC1OTj);IBPLehvU;O@iMF05d1S-+PYyKRyS3?>X@Q{T%p%=fIDh z1Ah%QIll26_>ObnDVcvUJn@xWe4&glfoJpZCYetWB(6~6Unlql1Ybss{e6OW6Z}gA zuP5!}MuPw4D^>p!T-pF^aKgu3Ex$RVO_`ZJ&er+J~`r+uyYw=KViN-Ek z`Pim&Nt?m_Znnl&6{HVfun>8;UC$tTX`!6-m2-jNGt$)lr>?4vdFgoQEFpC*4`&fB z#Yqt9=29F)A_CjPi4rSBy76{EgiCev5Q#97njYQ6;756L03wkXI~hSc!I2k7m5r|y zljb7I=2unUeibT5< zp;-hzlZ`QW(3fB3IZ>Hav0f`v-5HzFGLy>e6$w=DT(c2 z1+KdvWCTu4GKmBqg(RDdru#uuUS4cp3ix9wP#7e*E+)!GurS9ru)CGux}qeU@WIsa zpC*;3&UYvee=q5Oi}LWhNPcG?UQgx+Pagga(x23MPQ|P7u{`{ZBtJCg;{QMzS?Mw* zr1X&EU(D6uwQU?}@Y;61NQ2k<4^9nUJD<%Z<-#t`91XsWQ2^hc3$Tj<=)6>!%VL)*bCGIm>KpAq-F6u@ zuc%UvWBhzPPtMA%Ka8uva%KT+!U$hUx}|6Vx?lfj!6QZ`9nX=+W&!vpIsINrlL7O^ zZ~GOMP0Ycnyj_@YS*|=gE-Nly8JU}XC2irN1#S212K5gVe8>1*^MgeXl|DM_k+O;W z*d8~QlR4X0lKy(pg3g@$B@dT=Z`SwA9-Z^Z+=XP$-#>@=3ceCgThRhfHhnHoCX1OrBZH;mu(jTaK6{A$rMBL($1trF1((5;zL9A4f{m0qU9o1aj2db4*ZvmFM0Nk@Kvmb`l= zs09}3d%D3s5ehcQH~WX)re_a-RP7nh?4xA)?@%z9Y0|xUdUN5>M@?ts?o;G`6SlR(A>a@0gMr8Q z!JCKZN?GnR9BG09ti$hcehO-j&GS58c?sNlIR)Xzwyz&Mc)ybV8=S5q{EjUipaII{ z=fSJx^mpjW;a4aad>iXENqHF>mv`mRM@?tS+N6`q`WSul*um`z|EIP3?p{3bekN1# z*!G*p4vI?pkG1K}s|ViAWGW68`fP7kc*ftY^gNH#chl>~-pOPt?xkSx6&=(ZqjifT z2yUe*2%AoB9bF8joe>J&H|Zd30@Kdr6!rcP1>xg#ja2mG*?$z;Mb!gTNbemmKxH!F<&^P#^l2u1B$KIF$T$K*3pk?YVq52#qb6S2H&A)41JW0dwAMb=)!LW5iSA6>j=wU=xM2);lL-@6=RL3d0a(Ilc9G=77cHcvH!T>6~ zedKMreE5eY9$DvwmREj?_1;|oBahGVj&#mnn0jo!HMP5d8i`Oa_?oW5Qb~LMkMVN& z>fAyY*j?ZmIi}n3@F^<{{83l&e%x%_2?iM1UEm!712saO&V=8l%Z9^pyC@$Xw|K@+ zgnUCEuWcF{i!=_M-u&P8v}XGmHS`x=H}pvlJv0{44}HAWFmxhRAde$sv~KaoGz`N> zTSiaNy2U4HYH>9MgU_0wW}GgU?Noni>*y!++~NPEVHn%$Y6=FwRtO(<{v(Xtk;#O^ zCa9UnGkdu6A3bC5&~s#4E|m3~GyD!+zW5SChwJRwLa1ptwRQB2-4?&5yL9J^jqufL z#Vz+8D}?da8gU)Lcp*TUN^7QI@KgcJ%;?H`kpaSMGMSp!zOi}l%T~D6WZHk}qQ}bS z#lIFG+lSj9b?MIK)SUN^7kb8ZcLYAU0^__e@E$#X_bO!!1-#n8uV{X=6B-_R#LO+$a-aXop5)bZ)`=9h*}Sz!F*wYs4b zAzE&$k5f={W*l6M+vLY|<>EE*c^#){dhxdAx}DfA2kF_1{|#X9_quY+sRH=WE6Zsb z`gm>Q&?$>&{PgBu@4>uJ&bVysM2H$PAdjs`@3j>g8*RnDCYye)&o;yEx0QHS*yu$o zZ8q38Ym_or$|#-XIckQ*W`dbVW24Ql#`ZU#0E0!O%$8{EK=T36S?>D!{^rYLqs{k2 zp+$ljmeQLKG}nUJ@_OrN^RD&#o6B?smQhM?aov2N`2mWy7+d!@*XStAlS@aNM_Law zSA)UQ+q%EGj4HJ}M-^F&>}az{&9pQw#W;iIgJlPr*Fd2K^J-o;+I&A{w49&{EF-7LwEJs^Ln`i4vEHzMM zd9~$0bF^i&`6SG=jDp_s$jfrOIGxFS_w?pp?a9HNBd&38;Ln?19x4TRX6BE4@J z<|Et8Fh&sSn)ew(uda2Ml69H7K2hbWYwc$Up}OW&<*94mg(Rc8R=tbxKlv%qhh$WJ z^)QL6`)KO^hk6V_w%O&qI?(Kc%+E_#*DmUQrMhO#->1A-@WxmEwn7ysxJcl@dw~&o z?+hGx$4`Bh*i8~RdUy#ODPCe7_yr;d7h_Wj){#y~;1JjZqddu5ijFQ(1V^ktB}xJ~ z*f`lCjK>6U;1{KEeuuylx>$co$=sh*M1!Lz)#r#aVtj&_NXH5C>t{>2m`ubZxhOcq zxF`t{(*+KJm*2#a#asllEF^tG?LYbFA?11b^UuD1m`A@umm4lT5B)aM_p<$0mmA(l z!UED3)c&vb({BO5$C(VT(yRSZ4O<9a9S`#NjPE0TU8Pt1uNuCQN3YKdJ4l*JuZ|aL zcvoHn&Tr2f2rrdh9S_y8EpI%_FaPy~zLCV$@lXx5<6-$E^sf<})Z4Z8m~+Fs^7N(h z!gcD~Xe55F^E(yt>;J(#`g<+8;jTP`<=5XOnzK&Oo~x1pb4MOQzWh~r^y+x~1ZnuC zdHM6{cjVElY^Z8L^?p51I_T05%^8ESsQ_pEsdUZZRpOc;= zI;iyOKE0FBd-C$<(?3VbuF_}En+d&o&Rmd3uj*BqCtuyKFC`Q3qVveF&7)WSg{6dk z&w1$I$fM7mvlIHZy!`p}L4wQLkDNm|iGvV05B)FBah|5q=R1ZMZ9e@g!&&ct;cqK1 zvWzeA{-3MfHU0kARN)J~|Mw+a1oB1R|8!2j|2bv&LiMj4zsr{ZTr54#^ZmcerTzZT ziR-_vw$45M{@+w#()xGiegAJZS($X&+JH8jO(tts_H!R=1H#`;JJ?MO{=nan>}S&H z1gCzZjx&>+0`S-A)&}HKO0G>&`M8ve1aL}{OL^M@*{`!vt50cJh=@@xnPE}4db@1?O`C}Zgs)Uj_1IA||5j0318Nia zBqy@hPH1!e^e<0L2|i=|&%S>;)tTUe$A7o8y4E>8{!bOY(D*-D{i|13eZkq_e82zW zuFtQ3x7#&6{!bY$VEk9Feb&4P+kh6`*r0t+);=-N+b0Hk`@}$RL)Tr8Ht<|*dQAR* z20mB+pW@|^=js3MZ2zyRt8=@n!RfB9uAct=pDDv6zyBlKR}1nz?b%I>+#B`eByxQr zvN|-=07=_0vCTrZcw}_WeUZpYenc?up2##KNb+To