From bd85ebf36467fe707d5979798dc21b20a37a80b7 Mon Sep 17 00:00:00 2001 From: Murisi Tarusenga Date: Tue, 28 Nov 2023 07:40:03 +0200 Subject: [PATCH 1/3] Fixed the hashing of signature sections containing secp256k1 keys. --- app/src/crypto.c | 36 ++++++++++++++++++++++++++++++------ app/src/parser_impl_txn.c | 2 +- deps/ledger-zxlib | 2 +- deps/nanos-secure-sdk | 2 +- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/app/src/crypto.c b/app/src/crypto.c index 8fb9c05d..94979a82 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -197,13 +197,24 @@ zxerr_t crypto_hashSigSection(const signature_section_t *signature_section, cons cx_sha256_update(&sha256, (uint8_t*) &signature_section->signerDiscriminant, 1); switch (signature_section->signerDiscriminant) { - case PubKeys: + case PubKeys: { cx_sha256_update(&sha256, (uint8_t*) &signature_section->pubKeysLen, 4); - if (signature_section->pubKeysLen > 0) { - cx_sha256_update(&sha256, signature_section->pubKeys.ptr, PK_LEN_25519_PLUS_TAG * signature_section->pubKeysLen); + uint32_t pos = 0; + for (uint32_t i = 0; i < signature_section->pubKeysLen; i++) { + uint8_t tag = signature_section->pubKeys.ptr[pos++]; + if (tag != key_ed25519 && tag != key_secp256k1) { + return zxerr_unknown; + } + // Skip the public key's type tag + const uint8_t pubKeySize = tag == key_ed25519 ? PK_LEN_25519 : COMPRESSED_SECP256K1_PK_LEN; + // Skip the signature proper + pos += pubKeySize; + } + if(pos > 0) { + cx_sha256_update(&sha256, signature_section->pubKeys.ptr, pos); } break; - + } case Address: cx_sha256_update(&sha256, signature_section->address.ptr, signature_section->address.len); break; @@ -213,8 +224,21 @@ zxerr_t crypto_hashSigSection(const signature_section_t *signature_section, cons } cx_sha256_update(&sha256, (const uint8_t*) &signature_section->signaturesLen, 4); - if(signature_section->signaturesLen > 0) { - cx_sha256_update(&sha256, signature_section->indexedSignatures.ptr, signature_section->indexedSignatures.len); + uint32_t pos = 0; + for (uint32_t i = 0; i < signature_section->signaturesLen; i++) { + // Skip the signature's 1 byte index + pos++; + uint8_t tag = signature_section->indexedSignatures.ptr[pos++]; + if (tag != key_ed25519 && tag != key_secp256k1) { + return zxerr_unknown; + } + // Skip the signature's type tag + const uint8_t signatureSize = tag == key_ed25519 ? ED25519_SIGNATURE_SIZE : SIG_SECP256K1_LEN; + // Skip the signature proper + pos += signatureSize; + } + if(pos > 0) { + cx_sha256_update(&sha256, signature_section->indexedSignatures.ptr, pos); } cx_sha256_final(&sha256, output); return zxerr_ok; diff --git a/app/src/parser_impl_txn.c b/app/src/parser_impl_txn.c index a154ffc3..b70d4230 100644 --- a/app/src/parser_impl_txn.c +++ b/app/src/parser_impl_txn.c @@ -978,7 +978,7 @@ static parser_error_t readSignatureSection(parser_context_t *ctx, signature_sect CHECK_ERROR(readBytes(ctx, &signature->indexedSignatures.ptr, signature->indexedSignatures.len)) for (uint32_t i = 0; i < signature->signaturesLen; i++) { - // Skip the signatures 1 byte index + // Skip the signature's 1 byte index ctx->offset ++; signature->indexedSignatures.len ++; // Read the signature's tag diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index 52dfdeae..82e20147 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit 52dfdeae81bb0b50cf3332f4690ed5c978f15f27 +Subproject commit 82e20147eeacb09234cce1114fd42ba255ae1077 diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk index 30189cfd..40a60bc8 160000 --- a/deps/nanos-secure-sdk +++ b/deps/nanos-secure-sdk @@ -1 +1 @@ -Subproject commit 30189cfd070040e5c144d4dab103d549302dcfff +Subproject commit 40a60bc83c6b1422e047c36beb4018891bc34b12 From 687fb385b81b4cd29e1e411bd66ce7f0afb3b1f2 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Tue, 28 Nov 2023 09:18:12 -0300 Subject: [PATCH 2/3] bump version & update snapshots --- app/Makefile.version | 2 +- tests_zemu/snapshots/s-mainmenu/00004.png | Bin 420 -> 417 bytes tests_zemu/snapshots/s-mainmenu/00010.png | Bin 420 -> 417 bytes tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 350 -> 350 bytes tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 350 -> 350 bytes tests_zemu/snapshots/st-mainmenu/00001.png | Bin 13341 -> 13303 bytes tests_zemu/snapshots/x-mainmenu/00004.png | Bin 350 -> 350 bytes tests_zemu/snapshots/x-mainmenu/00010.png | Bin 350 -> 350 bytes 8 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Makefile.version b/app/Makefile.version index 0b62e91a..d796c687 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -3,4 +3,4 @@ APPVERSION_M=0 # This is the `spec_version` field of `Runtime` APPVERSION_N=0 # This is the patch version of this release -APPVERSION_P=10 +APPVERSION_P=11 diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index 7d9598587f695998e2e709f5aa801c507830b1f0..743f8dd4564ce4750c4b8bd7f130f482fc4ab271 100644 GIT binary patch delta 390 zcmV;10eSwU1EB+uB!6g0L_t(|ob8!i7lR-OhHa<*{}1kByKrNsfM{uYdY{upD?btt zfjI{N0N|-Co#uJ(zX`YhPk-NNu114j&Fk(DcsgtE3Ez8co3uGxV79&)*)qFT*8TQQ{nyqmb zdzXsAyVKnTHFCs5`gaR=p8;f^b_7pi4`6kmFPmy`VTJh;l!>dj9p(V!sde7)sRC` kvT?B900000007L%2V;E0+aZW`4gdfE07*qoM6N<$g2(Z*Hvj+t delta 394 zcmV;50d@YN1Ed3xB!6p3L_t(|ob8#>7K0!NhHIzZ|AD*MF5H-*B3K%o{_pH!GsOf% zWYYuy0N|<2gXVc}zX{j>&+xs|T%ClU&FktHcsk4I3Evy{P1+n& zmtBu^OmC{S8h=eOhZP~*)_-y@({vA@%=%!8O^Pe+q-uw>Q8UC7Mgx?x9r?^)b~^E9 zT*8TQQ{nyqmb zdzXsAyVKnTHFCs5`gaR=p8;f^b_7pi4`6kmFPmy`VTJh;l!>dj9p(V!sde7)sRC` kvT?B900000007L%2V;E0+aZW`4gdfE07*qoM6N<$g2(Z*Hvj+t delta 394 zcmV;50d@YN1Ed3xB!6p3L_t(|ob8#>7K0!NhHIzZ|AD*MF5H-*B3K%o{_pH!GsOf% zWYYuy0N|<2gXVc}zX{j>&+xs|T%ClU&FktHcsk4I3Evy{P1+n& zmtBu^OmC{S8h=eOhZP~*)_-y@({vA@%=%!8O^Pe+q-uw>Q8UC7Mgx?x9r?^)b~^E9 z zDQQEun`dt~zcXF&>Fm5~ygPPJFJ-n1@>-RD>H){(yxIDb_r=IMtm?43xAIQQeL;c! zhw}HRgr=Tb<+{q)fAy!wJ0%!*>aTXl>G0ma{C)kJ8iD1?4!hod`k7cck#}nUV^zlH zq=$+}YONUkjx9TL?)2@;T9>Nq*01^#pZ4yB%CGC!c#JOE`>0-V`JeFQfY9a%s`Cy{ z^OL-H?)Rfr!D{d4E?+*aBy4Vww#QZNvz0%E_*_fAv8?{XQ1;vNjRxc8r%#KPeqJS` z`e2?%gQ56;<|D>m@~4+ZzsvgeH86L(-_+e#m681WVAZ|pt+zg>O=sB*67_WTb6Mw< G&;$Uk29l!y delta 314 zcmcb|bdPC*Zhf>+vjUGp;H{T_H~vq$;ccH`Y-UpGkb^z{x8=ue^}0P zWc>$eeb3ODo3kdqI&*o|p9(!Uhj*v71f(BbdjGQCT3i0eOO6S7yKCwq;!>QSKCbXQ zuppv>qj0`o!{m*cn?Ha0wxw&!yz{HI{!gE2ZPod2t7)^(7ye*Q(~I^JmK%=fq;x*t zur#=B`{uZq(o-pSE32}+)30i7ZN9SW#r>mdKI;Vst E07v1BY5)KL diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 94575c4359da05827ddd19ed8f039e035ad28e16..83c56bd0503d3df3b232b90dafb4fd1db1650812 100644 GIT binary patch delta 314 zcmcb|bdPC*ZhfRsvjR^;;;omyJN{4H;VqwGY^IZU)aCDfb@K_H45H2qNWj@9Cx3p> zDQQEun`dt~zcXF&>Fm5~ygPPJFJ-n1@>-RD>H){(yxIDb_r=IMtm?43xAIQQeL;c! zhw}HRgr=Tb<+{q)fAy!wJ0%!*>aTXl>G0ma{C)kJ8iD1?4!hod`k7cck#}nUV^zlH zq=$+}YONUkjx9TL?)2@;T9>Nq*01^#pZ4yB%CGC!c#JOE`>0-V`JeFQfY9a%s`Cy{ z^OL-H?)Rfr!D{d4E?+*aBy4Vww#QZNvz0%E_*_fAv8?{XQ1;vNjRxc8r%#KPeqJS` z`e2?%gQ56;<|D>m@~4+ZzsvgeH86L(-_+e#m681WVAZ|pt+zg>O=sB*67_WTb6Mw< G&;$Uk29l!y delta 314 zcmcb|bdPC*Zhf>+vjUGp;H{T_H~vq$;ccH`Y-UpGkb^z{x8=ue^}0P zWc>$eeb3ODo3kdqI&*o|p9(!Uhj*v71f(BbdjGQCT3i0eOO6S7yKCwq;!>QSKCbXQ zuppv>qj0`o!{m*cn?Ha0wxw&!yz{HI{!gE2ZPod2t7)^(7ye*Q(~I^JmK%=fq;x*t zur#=B`{uZq(o-pSE32}+)30i7ZN9SW#r>mdKI;Vst E07v1BY5)KL diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index ca420465f052bc9176611de35e7cbbdbdba7f57a..92f14394854f7093f236140a8786f6ab87ad387c 100644 GIT binary patch literal 13303 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 literal 13341 zcmc(Gc{r5)`}P!)Y(0@ZRFpFIt*ohs5-OE_j~Ur!vhO6@6CxvH%aWw0v5m2eF$NKX zv6P9y7%GIu7>p%r@9lY>?{WOz_x%7Or zj)6cRUXvTY-vxmVJqLjf7au(gyrO-(xf}#in=$#_@P6n^29248(x+~$EP61GG~RT% z*>)o51ezUu$n+!dOTqBw^An})a_@IKw-zgQ+lvf2W&>M_gd_Tecz#QCLmZzOTnRNp zd;qn5+iMN627$WHph15cx*WO_*LJx0NG!({-oxCF#n^>F8b`q(uj4kL&(i<-1wVI| zj=88Nb-Wi5NOYATvdN3M4XH;t)}ON!G_thp%DI%*p&S_!wCqouUOBQiFjuQrHpjvR zoWi%K&^2Gln9Q7=3EN+4`ocSZBD%OA%38Vzs+C6T-?6l$GB#-SpfaM!h{rf{(@$cP z7aHW1XPlVSuFUhKIDo?~)$u+O5&^NlA!sz{LqZ+=DDx0gZJsF!*{LM1i%zJ3e@lFY zO>>+f6wcwYl`I6q*j&R3NhLH`2+m>R(hc(c5kKN;obu(aAk^0*Sw@6sOGwZ1|W4 zY=F7YU|Q5z|Fa#1T^m`X*>8o^AV=qF>xg|$Ll;V*!0&dq!wMrD2h`2eiPJD_?NcG* z3L6zgALo6iJ2*JUf??@qB`clZ*pAyswR3}+ttDz`4A>O$!TZ?Q2b_cAYO=UZkRz57 zXdghFt|<_n#zJZ@96cOj4?8u{CT0uP2gRfNKEO6Ss| zF_+S6!I?!mZ(HG-;+Kcxq;HVb2Ll$a@D7%Q_pwnCCYG7P+=Pd&QH?a1wV;tLvfzBH zZ;pdvHjXJP*;*-=oLr*Z^#Zcs_{R&1l)RACW1*2b);ab@_tmB?_*}VX-sP^xU2sz3 z=jc`}Q?*Nik8`tiQz(W1ic3_>rL-MY(nkIwAqisJi>Ax~>juny^S;yR^hcKjjcTTt zIuZ2;2h}-Dx9-MN1eg(>v?rLGG5fn)thqt2dKAhl?NIRw_1KfPff=tnXzf^JObi@r zA5yksuYY(Fc+LtFqF<4zckyZ`OXTuAmFKH`JN+hFve8kkGlb5ocmv?suoRVdFRFeM zV1Lg&z`{4kQjR^5{^_?*kvBLznQ)M=j#vNNa`gX%foH80fk`2h!)<5xZ&?BuU}Vuf=$W@sY4talDDzBTD)geCJ!!PE zx96K`0t6LH7=EfP^Bi}D^ij?HXS=$`jp^%6o?>o&_N(6lwR`wA?GMSR+GZ;seF9+3 zT*udsxLX#22&*m;{Hi>}Rw(h+?(%jeTj-Fx0@%$guWTs3hF3J57bBPaL^|gY`D}t~ zD8b3O)e)4L1x}H$0tlU9flnUiHq5RhEnH1dMGhv^Nk#!AhIEetuFfZQ~;2-Gi9%1)`gVj)OnH0&Yw zqT&1X>l4ce%Ar2UxX?)dLN=~agt`hOi6gE$Js9UOvo4q1tYL0FM}h@nsbSR~won7N zh=7eOWgePVu;xjcwnH^#fWjQJ1TCrUnT69QE}rwBpjd!e?LmT$?Pc-l>WUbA~>S9N9RZI?sbDzhIf7T)z?jc-X5Rz*>)!b-q~YdidV@`s~L3M9oHv(c`vxrFLh{ukG{z!Is;Ah}(lWTN1$9xUL!PIj#p-Te8Ro{MJgukW ztMt@Ww?=a@n-@KEuC`A6q=Lp7%)P4d5;?KLQrK{i-bcS$fsb$V7AC9WqDUQh?zVL3 zZkI*K2UM-WL*aTRNv+G>76=04=y%tSvuBguINm_WQ0PISfxwL+%?^brz0!#iY@_a7 zmQ06ld7*9v2kz$jEqNTPu?9`9GPFR6{r*|Yu9*($5oOO!s_q}o>8Xx5$^jz$d#Q{H z<(k|K*Se);f~yEndHHWgx5Q(>vllKcu@TE??2oharVUXHkHOz9*1nxs6v&U0&hZog zIr(fWzS0HjCzr6cA_-1|a{+=z5ZfxNa>|Q4$k|`}o2`4%2FpJ0=j6G*@Rs?yGJ9*}~8~GfPtJ|<2jCTaG zqb(5h;y69$xkSQ>o4YKuU zIT0N>vdhW`Ei2wTg6unev;!URu33@ZXWhU{?XqIW34w&&j3|IqmFTdWZE& zq0(25EcRu^n1kro*uS2}b96oGI}%MWayL+uO&U6j#x6H4lBsI=6J<=7ulU zo*5JdF;mrdZa<-U$VG@enddf_f!Av3R!}O_h|@JeDDx2P-3yi8%cG*a2ORT3XbEx* zA$7veC-rHGoXH6t$r;*xpL=I{I(keWS@^nL!DWN>wTI%!@U-J(#`xS_Rm6JRr&lBPx8T!xp%1gEMbI zMvWSr|82AxD7UxXlJVt-Kn6SBsV0aS+A!#G(I;8<|1kppFLE%=jE88L2WS_JS0}lO z7+D-=7l3)6u(UjBNUC2_{LEZG^lX25KQvRuWbV0@ zrKLGJ-gVSzT>aVZBTC6vRiYeeNJMQpc&y2BT;1H#(oItf^T5*5BsS`-l^c)Xx8YX8 zpYRLIM*>n^6I@4ePxS1YSF)R`2sK~jk|&ZK6@~HL@~m*exKWT}x)MwCQlcfLUW-Sm z-x#i8e>JZx$nmpP2&Zg4kd%h z%_CMG%m^%XEX$Yv4o(c05)FNw4ZL=(r*O^$0Wf3w`j5i$4R9}}uj)I}GqZC~`YdUY z8*C31G@4^=`QsYl%v4=*b__<`35JKecm8M!zIJht#oF=__&t>ioKd#06{#*silf;HX=@c;=Ue2 zH_*gC-pr$4bUhz2+_Q^ccK7J2rg+04I9-p_43d3Uj=DLPTG?zmpprZ2yRUQmTa_x+ zeLF#=Oz&KlOiy%c2&HCRp8Byy{FJlG&eXsI9r*eA&(Zj(PFTB0rp(jb%|LAv3U$fm zT(6sjlbFqhjAv3p#QvHen`s`%|HlT+My;$*Q{0%1d~`fEh?4MY#@xmTcOUR)*Rz=5ZUIk8~w>2EroJdJ6pBl1-o|$H*3GomhUnEg@GJtWf##RnCWim7$5$lfoR`&|2wmh&9?4gn{Ywa{49b>#zR6#$OR65h~)#X~h zQ!a1rHl6*BreSw4n%O|(OX_em$89t$#t_;t_Tc2J!9IdUnISh~J^I&t zd22do4kC$5LEHHOw2!yU{XIglbHx#RFE)beRv_c1P{ZRhVK60qeO-QlGue*m4buj7 zFb{$psrs)!`?iGHAVW&Efji(-y%R3VVtzltbX@Yedt11ZrWMsQ`ytiVpBmi)MG7Xcpe#R2%ubAp|0)s zWvm9!L~gaelrbrd3u9t6c5PHdFL6Kl(o=2r+&>XpZ&x|PS_;-No~XH^R4}sq`m%9Y z5tubePc=NA8cFI-Hm|=O4JH;`xN7H`i#%x)ngVpl(|w^|=qGDz*hk2Y-4467-y!pXz7dgkJ zWqy`lJ$gqNNfLOKDI>~~eFJnoMy^E@hjx{zs-3DiE|P#5?L2==Le$7w z+dbh<0I2%PlzBJ{mybp^T(Gw>L9EpmqELVogBggozkl5>tSbiy6}|9DOXRFqz3Q(* zL-|48%qSbn;mysE!Z|qn;$gV5E4TOKm;OvICz=qs9TBA%@tTGEc-7y)1hH{OJb(?( zsXr`#gvOtA%@%1P$h#&wd!f*r9H{7<*QJQKE>8+b@IZ=_Is7Y}&^xSUU*>aFOvA}#%(eJH z`!FSc9wC;anwJv0w<4DuYST+oD<8)@M$DO_)0BjMT7KsRhb2Cm>dyF(N%61Qlcq+Z zebuX94)9=BK0A@^$AsvPfthk^<1j|3*Y#25cX5?Dk$nR~&K}-;ZN4LIVoN-H>axuN z5ycWp<41a5h^!tisiFseyWw8y`GcV7dxlF@bgM<)s`T*E_4&mSlOA}p_95_CYTOcl z1p|Zu9G`z|YXCBC?eiiJ=rys`_)C41j~YJ;R) zkZlOfKUAQ_yl2kaPyJ3-2DmPu!1V3Oy9FWxE=iPj&cL+Nri0c0P&bD}+4}B|yjeKE zGNXVfuG@J(@Y}jo%Jis{gnCy6h2C=Wu#^w-;7%Pgd5%J9Q}zA3Ze>}Om8;wp?1a{; zbd`GM$(RTlVQ?jK+nBa8drM0|0h@6M5WgFx*9bu6+qmAzhjV#b%*mX{U!aR-28ru# z9(Qgag9R$yxJk?(B6-=6-$~(3|5R`^e+@ z5kqNTEw~S92h4WL>r1A2MAoC9y)HWrr(&|u0kHUx1>a(`rv}*LJqa6@S3R|OZwmnL zeB7AcwtAlaMUsQ-!$1>GgPfW0u7kvO9 z?ATsO5r|H07&y7O+)Podb^hAccX#&|&=e3J32g+_E>7kyF%%lu%Hd@Z5y#4XcWy9; zVT4n!8w&aR0^wT4x>4rJn~0J~UL@mel52Ot;Lie}cZg-0)-*Q^I&Pk5z>e}&*bfro z3lba@h2f>(!2pvpTIfWkti(gTF}~I1X!=Y07(5NoctaG1Oe4Qww*qt}vzJdl5(ykefI zm>`<*VxVQUruhFB!Teu*`~Md0EBMUGFCbe>cA(|G0#q>uoC1iT?1s3S3ND)i7sMHKZz9gBBy#PENduYVFXRnlbsHSn! z&)cC<#v?ySwIa^4060(e;TxzS79n*l+l06bG^}rzZ``s z^K3TS$a-gIGT4m)^IY3{-_kh6v@Qn}2mt??s0G_A_tAz=Lws>KXXsR4+@*^=U6aB&i%xe}=yd zCr=I~l^^>8yZ6i$kb0V`d~25I!5~wyI{?cx^)3GqsUPtsOz#7rEsck}**N9@$$E`D zrI#V|R7VxUIi4xw_lxc~rCNpp6#~ubf%<;apG++5(7dCVodW(rYNW4^XQL0O_(a=} z#rHsKj#gt$TxMl}XJ(z%^MxhTMAx5_{ zB|aNS@OkDH4$e)lJS?xF!F*epfVMd3DsuBdlfvtMD0%BCLgsSOV6es(b1Slew<7|$ zB0q8idYr}6Y?ZYuL9D@k_B|HnD?u7~iB6#Q=UTb-Lap-3R+AY#;oeZ7sN~Z43+%DX zbusg4U~iZJ=Lo}DCO5`Wmy1saCaZ8^$C-LPASvD_z_@Az=fl$zLu*?d(UnYhav%Lz zLph{FJ8ARR#?1ae?6*tE=sOmIei9_3D-jP!cX6AtJlBBj=ha7}OBlYkOOc8pS5Q$2 zpIRPFAyB&4w>#qJLm$hp_suhJz(?R z9`QVml@xE2o&(1Pz;P-=69~q^qFjzHLQ)&InUsxZ9t>;GnhF?Av+P;?Smv2rg3cY% zdcPN{yOGeH?u#6_Y-J(nSZ$4~sR5gczk5r52PVbRqYT1<$7r0VkA5Qkyrr-pcVV3Z z+*S!bHiZhgWSPZMiYD|m)526nq2hiq@8viQIV@O)}@zz6}rp57W5DmO6E& z%>?Qv-b~7{!8vqr3xH%hUqfLw^VZL~iq35p^qC}3NeHVe_R{m~>Tatkv&&jSuIZb1i$*jj=H z^XcN(eXmysT%q|=0{Qm3=R3q3{Y1LaL6M=FDT8yW?l^mA z)hXnZ&Y!=o04M$qIDroB*gL%Fj<08xuwyt!0i@@cU)6w2c%u!-%`7JCk^g4luG>h= zr8|lCW;24y@{(5%{agLPilQvYSTtrWJq2V2`<8SEV9(RK{99^3TQ8TaU1V?x{qS^N z+2w*;(D$6PXJb5+GXV~1Y3Zw(zj2Ma^8(^ow4@dNDaC{h#WH!wmV&&-mmJ@In6{%6 z=e*?W*p2}MXalXqd4Hn!yn_{S>-hin__A{1dK?A}_;rzrYi(yh0Xdt7C^mjq$@vvt zFkm{n% z(g;!MhYW45C4E7R^#!);1Xz@s8T558K<`)%#)qBNIe-oAq(31Eu|^HMm(t+ad@W-- zk_q(Sde@#vce5t!fli{#Go0W=g&RnwcjW;11I=h2BFdLmdBcS}{UUJ=<2!1}B^$kr z+o$RHy?a||jOlB+RjUEk1b2dr3DBfdGM=3?`9`pIVooR&2KUd3C2Weu>=qpQ0FKR) zF*(lenFqCn-af4rvPd^P?tXw2_uX7R^>cwu$`6QUZI7(sci=z@*Z1iKjJwde3sF15 zDFwD8PBLL%Yx*TZ3@AYgu7D4Ezi&x4L_^%>E+EX>B7=nFOX_1u z4f>PB7Zlnb0FD)SH{hhm<;@C@W|%zEW&9Pv!82is)p(^|=l$Sb9x!G$;_b)v@GODX z1-}C@U3uif<)eppZaPx#y5yBH^4JZ(RO$L>cw?#c1}QI}JCQmyKl&u>wAZP{`RLYD z)~p&j3kN+yASMFUjFGgr!SU-gm#I|lm{C{?ll8Fk zIL)xu4te5JrPh5!2qzQQuI!Tp_24$T1+C_uz!?x8ip$-*+hGdS59-siqM!Ef4Bg9& zQrx00$u#iZzhHupOP;w#Ti0O&QUe{pZhb5N-MIwpc~N5v!9-V}nzlLpxFeW={S-_q zH5i&q?!zv=tXD>N15O~pN!$%!G&*VLn2d>%NJZQCI}a!GFa`{fU+IwWBZ{zwYVq!e zl<3xKloy_s=z2-lZqqFbFn?zK{R}>HM|&)bLb)n>NP+8)28f?>$?a9=s(~C~GMS9v z2xj$uW~{7dJ(baXjNhR>Q$s38MMpUy=!>1JEfQd(e>smaQBmvWk(q{VC{#;JOR7pk zt)`iNXSZ#Az^{QXZjr0H6+mgX=1M6UWp0)a{}?PXpfZAIsO6|+p!szWvymC02iYQ3 zhZYsY3iG6^`OVTBtvzJv?mym!3O&`#U>3L@gv_Ox=7c@>7e^gVw2{TW?#cGG%T|ZGo$AkA8dT;cOw8-(QA8 zshbbZ)$+vmtdF%^Ej5rE77xqj7kH=485Jw5ra-OcR~G`lqW{P5zwji}Dm zG3q*#TiB$W1`{T(z_6LrtfF^AK>k)*t%48AO1EOb*JPrx=)tZoc&mAGje{z=<|TV=kr8GyDN!Y3 z0$|R|Q4Of%NcWWJ7vI>RolS0q>`@|+JLxYM6bnx2kO=|%fpar`_@(X|_cX+3biW>) zS+FoUX{CeShBldgYfKo$VJrl3_Hg2#m2=BxA$WemwW<9aHZ>ZxD5LEvRfny-$~&SY zJSIs;7&n`a%l@eFd*Gz0oJU5!;oZs>}Oz0MA>IEmWdO%V{Dtsc>a#1jLiGNrxDVH7aVNAMWOEOb2Og zf)VTs%||bx=Up?M_glTOW{vA#Wxm;WD05|5b9u;Se9pbemI7*SJ7Z^)a>B@Bigy0s z&&L>{kvf71sOh1X>)6*|P-`YeNa*oY>VIa^Wmlu?<*m0N)@-2Y4GN$W_WUK#zcxMk zZ!MYsuR}T0zOlpV=C(-YxHjn7{w*6Tvie(cj|iY&AY|CQh5m~N&P4}(i8B|qf!M+{ z#od5h=!liYK~pazKWIM&`su@5I060J>P8*|eSFv}G!p76;#5t+`iMPtVsZh-H(9+a zNBSt>@`Of;Bu2>tg<1oUUCiQk?u;ioQWsr(yAzQ6e?B4RYWqKNSXy^ZQMUC1Y(4RAm&@A zO%SA6e}a>*CS!AFBZ~;Q(y2X|#YlbpSJ`T+`Dmr-b6me1ZhLEV#Y2(2DJWEQa~owcc@5B54~(&nJF4B>_*~#lq;_(Q{Ja-6-jK@UIObRPzw>Cq zQ|`Lb#}xaUE(xv=GfQaQKLP=v8ET+6()P3j5VnBR9!$(Ms03*j^kUW&`EIoYfeh>% z4$NbYk*|-QOO?Xqt{JT&Gd=|i|3j3UqJu9kOxSZOyIdfPEwUdDLB*12AS3J2KgPZlm=0 zN#$>&J`Kcc7Y#NL$b}cbnj1bcMOTmdU|8sho|Pr{lnmelak#_f_W+yud!`zVQTnz) zE_tzH4S%@2iXK~YKIGQ!Ul09mQ+!vBT(V-e=^P;*a02XWqu|9V=SUdR?CNM#x8d^r%Wj%MRD_2Nc?q)qx>6{o`^b2u{ghXF($i!M|N* zKMA7RXF(ejmsIJG8h(L3j8B=l?sPaI@0b2im=!P!xA#ZEr8MTn(o>Ht1pDv1y2L^k zPZZudzvbFGHHbZVvKO7NFv~!QRo>70E@tYU&{fvpF&@c)W2?V z|3HV$t6yz<(no1WtiG}MqW>f6w9{BSA`MVW1Dq@9cH<6i!2>X?nj_=F7{RHh?QLFp z0_1u%2CTOC46unOib$9jrwd&%P{2X+Is<7E|8dW9I7gKz{P4gA%y4w&Fq9sgK)&fH z#a*nKMOgc|3H^MeR*#-Y%<}n@kXGmCExrF)e5Trf8LOt`w zHHsD(H&4&8!b0l-)cQ1myC2L8Qy9 zV}Oj5Nm0dm%mS2q4WTl~3Jx$v$eNQk^7zxA06kg;JUh|Gx%{5KaEHxLUMLs1hZ~!D z=C?2FG#~d+zX1B>TzV5s%R@$ELQeGP;oNPRlePBnkTMxX2K}zfoM3#0d8sDVUA*>J z(pk?-1CMX3?iJ%xO#p+DPtyczWc-afeot$bF)0^%oIOfSfp+?lXzWJfn-43Y%?^sN z&L`3jZ>J+FN5B4xJv`gV+0_g|UIS(UIuFmQ14A`9=~2lp{Q|&a?!n)Mrh3jL{4xFW zVC?N{r|s75_4G~SFo^r{)Z8aZJpg=+TPs8C&sJO80V)#2w#(0FZbaX?2Qq02GV|VU zLwryCkcquav$PPj5PW7PUk*Rh=_mjO z4WHu!0|F}f9beM52-Q!3kL+_$k@Ct^1!aAY;jjaaYCIh(nYg8_xh)nA3vgiVf_7!y zqQPnE??XlmQ?szWSn7#GLFXhp5N%%kB~$ynj#v-C@EsmAe$M(hAo+ZyT6d78n?4=- z#V1>6B0k`PuMqoQ*NfUI=H^b6NMbf=wo3BlVtk7rl7izFYkmI$D5B3k{64oS^}B_P zN3_n(BiiW=zvNzxz^>O#=_ns>ajFJdO+r*xEP#4={l8{^CaDdpKLGI?7}7XtytHC( zcB#^EJ3NXdPL-d~;5WVcF`r9T?IKnDlmUM^d?OC)p*`n17M}KU%d@Lr)g1A=e?JxZ z;!6uG1(K%|{qzEx>4OKwS8@-*_xpS5GE|^t_$c@Rgpb)StX5~6FMSBK4FkL`d?BN4 z721Rk_(l*E|M_`!Lvu58+{MefFKy4rVkSCU=$`RPgqe^{$0ptu*rTP|HDNk${tDs0 z4YSA5ovz-VBmB;Y;F9GfGIRAO^+2nlI&L>w?si3;4Vn33eIUk8X&kM?AOozRg{XaL?_+Q5sLlsYhH0Dnn{!26N znhLT0qVJYSjlRZjJ&is~gyaUE$_Az|{dzQ__qAMlieS3WJld7hNU93EjbL^3b~Jz2 z{q@{UMcyJv?oTii)7Z8eJjDvi2kP}5JI2b3=qqoACE;JC9vQ~YF1@>qQV-d>_v!B7 zyN6rNc0Vp>L82#(*hl0;`c?VkZ2W288)gPuW}5naJ&X4GW7n%_HFX{6y6tAt&_>75 z50)ZnjGxH^#tTRLatK*Io3-iYv%R5#bmP*Q(TlB*zYQbQsHTkbn|AowmTfM*)ana# z9*4(OcBRaH2KyR-d4bEB408BT&gPxl%3E!4gf#K@S}o{^DL#I61-VDx zR-zN7{q71?dN_ZbnV7tXR+q?zgunM&X_i9^?rHXg^9VAM-h6EYlT*~_Cu83%VO`7I ziedlk&b6)OME;_v6j}IS!vPdye3;20t9ZiTO=cM%u={_KfoU^`$!Jx3O; zzc@(gh*8(~`TGP=U-wV#hl{(`V%IZbS|oqIUdh;T^}M7=Qg=R^A_NS#pX00G-)99; zqPHDQeVkHv_eZwJNC_KhA|~`kxylXs;phOUf*!h0FDa=`EUs=F z)T&tv%%s|0S0_poQc8!@r~lxV8r%C^Hx%t4S$wAUoK%SQ$MzE)Nl6XEB1L&tt;poQ zJY-&*>fS&9;6|%LtvUyCL0h+USfq5AbH_4weUo;w5g=ytmrx_S^%djeWd+^WclDqx z?gwMboJHKdb~YtZy81tl>OIwgN5A5SdA#ERr(Wlt7vBETIW=H13xQbsP|9qijA7nwZ>;^^@pl&%D8E zaxYjHy?7e8IjXzcHI>+RH@;4ld}KsoIuA=_)VKkUg)>#c@UuqC&LM#*gVjc!j|i)P zNY8I2_BNrsTUpzWXSRJ9xkIhTV>#Sz$je5D+2!`I(cSE5z9IE+gV2BCZ2LsiUlFK} z)?ZB@Ws6bN_y7By?-9noDFDq{-w7M3jq8hF4TPl{{to9_{lkcZ5d40uB7N)Z#!OL4 z`qKh)t?#z=r=xT5s*RZ$^$+jamh2 zm!gdRPK~wRI@RizBgNlBzHvl2cmDGsmnu_L4tTOW)+6RLQZsn@Te3p%-%LnlXh*hc2#Jt>F{@!+?dg2smY~9ziiaLSZ9m{sW z;uILQN@vg?Ch$;Cd`mhq{FV`EZWusTFpH%qhmO}8+KQx|Q(D$|VHKhKM(U1dJ<PI znoWnb``MmzBpTVe9QxV+^A<4i_#gaE%r8zKr>uFKi5)WVwI7g)(XHRBuDU$=U!*sQ AG5`Po diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index 94575c4359da05827ddd19ed8f039e035ad28e16..83c56bd0503d3df3b232b90dafb4fd1db1650812 100644 GIT binary patch delta 314 zcmcb|bdPC*ZhfRsvjR^;;;omyJN{4H;VqwGY^IZU)aCDfb@K_H45H2qNWj@9Cx3p> zDQQEun`dt~zcXF&>Fm5~ygPPJFJ-n1@>-RD>H){(yxIDb_r=IMtm?43xAIQQeL;c! zhw}HRgr=Tb<+{q)fAy!wJ0%!*>aTXl>G0ma{C)kJ8iD1?4!hod`k7cck#}nUV^zlH zq=$+}YONUkjx9TL?)2@;T9>Nq*01^#pZ4yB%CGC!c#JOE`>0-V`JeFQfY9a%s`Cy{ z^OL-H?)Rfr!D{d4E?+*aBy4Vww#QZNvz0%E_*_fAv8?{XQ1;vNjRxc8r%#KPeqJS` z`e2?%gQ56;<|D>m@~4+ZzsvgeH86L(-_+e#m681WVAZ|pt+zg>O=sB*67_WTb6Mw< G&;$Uk29l!y delta 314 zcmcb|bdPC*Zhf>+vjUGp;H{T_H~vq$;ccH`Y-UpGkb^z{x8=ue^}0P zWc>$eeb3ODo3kdqI&*o|p9(!Uhj*v71f(BbdjGQCT3i0eOO6S7yKCwq;!>QSKCbXQ zuppv>qj0`o!{m*cn?Ha0wxw&!yz{HI{!gE2ZPod2t7)^(7ye*Q(~I^JmK%=fq;x*t zur#=B`{uZq(o-pSE32}+)30i7ZN9SW#r>mdKI;Vst E07v1BY5)KL diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 94575c4359da05827ddd19ed8f039e035ad28e16..83c56bd0503d3df3b232b90dafb4fd1db1650812 100644 GIT binary patch delta 314 zcmcb|bdPC*ZhfRsvjR^;;;omyJN{4H;VqwGY^IZU)aCDfb@K_H45H2qNWj@9Cx3p> zDQQEun`dt~zcXF&>Fm5~ygPPJFJ-n1@>-RD>H){(yxIDb_r=IMtm?43xAIQQeL;c! zhw}HRgr=Tb<+{q)fAy!wJ0%!*>aTXl>G0ma{C)kJ8iD1?4!hod`k7cck#}nUV^zlH zq=$+}YONUkjx9TL?)2@;T9>Nq*01^#pZ4yB%CGC!c#JOE`>0-V`JeFQfY9a%s`Cy{ z^OL-H?)Rfr!D{d4E?+*aBy4Vww#QZNvz0%E_*_fAv8?{XQ1;vNjRxc8r%#KPeqJS` z`e2?%gQ56;<|D>m@~4+ZzsvgeH86L(-_+e#m681WVAZ|pt+zg>O=sB*67_WTb6Mw< G&;$Uk29l!y delta 314 zcmcb|bdPC*Zhf>+vjUGp;H{T_H~vq$;ccH`Y-UpGkb^z{x8=ue^}0P zWc>$eeb3ODo3kdqI&*o|p9(!Uhj*v71f(BbdjGQCT3i0eOO6S7yKCwq;!>QSKCbXQ zuppv>qj0`o!{m*cn?Ha0wxw&!yz{HI{!gE2ZPod2t7)^(7ye*Q(~I^JmK%=fq;x*t zur#=B`{uZq(o-pSE32}+)30i7ZN9SW#r>mdKI;Vst E07v1BY5)KL From 02477578b483cde66989876c6909fa7a766d4c22 Mon Sep 17 00:00:00 2001 From: ftheirs Date: Tue, 28 Nov 2023 09:23:51 -0300 Subject: [PATCH 3/3] update deps --- deps/ledger-secure-sdk | 2 +- deps/ledger-zxlib | 2 +- deps/nanos-secure-sdk | 2 +- js/package.json | 6 +++--- tests_zemu/package.json | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/deps/ledger-secure-sdk b/deps/ledger-secure-sdk index e050ce5a..80309475 160000 --- a/deps/ledger-secure-sdk +++ b/deps/ledger-secure-sdk @@ -1 +1 @@ -Subproject commit e050ce5af3e9ac490fce6c9aebc95ee2d20aceb1 +Subproject commit 803094754f77f23c556b065317bceda3b6d2c002 diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index 82e20147..7f80d18a 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit 82e20147eeacb09234cce1114fd42ba255ae1077 +Subproject commit 7f80d18afcf509f5028d226e36bc206624601229 diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk index 40a60bc8..30189cfd 160000 --- a/deps/nanos-secure-sdk +++ b/deps/nanos-secure-sdk @@ -1 +1 @@ -Subproject commit 40a60bc83c6b1422e047c36beb4018891bc34b12 +Subproject commit 30189cfd070040e5c144d4dab103d549302dcfff diff --git a/js/package.json b/js/package.json index ed6d1dd7..67a6773f 100644 --- a/js/package.json +++ b/js/package.json @@ -32,12 +32,12 @@ "url": "https://github.com/zondax/ledger-namada/issues" }, "dependencies": { - "@ledgerhq/hw-transport": "^6.29.0" + "@ledgerhq/hw-transport": "^6.30.0" }, "devDependencies": { "@types/ledgerhq__hw-transport": "^4.21.8", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", + "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/parser": "^6.13.1", "bip32": "^4.0.0", "bip39": "^3.1.0", "core-js": "^3.33.3", diff --git a/tests_zemu/package.json b/tests_zemu/package.json index f7308d5c..fe851026 100644 --- a/tests_zemu/package.json +++ b/tests_zemu/package.json @@ -24,10 +24,10 @@ "devDependencies": { "@types/jest": "^29.5.6", "@types/ledgerhq__hw-transport": "^4.21.6", - "@typescript-eslint/eslint-plugin": "^6.9.0", - "@typescript-eslint/parser": "^6.9.0", + "@typescript-eslint/eslint-plugin": "^6.13.1", + "@typescript-eslint/parser": "^6.13.1", "blakejs": "^1.1.1", - "crypto-js": "4.1.1", + "crypto-js": "4.2.0", "ed25519-supercop": "^2.0.1", "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0",