From 91d73f9110510b7f5036b9dec5c89f6cbd1989be Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 27 Mar 2024 09:39:20 +0100 Subject: [PATCH] Port 'test_pubkey_cmd' from 'speculos' to 'ragger' --- .../{get_pk_rejected => get_pk_700}/00000.png | Bin .../snapshots/nanos/get_pk_700}/00001.png | Bin .../snapshots/nanos/get_pk_700}/00002.png | Bin .../snapshots/nanos/get_pk_700}/00003.png | Bin .../{get_pk_rejected => get_pk_700}/00004.png | Bin .../00006.png => get_pk_700/00005.png} | Bin .../nanos/get_pk_rejected_60}/00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../00003.png | Bin .../nanos/get_pk_rejected_60}/00004.png | Bin .../00005.png | Bin .../nanos/get_pk_rejected_60/00006.png | Bin 0 -> 349 bytes .../nanos/get_pk_rejected_700}/00000.png | Bin .../nanos/get_pk_rejected_700}/00001.png | Bin .../nanos/get_pk_rejected_700}/00002.png | Bin .../nanos/get_pk_rejected_700}/00003.png | Bin .../nanos/get_pk_rejected_700}/00004.png | Bin .../nanos/get_pk_rejected_700}/00005.png | Bin .../nanos/get_pk_rejected_700/00006.png | Bin 0 -> 349 bytes .../{get_pk_rejected => get_pk_700}/00000.png | Bin .../snapshots/nanosp/get_pk_700}/00001.png | Bin .../{get_pk_rejected => get_pk_700}/00002.png | Bin .../00004.png => get_pk_700/00003.png} | Bin .../get_pk_rejected_60}/00000.png | Bin .../00001.png | Bin .../get_pk_rejected_60}/00002.png | Bin .../00003.png | Bin .../get_pk_rejected_60}/00004.png | Bin .../nanosp/get_pk_rejected_700}/00000.png | Bin .../nanosp/get_pk_rejected_700}/00001.png | Bin .../nanosp/get_pk_rejected_700}/00002.png | Bin .../get_pk_rejected_700}/00003.png | Bin .../nanosp/get_pk_rejected_700/00004.png | Bin 0 -> 381 bytes .../snapshots/nanox/get_pk_700}/00000.png | Bin .../snapshots/nanox/get_pk_700/00001.png | Bin 0 -> 769 bytes .../snapshots/nanox/get_pk_700}/00002.png | Bin .../snapshots/nanox/get_pk_700/00003.png | Bin 0 -> 381 bytes .../nanox/get_pk_rejected_60/00000.png | Bin 0 -> 400 bytes .../00001.png | Bin .../nanox/get_pk_rejected_60/00002.png | Bin 0 -> 364 bytes .../nanox/get_pk_rejected_60}/00003.png | Bin .../nanox/get_pk_rejected_60/00004.png | Bin 0 -> 381 bytes .../nanox/get_pk_rejected_700/00000.png | Bin 0 -> 400 bytes .../nanox/get_pk_rejected_700/00001.png | Bin 0 -> 769 bytes .../nanox/get_pk_rejected_700/00002.png | Bin 0 -> 364 bytes .../nanox/get_pk_rejected_700/00003.png | Bin 0 -> 366 bytes .../nanox/get_pk_rejected_700/00004.png | Bin 0 -> 381 bytes .../{get_pk_rejected => get_pk_700}/00000.png | Bin .../snapshots/stax/get_pk_700/00001.png | Bin 0 -> 13728 bytes .../snapshots/stax/get_pk_700/00002.png | Bin 0 -> 5035 bytes .../stax/get_pk_rejected_60/00000.png | Bin 0 -> 8677 bytes .../00001.png | Bin .../00002.png | Bin .../stax/get_pk_rejected_700/00000.png | Bin 0 -> 8677 bytes .../stax/get_pk_rejected_700/00001.png | Bin 0 -> 13728 bytes .../stax/get_pk_rejected_700/00002.png | Bin 0 -> 6545 bytes tests/ragger/test_get_address.py | 71 ++++++++++- tests/speculos/test_pubkey_cmd.py | 117 ------------------ 59 files changed, 67 insertions(+), 121 deletions(-) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_700}/00001.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_700}/00002.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_700}/00003.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_700}/00004.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected/00006.png => get_pk_700/00005.png} (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_rejected_60}/00000.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00002.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00003.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_rejected_60}/00004.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanos/get_pk_rejected_60/00006.png rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00001.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00002.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00003.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00004.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanos/get_pk_rejected_700/00006.png rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/get_public_key => ragger/snapshots/nanosp/get_pk_700}/00001.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_700}/00002.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected/00004.png => get_pk_700/00003.png} (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_60}/00000.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_60}/00002.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_rejected_60}/00003.png (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_60}/00004.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/get_public_key => ragger/snapshots/nanosp/get_pk_rejected_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanosp/get_pk_rejected_700}/00001.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/get_public_key => ragger/snapshots/nanosp/get_pk_rejected_700}/00002.png (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_700}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanosp/get_pk_rejected_700/00004.png rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanox/get_pk_700}/00000.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00001.png rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanox/get_pk_700}/00002.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00003.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_60/00000.png rename tests/ragger/snapshots/nanox/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_60/00002.png rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanox/get_pk_rejected_60}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_60/00004.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00000.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00001.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00002.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00003.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00004.png rename tests/ragger/snapshots/stax/{get_pk_rejected => get_pk_700}/00000.png (100%) create mode 100644 tests/ragger/snapshots/stax/get_pk_700/00001.png create mode 100644 tests/ragger/snapshots/stax/get_pk_700/00002.png create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_60/00000.png rename tests/ragger/snapshots/stax/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) rename tests/ragger/snapshots/stax/{get_pk_rejected => get_pk_rejected_60}/00002.png (100%) create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_700/00000.png create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_700/00001.png create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_700/00002.png delete mode 100644 tests/speculos/test_pubkey_cmd.py diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00000.png b/tests/ragger/snapshots/nanos/get_pk_700/00000.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00000.png rename to tests/ragger/snapshots/nanos/get_pk_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00001.png b/tests/ragger/snapshots/nanos/get_pk_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00001.png rename to tests/ragger/snapshots/nanos/get_pk_700/00001.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00002.png b/tests/ragger/snapshots/nanos/get_pk_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00002.png rename to tests/ragger/snapshots/nanos/get_pk_700/00002.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00003.png b/tests/ragger/snapshots/nanos/get_pk_700/00003.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00003.png rename to tests/ragger/snapshots/nanos/get_pk_700/00003.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00004.png b/tests/ragger/snapshots/nanos/get_pk_700/00004.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00004.png rename to tests/ragger/snapshots/nanos/get_pk_700/00004.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00006.png b/tests/ragger/snapshots/nanos/get_pk_700/00005.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00006.png rename to tests/ragger/snapshots/nanos/get_pk_700/00005.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00000.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00000.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00000.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00001.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00001.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00001.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00001.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00002.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00002.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00002.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00002.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00003.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00003.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00003.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00003.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00004.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00004.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00004.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00004.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00005.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00005.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00005.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00005.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected_60/00006.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00000.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00000.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00001.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00001.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00001.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00002.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00002.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00002.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00003.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00003.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00003.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00003.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00004.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00004.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00004.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00004.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00005.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00005.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00005.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00005.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected_700/00006.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00000.png b/tests/ragger/snapshots/nanosp/get_pk_700/00000.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00000.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanox/get_public_key/00001.png b/tests/ragger/snapshots/nanosp/get_pk_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/get_public_key/00001.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00001.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00002.png b/tests/ragger/snapshots/nanosp/get_pk_700/00002.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00002.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00002.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00004.png b/tests/ragger/snapshots/nanosp/get_pk_700/00003.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00004.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00003.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00000.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00000.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00000.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00000.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00001.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00001.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00001.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00001.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00002.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00002.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00002.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00002.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00003.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00003.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00003.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00003.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00004.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00004.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00004.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00004.png diff --git a/tests/speculos/screenshots/pubkey/nanox/get_public_key/00000.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/get_public_key/00000.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00001.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00001.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00001.png diff --git a/tests/speculos/screenshots/pubkey/nanox/get_public_key/00002.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/get_public_key/00002.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00002.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00003.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00003.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00003.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00003.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00004.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00000.png b/tests/ragger/snapshots/nanox/get_pk_700/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00000.png rename to tests/ragger/snapshots/nanox/get_pk_700/00000.png diff --git a/tests/ragger/snapshots/nanox/get_pk_700/00001.png b/tests/ragger/snapshots/nanox/get_pk_700/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..5b381b6c9d81daa42913790df16f350487c1c0e3 GIT binary patch literal 769 zcmV+c1OEJpP)1mdRvL_`%2qAiN3%p5X<9QaG=EyJ=YkO}s7wU!)~cPjI1A?9o3u6DW_^3V=*G!3 zF;07CUSG#BO%2E5iesi^VtN9)H!=W1fA>5?M9ot9wCRP$G&MX2k+^$~nV6#jx_7S} zEk+`q$f8xU_KI1`C1ULvmGs6O05Wl>n#(he$pO$YH8&g$xZxC=y05a><1N**maG-y z`QM!TrekKOo;9y#6vo}=;45*1%;-Oc5o$*NVK@dW;V!h2MvyrMx1z(_Rzrg`D53=g zs$}oeb6sd^lVcj{u<{z8GLaK}geeo6o;4dH;^J6I{S~-^d(9$Wf$FKCaTE3?eo*4+ zi+8{MAue&kv98{yNS^h01a`Wmh*$;eO(B5=WKW1+=kjF1tRAzNrkcuYyxk!xUYaGw zjiqjIAid=UikhGsffkEQuP*hpW||s0SFO~R1H|SVYr;r$knnl=wwEp5j=o5T+VzMV zT_e#w06NhP^eUQkB>+&J6|Q=fbp_oDG2*GGgb+dqA;e_mUz7@_xHurDBCX64@<)A} z#XrnyzJx9QruxZjBt;C|9>pD1Uy|`_^C~tP073JaiB1Mty|Sl2?8YtwpyiZO?v=a) z=77a)aSTn)Q>uh5h2BHw=2?LdLI@#*klXnMFhL`qAQdp500000NkvXXu0mjf$HQfg literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00002.png b/tests/ragger/snapshots/nanox/get_pk_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00002.png rename to tests/ragger/snapshots/nanox/get_pk_700/00002.png diff --git a/tests/ragger/snapshots/nanox/get_pk_700/00003.png b/tests/ragger/snapshots/nanox/get_pk_700/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected_60/00000.png b/tests/ragger/snapshots/nanox/get_pk_rejected_60/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..a487005a859c0e4cfa0212a67f75a4794d81978c GIT binary patch literal 400 zcmV;B0dM|^P)CI7!~g&QfPa@`!PrJQ5_gtexv+u#;<7n?ZA>=8WP3sS)E3>Z zE!xY!9dS=7B}gQ@x;^0FVDIF?`GpenfZ9e>)xCO*lgBykAKe#*G9mk>o6EkWtAGi$ zGexMpHiozruqDn$Y{#w$*~F;G!$#0S7$x##_JEJys@+nJ)BK}UfHaSYH}BKlb~|vz<*qUayO&UL-bn@O u0WKrm9KB3jyJN~A3;+NC0000$MC1WGrw>UKISsS`0000FSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=YU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected_700/00000.png b/tests/ragger/snapshots/nanox/get_pk_rejected_700/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..a487005a859c0e4cfa0212a67f75a4794d81978c GIT binary patch literal 400 zcmV;B0dM|^P)CI7!~g&QfPa@`!PrJQ5_gtexv+u#;<7n?ZA>=8WP3sS)E3>Z zE!xY!9dS=7B}gQ@x;^0FVDIF?`GpenfZ9e>)xCO*lgBykAKe#*G9mk>o6EkWtAGi$ zGexMpHiozruqDn$Y{#w$*~F;G!$#0S7$x##_JEJys@+nJ)BK}UfHaSYH}BKlb~|vz<*qUayO&UL-bn@O u0WKrm9KB3jyJN~A3;+NC0000$MC1WGrw>UKISsS`00001mdRvL_`%2qAiN3%p5X<9QaG=EyJ=YkO}s7wU!)~cPjI1A?9o3u6DW_^3V=*G!3 zF;07CUSG#BO%2E5iesi^VtN9)H!=W1fA>5?M9ot9wCRP$G&MX2k+^$~nV6#jx_7S} zEk+`q$f8xU_KI1`C1ULvmGs6O05Wl>n#(he$pO$YH8&g$xZxC=y05a><1N**maG-y z`QM!TrekKOo;9y#6vo}=;45*1%;-Oc5o$*NVK@dW;V!h2MvyrMx1z(_Rzrg`D53=g zs$}oeb6sd^lVcj{u<{z8GLaK}geeo6o;4dH;^J6I{S~-^d(9$Wf$FKCaTE3?eo*4+ zi+8{MAue&kv98{yNS^h01a`Wmh*$;eO(B5=WKW1+=kjF1tRAzNrkcuYyxk!xUYaGw zjiqjIAid=UikhGsffkEQuP*hpW||s0SFO~R1H|SVYr;r$knnl=wwEp5j=o5T+VzMV zT_e#w06NhP^eUQkB>+&J6|Q=fbp_oDG2*GGgb+dqA;e_mUz7@_xHurDBCX64@<)A} z#XrnyzJx9QruxZjBt;C|9>pD1Uy|`_^C~tP073JaiB1Mty|Sl2?8YtwpyiZO?v=a) z=77a)aSTn)Q>uh5h2BHw=2?LdLI@#*klXnMFhL`qAQdp500000NkvXXu0mjf$HQfg literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected_700/00002.png b/tests/ragger/snapshots/nanox/get_pk_rejected_700/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..53ae65195fbea5b281a1bc1a80351dbf1cd79ff8 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-%ba4!+nDh2#AYZeBfa}G~ z%X2sUSKTFSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=Yj&LwL#RobX?V zbQiII^4uMl|Z~1l7yy12MZ$b&j z?TtJM^{@JVDT&uHZn5nzWh-TPv_J7m;jgq0f(|YbTZHdAM)myZxO-=(=&Jp4l55=A zUQcBF*M05wg}=Y7bG1(&{&siyl(&8#-KTdql}}rLm3hWhy}m5glJN5fpDsOd=_5x% z{HDvZre)46&g0e%{pDoXaPf-VTe-XJSGLU(Jj!tDNp8H)+;exzHoZ2kko_Ba_xXNR zr;WUGZIbufwyah@qN*6%Wc!qrE&9UV%v{IGH{4)eXE1ondwSC@^_ATTjUX{kS3j3^ HP6U4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected/00000.png b/tests/ragger/snapshots/stax/get_pk_700/00000.png similarity index 100% rename from tests/ragger/snapshots/stax/get_pk_rejected/00000.png rename to tests/ragger/snapshots/stax/get_pk_700/00000.png diff --git a/tests/ragger/snapshots/stax/get_pk_700/00001.png b/tests/ragger/snapshots/stax/get_pk_700/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..aa683fab0ac729098678b1344f3cbd3354b1aabb GIT binary patch literal 13728 zcmeHuc|25a+_o&0CHh5_EG?9nQ1-E{tV=RV(a-{1SXuJ3i8+%`8l!Y9th z!NGCF_}?2=92^Ipb8v9JIm`)c0b8_Ja&V~m7~e3kiOgRkQgTu4d+$RQwWtT}WtD+H zH(qhR;p{(_h z_(F1b$SQlc{GYti7AM6*vaE5#DwgA?!{s`~?0!ZxL#Ngku@k57H;qEoj8m{Vr__`= zT5PM1WqJAT9N>Ueov?>Mq6*9S^gKl$Y>n}OMx&2&8;BSdk}K5DrKk8DO4!O&OKJc?xbe~gSXKXK_X^b~^O^!({R=-dQz}tlBz}>@QY6V;(`Oci z5=?nWW3zX5BXv+ZCNFQ4l#!#%2>Ey)mEVb{|9vTQnA6{?cYesEM=o`;n$2~HOSxA* zVN}(OpxQ~Rl;cf&gF^K$9P6!DduJkwr^k})+~?$uJQKIK^!4h#O;AngGPv}Xh4K|w z`?V7n+=EO%v*QlUS}{pHd2|0<1o?y#%EJ|svH+x^iHicX;Q+4x@!D|TqXb>N^^4bD z&={~8!JeRn#E(-Lv3f}J3ydcyQdD6CxL`x}O9LpQcb*YFYOH!snS)+EoLqtm02hu( zqrQ6ymWpTCbPsIDVn}GV+*5ITQ$mw&0Sc9Px~{Z%<)Im&{N)Rmw9|)i%PHnd5bNF&cvs3oJ;Ftoh^yPA)uqd-}aP_f#H7fQa2M!&Z zdAsE0@v|WkXi5+YTXO1?nfr;AmxGTIBu7F~D68YRO}o|;C%6;*;M!6dD2~wytp0vO zFG<^@Qf;ypg3yhfR)JI3Q>BVqt1Xu1_3Fq5h*EhUhDlWQ&8E4B2XcJpu)~?1oeB}z z{a#;ux9dDcekNoBPr{A^Tu}lMI|5t;g6W!bYfe8RA%K zxpq992L+!C9>EH>YO150N~3+F;@fP?byljR1Wy8;!&JSsQXDx>*pd^tp7~F!NU8Wc zu)oimfVf)SLl5vcWi)`_Kf;Q!``$k4W_{4C8^@yKl{%YaT8MHR=yh^hYF(*s)n+hJ zgD4*H2P+8Nz50DRY_u7|=ozjoj`oH=T#gecJ_tk>$YWfNFsaG4a5KW^kZFyNrM@<% z?bJ6T6Hy($2)Wb|VUJLaK}#-*BMdh*(7m*}Ol@}PLr+z+t{bl5fM7S-^O}04_-u#; z5+sX5qht;zs+vJE%;3`ZMGOmwVmFVh&a&eWr9cywZ6GBo{i5xLiB%UztorfL=Z|3NO*i(Kgm z9gFG%Ms;j@m~-AdmC5!Qgg-uW3fe{t>M{~YJZ=1P&XnCW-}kz-LaX*n@l#^iVzPK! zq>4qtSM70CcVV--zMvY)WI=6+gpy|4TwYA%QGwSoPh!%25$5(u$^u9&Ca>v|x_n)e zTDYhC+#4>gKJKr<&o&8cBN-@OnpcsExQgk zF6kH&v~z7U^HOj0AHr*|+?KvH+(vlYGHEVAX@!vtsbc+TUa2hStCx3E|2-t1IE>s?VC`kt`7 zF3|7?4{F|^%4Z! zBzWt>gv}c7x#b!ZlB3AV-Y-VQHFhdtpQqMJ4=JD0J{WXf_o+uFUB`l;xA7V{23^}zCD#bnCdjBeIRm!9 z@jWh1^i_nB+*mdv44%gNQrPP)m~>kwvy6L;DCY^i1XanXWWR$Hwx1Q=tWbl~?*;nP zHge0bRtEG(SceZ~ZJm$jspX{^`jzOZIE5$l!$pU$$ z?6l4|!rVZxA{(A}q!%KhZ$Oxw5sJ zBUNLc^WMtw(d~J=>YTM!Dt+an#~nzmy;eBS<*J{XJ4?Et+qhhI6GKho_rO=gY`Lp* zwL%_H?t0&+`KLu>n3{ zF>}uS1bD2eh63sb=jCo#-ho(27-ifUH2|k9PYEuHw`BWGPG6{^t#>BDCeO=1_q=1a4i=0By!F@*SYnJ`aYQ# zXx7%QX?cTVrM|dR$5ZYhIjukw1b9WUS(vk>R`b-_$lB{pn$VV{vMI&{0$KSZ*MA>9 zo5DeUYBfP{QZ7v6 zh?8re+x21Y0`zRni#r~6QEzhDHWW%w5D_w?g~M69briHcZY~^C-d?1c10d&qOL?(L z{FR^BwYEzhZA28jbkcPy1;Ah(PKvDDL)Xjwad`u!Ft0{X+Pr;pVe}x@>QI8(Kf1Bd zEC{68Xg>o|D#OC(T^_Y47qrC;hN$^u9zwKO9PbSYiW^0XzOp#r1zhr}SDV_>*H+rK z6ZbPGC#mTNG4;>*$K28#{T`lH#;oMs&+>9V!Rn;3<4z>Ex>im&1YE*|DPZzqJkkq* z&H*<^CwKPmacLNmLe%2LgrF~gyRsk=&$#$xO(<&7MUIYC&o#5$eb;g#oIXNVem^5e z8617*i}1<~`c=>2+k4_z*2y`zbzCGqd-Qn!(2jHNI=v{~S=wb--M@5^EEIE1D;jv*(#)_s zx;c=B93AFYAjk1m*7(!6>pKfzPG&9(mI_zmkq81UFR`UuIH+t*hbK8>_j$Yg+|E#o zXHdf+%guS5g*K!OZC)r%$g60q_%Sy$9U+>VVou(<-0DP7+!kuFyzWc-c^O81H6AgF zl~4VYA52~bZ+$?t_Z8cE?&_(Pk;V_dv3TT*CMeEa_5J6hz4z9a6J*!o0dx42#iGafh<&gMWkeF1v!r|K3?MqC)ZZcl4ricknNpm+*vKXl-5pS z5Ht%qzzN4Ab7Fz}@aj!%!W3XEs$I0Hl!La1Cbi12T|+6tC+(SI)@VqIMP=)ZmaCDn zR-BuW?(C?)UgYch&I-(A3ef{lPCtx?u{X4DC<_z2Rbq zBrASK{=uye5aTq-9Sn8=Um_Nlw8`0q?3s#U9f=JfJfFLOga2j$bG_e~5W1&n-fvKm z>huq#(r~i^h*8($lE#}lbdl3_R3>KU;p9{$EnJztL0JtO)xdTQNG7{W^row=#in+G z=cJ_u3@w|KIKkAZ;Vyw#>pb_L;+pn(1YM_vmX@{Cb(bBZyWX zqUy7)tU4_P?az;N+h+UZ3E_QPu`_Goix;8_jVzn~{HXToxRAcN92>TFw#w+B(v|h+ zfpQhVRg-^&OUD%a;Vsjxuu2s7yGZ^=?O|h z?LavU9SK2yfdDB)`h}J7 z!fjZO)tE+o0%-3`J?{0V9= zbh~yk^7jW=;m_d0+%>VYIZA8^t0zm_|G3nd{CN)j<%@aHHJ!JH&dTAZ#p!q3!_xT< zG5ZkU_y8&D?G7e;MznL}N3}^fIvIru9Z)nQ3~ChLI%S_xw0pun!NG6(YiPok=$Oox zr4_r!b)_<>#+hCf@jXPEuwzCG*ftsw)7Y5ozqs3A_%L&`%ERkYH0Dodt;gLp1be;P zaWoZjE$oTOnlmK->(x*qR9!&@sz=5EJwW&b1h@@r!Zwgf5axCMQieycLc6*KIUxZMRym>)zy*TS1pY zEZl!{;@9nN?ysGHx~qT1ddulM3Nu|hZEht94PA@)_sx;B% zGM4{DwGnaBZ|4R&_(f}3>hnK&3Sl;(;>`^#rpq2kSKxJ#98Tj=io5-`+RqC=!&2>- z-CX?w?C=A9vDYJFIN%&%QnIXoQ0WZ?o~+{LA9D)Jz3Kjnnc#PBc?&_OagMV@wv9Fk`+nH+k)3A=|=4)P)kWbn2 zE<`aQkmMfxRCjEDsP@oG>tI6_{dJuKgatZbzn0c(DFO@}!xv%i-e>&LnipJMuJPwa z?Dpw+6w9T~f0y^ux?-wS*b*UiaI9YP-a&YUg`L)s+;FgOqg~#+uc-!QaKsUn$-n#)$s9NarW)WikJ#!&Hq>Lvk ztTuU^RbNe+d|Eviq|I7tIyN9_zgWc{6ov5>aD|!&j#xy;2q(FJACFdxN+7R7nJ)#P z6P-j2Pp~j2WfTab7gs;17QE6Eos*JKB91XHdo_B3cEW2yer|oJmulYoVa$N$mhQ!4 z3t)?E&dD-s_U~7Vf*=@1OqaECB@hhh-F-*fYe>)9+-h0nbi65fyx4Zk`RR&6tgkSq z|L;zF{L2Kjx}!g-W6#M^FJ-7wis?`ERqCicTeP4P;%d~NC08^oNkYkCHQ|aDZCO7B zt1Kh@(c~$O;#~b@?~d;d#XMpk2-xB~t9^)P?P~|kU~p~W@Bp_ORu(Elug*3ZU-ulAwJ zddo4RaCQNXU#Zx{Q$>tck+qgmBE&;t647drd+I>QyuH$w>>u!)B329LuN}bYWsP|| z`Aw%(x(%I6Z#A(W4_oov?O72T*kP|9gA|fi4*uy}oT?XlhcjGhOC?8s!U1`p(dR;K z6?-vnkl`0WI5o4hn<#duIf<)3;GessRIg2O#_kaiOaq;_1X|%Ac>QI{5~c zEPc#g$)&xuR>YpkhGR&Mp^Hw}RG6m-QtUnF>=T<({J?-0hur$2SlGFG0d z`y|BsZP0LOoChg6T3Z!GgyrO?A8F8rPae-_b?JBE}o&5Mn3(5%DVF=r>qqNmKp8IwxU`6^Umq-pmfGC8kSED&RW4KVeK*Y7Pq+AL%AUEdA?B>r*Xj(FD=@S|wE)ZvLglF4riOSRTo&BOKgiT#hLsNF>DOqSt4nSdGO?Hzj~x5}ekjo)jk6*@H$R1q z0mNw>_sJY_mS>?#4Wm}710~<+V=diSQQmmk!~A1wk%rIo8D9T`Clh!;0AJz#6cV0m zK!CDNXa~grWsYAI3Wd#%X`I;J-j0RC1JzIYN4~0gu@ErHs6Q1u2@F$r;s&3kY@x6Tj9hWgSFC#36Uh(%V5Ib-o z!(Y9;Eg~VP=YD|b>~)ZYz4v^GkB~*BQKl9yKV+)oCM3I3F12dAkKP_UXHjPD>VYXP zqcnvK@Pvbg3$UC5{Sgvs{07D^mjw9?Ekno3L{Fk?{3R{c9@MeI!xh6VMbdlXn3C$k zJ+gHVc(a5+jbzIUbXx;|Dy%0=MWs?wdJ(-}eFA_jYV6s{vRW zz{lC6s~ecLyj=2AO6h#p3e>OEQ^asBS-w$zWl0n4=QIhN);3n^>i;BP_##mB2^~8& zRWny5NV-7Mw)*z?q6BkeJ0qP9Z?zo|YGl%xm%T{Z~KX0fa!Z?Ln>GN#5Y`(I>IPZX%vq6Tk<{{u9UZskn=z?xH8gQz2g2xu3$#gkkW>W-x=v{BI* ze)NOVOtP1HD!Vh-J7q6XK!HU>bdDyyx0!X%VNzC!&?Q=wz&w^N$=sz`znm%;;GA^8%!|4eD^=xf<`n`q>`N8 zmtfq+#~$~^tHm)&mEQ*4A7$DbiCq#Bd|e0r*7<;JZG?bM{`l@+{K!kibW!4RPtQ5@Y91L5i zm0Zj!cUn?H+nf}=ptg{OD3_z$mLi6ho=2=9qx)rIC4nwwfeU!b&TFrz4wp)lAEJl3 zqb%@BW?7=a7ct10F0ODmF*ADv&@Of37aLLh&@7_<%`7iG)U_juK^jXDPL7r9zd~Y8 zwE@*&fZ?36D0{{7!;tV!1awFnku|t2V?5ah#6s2h>#8{$``YnRT5WxnyP}R80)cTJ=gJPe=*OFabKvP+7tb{> zIemCiczg;-pE`I3xz*$Zw?WK-$*EXbq^-icM-0JGvpV7!g&hX~zdC9FZxCXUOy18U zz(OLCfNZi{byCf&aU!6zvokI(Ze$(U3P5~`Qc!>G-v!7xIRK1xWNhK_8C(1RSkv&R z-B>+}>_~ih+QF=@xpfAEv9nV>wm_j&)*=FGvJ2VEp?(^i=Z%Ym2OLOx21l37%&PCX zBZcwE+n;{#UgFspDoNH%*PdFgJ^~RjBze`!rQ*&oMsP)`T4{q}5giBQR9~lPx3Qo^?{% zP8`x}A`UZ-l+G}M)vbkBmWn337m`sWH{oF&E}ev>^tYIs%XjsAGNCJXY~ ztAbw*ke6yGKuzi#F2B}=bo#K3u#59}tLM+V7=rAZaB{|`NyX^$sayVtn--hAJE!#e z$)D*ld!ok;hZGgIIx!^L)PS6K+taOTsFlA^z;Rh{zhpEYP%0-coUHZ+OG`Q{q!xXr zF+(IAyKi=svVJEPIv`3HpR;#dxe=(uQIDmvcRCwWeUcIdUnmQ(vs~?pL$^Mm5{Yf*9>kv7ygkU-a_Z|v2?jKf@z1GG z|Jbh}i0j4!LZFlj62VAOdmCPo38HkxZxWcE+YF>KdIwEc3!ZI^U1&WvQq#5!U2+dq zRx>O1OGK??%RE8#Ew{d8T^FK#Qyus#(oL<|HWScOLt(o0C=~7QvKAhrBb72TdvkeP z_bz|p>HY@%%EMg|WSIY8%59Bl8RKEqfnSj}N32$|3V1bsEWu`mBs>?Tc7>jtGC^j4VnYPK^?$2(&sWg7b>x z__}VF^Z>RAWE*}3ps2&2nLGPH^C}^+1@>Y`>vv4~EAD)tqDME2SSB)Bc9pUMZaFn!Bfm9KF<* zH*gbv9KhfQi#wlGTBA|&quown8N=4<+V?JwJq@k@!qrS{OW=uh$e)QjwTa{-st+4?0Zqt$MN|1_FH9VJf0O4Ln7<{ z05##s40(5A??$K{?%MOPm||#I%=fn+SGr0re5W3>9B)4NGI=Bao}KyBslFisarKw- zTSCu0q-}ev^(TkCmTJ3#7t#M-XIBy6M&u^XiVJ>Fp0lIh18fBba#v;>dxrM}m%qIc zpBxAeYL+SJxD2+_PoJM!Q~xQ`wrtr#;DGHj&O2wRoGW@qp)q8+7#lfnhJJ0Gu-gl zeYo4NzT!vC@3m@Qaky=LxXHAOd7BrVSioZQ2GS#ikkIzuddhViUl=V3&3Z|SgfLWL0iJnHCoTov)kdjLjQo>#; zm&fv71zH!E>AA-BADTBZErdWjG2I6evP*;p_mAPuGV-2leqno_v!DJ2)Gj~Vcg<}_ zC^yOOxaA6@HMNm??csf@6BT8oX z$IGkWYkmO0IV-3+yLC78(0|+b{@bniU*uN&1^7d;ny#*{n2y6(#}*O|_&nDRVA$JO zRF(B=H=Sb0m6p#Lm!!vVQE72eta~g!d%Rrb*XSKe5@%XDr^`TP_n0ZSs3lK(!}ybG zS3yt_-}4{G?@%<@?k{W~Xkua}cg=Z$1Anr*i^h~**Zr$7dt|%s$@VJtZ1n^5uWiCs zMS`Kjf#Aij7Z`NTv?k7(VHJzD3p}E}Jni*m1+(~lU>zBQ*BY=B0>1q@YN0t1^+1~A z^4JkjsvXt{%6{#7dH<|j)zLq!Ww}rHI3yVU;`?JyDcF4t7+dR2+$`HU^`=eET;&CP zulXYSCKPiu#w1kZQij3X8!)xuwdYbhKHx2EXjw=uBp2Yx#31H&Numvaq{V(u zRVMEJg6jhu3mytCC~TJ*<6LFN{KaN0W_X(}ENWdL%Or=rWA4_G_tzt}dLGggmA(^K zOFp%aSUYJkg<{+v*TUOKG+G^@ERV9c*N7~m-%pht@0l`nfw4nG$XXuSnO*~01K+|ht~(U5mzh+$&KUjgpp;jF;a1xq&+ZW;8Ms$!Z1!zKaYl{2b zu=hZ%Hl=HhH|?25xN8mayeu&D1K1+(S*FRpO_&TI-|(FpP(R?+q0mvNkx*M#CpS$g zCHl-rqgQgoTM2g4!P&P!A0DLFaa09XJZgdY3vw6$qmvKH0qXDJl>JZdy1iyy`Ekx~ zqC(szfRo)`517;stdBk6{JSQ*za|}2a`eq3o~uurIn%C*uGf!g?_6|0aMYt4TlAbK z_6@{hJIvJHQ*_;OOmCs$80S$B#@`)}FXXS{<=kIDu~RXFzPs<_&*c7RLh|oA+xP&z zfwN{;Jfi|X^e&9G(r5qO|BQ?r#C)qxz;VuCYxBRPb!zBYxguE^i zJv~S(e2=mIG%V+Lz^eTk?|e3w>6!Nr>^Aul??;pT#Ahb$4?z;JoEuO-TiRz6?}umu=za}b3 zTo)=!weB5QA8Y`%&BKA(DHAwvLDy0#5};FfK+ipqyf_3@OVs`${sBy!fQ}&1ySQEe ztD;PbgAOMWmQ_8!C<|1dvsJn((OZlbe0Qd9#tERPv72yAaE=a;@gNYxowqfY-sjHU zIcQ798d~PiuL*x_SX?)6=rnnqYKZ;p<%Z z*g`j;29R4$y4a>KHSz6J)FQdichP%U%&7_l8@C7ThG`k{__OK-~0lFt4~K zpX|k)!&Mq({a3R4OK7`!^S{bbZk8eyeUm|GYu^QSoJ8-ODRsfmQKi;HW+F(-4dZ6kksTRecO~xg}UN zr%N0dtjtmt0Ccj4qhW#S_lHhVIxJl@vusp5)()C)Bwv#_e{S)qOyRPFW!o< z+@5_qJ9FdtTAr{jeu~C4v|RF{!}a^G6ucv_3Jg+fLH(1x+%tK8&-l95=emS!ibtOt yDcw@u^gW_*=^*!+{g;k1kN!V<6KQ^rE4EbIOooRz2)ud4VQgrAqvo1h;{O211%meg literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_700/00002.png b/tests/ragger/snapshots/stax/get_pk_700/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..13499fcc9366bb214269b05db05ce8ae4380ce24 GIT binary patch literal 5035 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_60/00000.png b/tests/ragger/snapshots/stax/get_pk_rejected_60/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..759339003be1e34d8109a940f3c43973474c079f GIT binary patch literal 8677 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 G;XeS84)QAi literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected/00001.png b/tests/ragger/snapshots/stax/get_pk_rejected_60/00001.png similarity index 100% rename from tests/ragger/snapshots/stax/get_pk_rejected/00001.png rename to tests/ragger/snapshots/stax/get_pk_rejected_60/00001.png diff --git a/tests/ragger/snapshots/stax/get_pk_rejected/00002.png b/tests/ragger/snapshots/stax/get_pk_rejected_60/00002.png similarity index 100% rename from tests/ragger/snapshots/stax/get_pk_rejected/00002.png rename to tests/ragger/snapshots/stax/get_pk_rejected_60/00002.png diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_700/00000.png b/tests/ragger/snapshots/stax/get_pk_rejected_700/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..759339003be1e34d8109a940f3c43973474c079f GIT binary patch literal 8677 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 G;XeS84)QAi literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_700/00001.png b/tests/ragger/snapshots/stax/get_pk_rejected_700/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..aa683fab0ac729098678b1344f3cbd3354b1aabb GIT binary patch literal 13728 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_700/00002.png b/tests/ragger/snapshots/stax/get_pk_rejected_700/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b0eba3f0cd7ecd4a6333e26445f27c0419828895 GIT binary patch literal 6545 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 MT|Lhe&V}Xv7j4ZP#{d8T literal 0 HcmV?d00001 diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index bb550d1..c88c116 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Optional, Tuple import pytest from ledger_app_clients.ethereum.client import EthAppClient, StatusWord @@ -49,15 +49,24 @@ def get_moves(firmware: Firmware, return moves +@pytest.mark.parametrize( + "path, suffix", + [ + ("m/44'/60'/0'/0/0", "60"), + ("m/44'/700'/1'/0/0", "700") + ], +) def test_get_pk_rejected(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + path, + suffix): app_client = EthAppClient(backend) with pytest.raises(ExceptionRAPDU) as e: - with app_client.get_public_addr(): + with app_client.get_public_addr(bip32_path=path): navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, - "get_pk_rejected", + f"get_pk_rejected_{suffix}", get_moves(firmware, reject=True)) assert e.value.status == StatusWord.CONDITION_NOT_SATISFIED @@ -79,3 +88,57 @@ def test_get_pk(firmware: Firmware, assert pk.hex() == ref_pk if with_chaincode: assert chaincode.hex() == ref_chaincode + + +def test_get_pk2(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator): + app_client = EthAppClient(backend) + + path="m/44'/700'/1'/0/0" + with app_client.get_public_addr(bip32_path=path, chaincode=True): + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + "get_pk_700", + get_moves(firmware)) + pk, _, chaincode = ResponseParser.pk_addr(app_client.response().data, True) + ref_pk, ref_chaincode = calculate_public_key_and_chaincode(curve=CurveChoice.Secp256k1, + path=path) + assert pk.hex() == ref_pk + assert chaincode.hex() == ref_chaincode + + +def test_get_public_key(backend: BackendInterface): + app_client = EthAppClient(backend) + + with app_client.get_public_addr(bip32_path="m/44'/60'/1'/0/0", display=False, chaincode=True): + pass + + response = app_client.response() + assert response.status == 0x9000 + + # response = pub_key_len (1) + # pub_key (var) + # eth_addr_len (1) + # eth_addr (var) + # chain_code (var) + buffer, pub_key_len, pub_key = _pop_size_prefixed_buf_from_buf(response.data) + buffer, eth_addr_len, eth_addr = _pop_size_prefixed_buf_from_buf(buffer) + buffer, chain_code = _pop_sized_buf_from_buffer(buffer, 32) + + assert len(response.data) == 2 + pub_key_len + eth_addr_len + 32 + assert pub_key == b'\x04\xea\x02&\x91\xc7\x87\x00\xd2\xc3\xa0\xc7E\xbe\xa4\xf2\xb8\xe5\xe3\x13\x97j\x10B\xf6\xa1Vc\\\xb2\x05\xda\x1a\xcb\xfe\x04*\nZ\x89eyn6"E\x89\x0eT\xbd-\xbex\xec\x1e\x18df\xf2\xe9\xd0\xf5\xd5\xd8\xdf' + assert eth_addr == b'463e4e114AA57F54f2Fd2C3ec03572C6f75d84C2' + assert chain_code == b'\xaf\x89\xcd)\xea${8I\xec\xc80\xc2\xc8\x94\\e1\xd6P\x87\x07?\x9f\xd09\x00\xa0\xea\xa7\x96\xc8' + + +def _pop_sized_buf_from_buffer(buffer: bytes, size: int) -> Tuple[bytes, bytes]: + """Parse buffer and returns: remainder, data[size]""" + + return buffer[size:], buffer[0:size] + + +def _pop_size_prefixed_buf_from_buf(buffer:bytes) -> Tuple[bytes, int, bytes]: + """ Parse buffer and returns: remainder, data_len, data """ + + data_len = buffer[0] + return buffer[1+data_len:], data_len, buffer[1:data_len+1] diff --git a/tests/speculos/test_pubkey_cmd.py b/tests/speculos/test_pubkey_cmd.py deleted file mode 100644 index 451bbf9..0000000 --- a/tests/speculos/test_pubkey_cmd.py +++ /dev/null @@ -1,117 +0,0 @@ -from time import sleep - -import pytest - -import ethereum_client -from ethereum_client.utils import compare_screenshot, save_screenshot, PATH_IMG - - -def test_get_public_key(cmd): - # ETHER COIN without display - result: list = [] - with cmd.get_public_key(bip32_path="44'/60'/1'/0/0", display=False, result=result) as exchange: - pass - - uncompressed_addr_len, eth_addr, chain_code = result - - assert len(uncompressed_addr_len) == 65 - assert len(eth_addr) == 40 - assert len(chain_code) == 32 - - assert uncompressed_addr_len == b'\x04\xea\x02&\x91\xc7\x87\x00\xd2\xc3\xa0\xc7E\xbe\xa4\xf2\xb8\xe5\xe3\x13\x97j\x10B\xf6\xa1Vc\\\xb2\x05\xda\x1a\xcb\xfe\x04*\nZ\x89eyn6"E\x89\x0eT\xbd-\xbex\xec\x1e\x18df\xf2\xe9\xd0\xf5\xd5\xd8\xdf' - assert eth_addr == b'463e4e114AA57F54f2Fd2C3ec03572C6f75d84C2' - assert chain_code == b'\xaf\x89\xcd)\xea${8I\xec\xc80\xc2\xc8\x94\\e1\xd6P\x87\x07?\x9f\xd09\x00\xa0\xea\xa7\x96\xc8' - - # DAI COIN with display - result: list = [] - with cmd.get_public_key(bip32_path="44'/700'/1'/0/0", display=True, result=result) as exchange: - sleep(0.5) - - if cmd.model == "nanos": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00003.png") - cmd.client.press_and_release('right') - - # Approved - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00004.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00001.png") - cmd.client.press_and_release('right') - - # Approve - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00002.png") - cmd.client.press_and_release('both') - - uncompressed_addr_len, eth_addr, chain_code = result - assert len(uncompressed_addr_len) == 65 - assert len(eth_addr) == 40 - assert len(chain_code) == 32 - - assert uncompressed_addr_len == b'\x04V\x8a\x15\xdc\xed\xc8[\x16\x17\x8d\xaf\xcax\x91v~{\x9c\x06\xba\xaa\xde\xf4\xe7\x9f\x86\x1d~\xed)\xdc\n8\x9c\x84\xf01@E\x13]\xd7~6\x8e\x8e\xabb-\xad\xcdo\xc3Fw\xb7\xc8y\xdbQ/\xc3\xe5\x18' - assert eth_addr == b'Ba9A9aED0a1AbBE1da1155F64e73e57Af7995880' - assert chain_code == b'4\xaa\x95\xf4\x02\x12\x12-T\x155\x86\xed\xc5\x0b\x1d8\x81\xae\xce\xbd\x1a\xbbv\x9a\xc7\xd5\x1a\xd0KT\xe4' - - -def test_reject_get_public_key(cmd): - # DAI COIN with display - result: list = [] - - with pytest.raises(ethereum_client.exception.errors.DenyError) as error: - - with cmd.get_public_key(bip32_path="44'/700'/1'/0/0", display=True, result=result) as exchange: - sleep(0.5) - - if cmd.model == "nanos": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00003.png") - cmd.client.press_and_release('right') - - # Approve - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00004.png") - cmd.client.press_and_release('right') - - # Reject - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00005.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00001.png") - cmd.client.press_and_release('right') - - # Approve - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00002.png") - cmd.client.press_and_release('right') - - # Reject - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00003.png") - cmd.client.press_and_release('both') - - assert error.args[0] == '0x6985'