diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00000.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00000.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00001.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00001.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00002.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00002.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00003.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00003.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00004.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00004.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00005.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00005.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00006.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00006.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00007.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00007.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00008.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00008.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00009.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00009.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00009.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00010.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00010.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00010.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00010.png diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00011.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00011.png new file mode 100644 index 0000000..ce795f3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00011.png differ diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00000.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00000.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00001.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00001.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00002.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00002.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00003.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00003.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00004.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00004.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00005.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00005.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00006.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00006.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00007.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00007.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00008.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00008.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00009.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00009.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00009.png diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00010.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00010.png new file mode 100644 index 0000000..ce795f3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00010.png differ diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00000.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00000.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00001.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00001.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00002.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00002.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00003.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00003.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00004.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00004.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00005.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00005.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00006.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00006.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00007.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00007.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00008.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00008.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00008.png diff --git a/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00009.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00009.png new file mode 100644 index 0000000..ce795f3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00009.png differ diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00000.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00000.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00001.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00001.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00002.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00002.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00003.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00003.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00004.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00004.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00005.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00005.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00006.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00006.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00007.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00007.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00008.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00008.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00009.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00009.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00009.png diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00010.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00010.png new file mode 100644 index 0000000..ce795f3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00010.png differ diff --git a/tests/speculos/screenshots/sign/nanos/reject/00000.png b/tests/ragger/snapshots/nanos/test_sign_reject/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00000.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00001.png b/tests/ragger/snapshots/nanos/test_sign_reject/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00001.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00002.png b/tests/ragger/snapshots/nanos/test_sign_reject/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00002.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00003.png b/tests/ragger/snapshots/nanos/test_sign_reject/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00003.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00004.png b/tests/ragger/snapshots/nanos/test_sign_reject/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00004.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00005.png b/tests/ragger/snapshots/nanos/test_sign_reject/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00005.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00006.png b/tests/ragger/snapshots/nanos/test_sign_reject/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00006.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00007.png b/tests/ragger/snapshots/nanos/test_sign_reject/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00007.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00008.png b/tests/ragger/snapshots/nanos/test_sign_reject/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00008.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00009.png b/tests/ragger/snapshots/nanos/test_sign_reject/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00009.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00009.png diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00010.png b/tests/ragger/snapshots/nanos/test_sign_reject/00010.png new file mode 100644 index 0000000..ce795f3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_reject/00010.png differ diff --git a/tests/speculos/screenshots/sign/nanos/simple/00000.png b/tests/ragger/snapshots/nanos/test_sign_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00000.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00001.png b/tests/ragger/snapshots/nanos/test_sign_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00001.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00002.png b/tests/ragger/snapshots/nanos/test_sign_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00002.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00003.png b/tests/ragger/snapshots/nanos/test_sign_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00003.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00004.png b/tests/ragger/snapshots/nanos/test_sign_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00004.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00005.png b/tests/ragger/snapshots/nanos/test_sign_simple/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00005.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00006.png b/tests/ragger/snapshots/nanos/test_sign_simple/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00006.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00007.png b/tests/ragger/snapshots/nanos/test_sign_simple/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00007.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00008.png b/tests/ragger/snapshots/nanos/test_sign_simple/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00008.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00008.png diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00009.png b/tests/ragger/snapshots/nanos/test_sign_simple/00009.png new file mode 100644 index 0000000..ce795f3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_simple/00009.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display b/tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display new file mode 120000 index 0000000..a9c6880 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display @@ -0,0 +1 @@ +../nanox/test_sign_blind_and_nonce_display \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_blind_simple b/tests/ragger/snapshots/nanosp/test_sign_blind_simple new file mode 120000 index 0000000..3ab1815 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_blind_simple @@ -0,0 +1 @@ +../nanox/test_sign_blind_simple \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_limit_nonce b/tests/ragger/snapshots/nanosp/test_sign_limit_nonce new file mode 120000 index 0000000..9f9d799 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_limit_nonce @@ -0,0 +1 @@ +../nanox/test_sign_limit_nonce \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_nonce_display b/tests/ragger/snapshots/nanosp/test_sign_nonce_display new file mode 120000 index 0000000..1d4b5ed --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_nonce_display @@ -0,0 +1 @@ +../nanox/test_sign_nonce_display \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_reject b/tests/ragger/snapshots/nanosp/test_sign_reject new file mode 120000 index 0000000..2f1476f --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_reject @@ -0,0 +1 @@ +../nanox/test_sign_reject \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_simple b/tests/ragger/snapshots/nanosp/test_sign_simple new file mode 120000 index 0000000..3c8db9e --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_simple @@ -0,0 +1 @@ +../nanox/test_sign_simple \ No newline at end of file diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00000.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00000.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00001.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00001.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00002.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00002.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00003.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00003.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00004.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00004.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00005.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00005.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00005.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00006.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00006.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00006.png diff --git a/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00007.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00007.png new file mode 100644 index 0000000..6578872 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00007.png differ diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00000.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00000.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00001.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00001.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00002.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00002.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00003.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00003.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00004.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00004.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00005.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00005.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_blind_simple/00006.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00006.png new file mode 100644 index 0000000..6578872 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00006.png differ diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00000.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00000.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00001.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00001.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00002.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00002.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00003.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00003.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00004.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00004.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00004.png diff --git a/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00005.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00005.png new file mode 100644 index 0000000..6578872 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00005.png differ diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00000.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00000.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00001.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00001.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00002.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00002.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00003.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00003.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00004.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00004.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00005.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00005.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_nonce_display/00006.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00006.png new file mode 100644 index 0000000..6578872 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00006.png differ diff --git a/tests/speculos/screenshots/sign/nanox/reject/00000.png b/tests/ragger/snapshots/nanox/test_sign_reject/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00000.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00001.png b/tests/ragger/snapshots/nanox/test_sign_reject/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00001.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00002.png b/tests/ragger/snapshots/nanox/test_sign_reject/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00002.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00003.png b/tests/ragger/snapshots/nanox/test_sign_reject/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00003.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00004.png b/tests/ragger/snapshots/nanox/test_sign_reject/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00004.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00005.png b/tests/ragger/snapshots/nanox/test_sign_reject/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00005.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_reject/00006.png b/tests/ragger/snapshots/nanox/test_sign_reject/00006.png new file mode 100644 index 0000000..6578872 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_reject/00006.png differ diff --git a/tests/speculos/screenshots/sign/nanox/simple/00000.png b/tests/ragger/snapshots/nanox/test_sign_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00000.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00001.png b/tests/ragger/snapshots/nanox/test_sign_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00001.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00002.png b/tests/ragger/snapshots/nanox/test_sign_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00002.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00003.png b/tests/ragger/snapshots/nanox/test_sign_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00003.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00004.png b/tests/ragger/snapshots/nanox/test_sign_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00004.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00004.png diff --git a/tests/ragger/snapshots/nanox/test_sign_simple/00005.png b/tests/ragger/snapshots/nanox/test_sign_simple/00005.png new file mode 100644 index 0000000..6578872 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_simple/00005.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00000.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00000.png new file mode 100644 index 0000000..f992e71 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00001.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00001.png new file mode 100644 index 0000000..107b38c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00002.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00002.png new file mode 100644 index 0000000..3689993 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00003.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00003.png new file mode 100644 index 0000000..d4429dd Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00004.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00004.png new file mode 100644 index 0000000..687a019 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00005.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00005.png new file mode 100644 index 0000000..a21279c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00005.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00000.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00000.png new file mode 100644 index 0000000..f992e71 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_simple/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00001.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00001.png new file mode 100644 index 0000000..107b38c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_simple/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00002.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00002.png new file mode 100644 index 0000000..513845d Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_simple/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00003.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00003.png new file mode 100644 index 0000000..bc1ca93 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_simple/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00004.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00004.png new file mode 100644 index 0000000..a21279c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_blind_simple/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00000.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00000.png new file mode 100644 index 0000000..f992e71 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00001.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00001.png new file mode 100644 index 0000000..915fb9c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00002.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00002.png new file mode 100644 index 0000000..2833c23 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00003.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00003.png new file mode 100644 index 0000000..687a019 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00004.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00004.png new file mode 100644 index 0000000..a21279c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00000.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00000.png new file mode 100644 index 0000000..f992e71 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_nonce_display/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00001.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00001.png new file mode 100644 index 0000000..2180437 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_nonce_display/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00002.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00002.png new file mode 100644 index 0000000..d4429dd Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_nonce_display/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00003.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00003.png new file mode 100644 index 0000000..687a019 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_nonce_display/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00004.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00004.png new file mode 100644 index 0000000..a21279c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_nonce_display/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00000.png b/tests/ragger/snapshots/stax/test_sign_reject/00000.png new file mode 100644 index 0000000..f992e71 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_reject/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00001.png b/tests/ragger/snapshots/stax/test_sign_reject/00001.png new file mode 100644 index 0000000..513845d Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_reject/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00002.png b/tests/ragger/snapshots/stax/test_sign_reject/00002.png new file mode 100644 index 0000000..bc1ca93 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_reject/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00003.png b/tests/ragger/snapshots/stax/test_sign_reject/00003.png new file mode 100644 index 0000000..9d26114 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_reject/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00004.png b/tests/ragger/snapshots/stax/test_sign_reject/00004.png new file mode 100644 index 0000000..cebc8be Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_reject/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00005.png b/tests/ragger/snapshots/stax/test_sign_reject/00005.png new file mode 100644 index 0000000..b1ff1b3 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_reject/00005.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00000.png b/tests/ragger/snapshots/stax/test_sign_simple/00000.png new file mode 100644 index 0000000..f992e71 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_simple/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00001.png b/tests/ragger/snapshots/stax/test_sign_simple/00001.png new file mode 100644 index 0000000..513845d Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_simple/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00002.png b/tests/ragger/snapshots/stax/test_sign_simple/00002.png new file mode 100644 index 0000000..bc1ca93 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_simple/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00003.png b/tests/ragger/snapshots/stax/test_sign_simple/00003.png new file mode 100644 index 0000000..a21279c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_simple/00003.png differ diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index 516db06..5d69082 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -1,20 +1,24 @@ from web3 import Web3 -from ledger_app_clients.ethereum.client import EthAppClient +from ledger_app_clients.ethereum.client import EthAppClient, StatusWord import ledger_app_clients.ethereum.response_parser as ResponseParser from ledger_app_clients.ethereum.utils import recover_transaction +from ragger.error import ExceptionRAPDU from ragger.backend import BackendInterface from ragger.firmware import Firmware -from ragger.navigator import Navigator, NavInsID +from ragger.navigator import Navigator, NavInsID, NavIns + +from constants import ROOT_SNAPSHOT_PATH # Values used across all tests CHAIN_ID = 1 ADDR = bytes.fromhex("0011223344556677889900112233445566778899") +ADDR2 = bytes.fromhex("5a321744667052affa8386ed49e00ef223cbffc3") BIP32_PATH = "m/44'/60'/0'/0/0" NONCE = 21 -GAS_PRICE = 13 +NONCE2 = 68 GAS_LIMIT = 21000 AMOUNT = 1.22 @@ -22,14 +26,16 @@ AMOUNT = 1.22 def common(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - tx_params: dict): + tx_params: dict, + test_name: str = "", + path: str = BIP32_PATH): app_client = EthAppClient(backend) - with app_client.get_public_addr(display=False): + with app_client.get_public_addr(bip32_path=path, display=False): pass _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) - with app_client.sign(BIP32_PATH, tx_params): + with app_client.sign(path, tx_params): if firmware.device.startswith("nano"): next_action = NavInsID.RIGHT_CLICK confirm_action = NavInsID.BOTH_CLICK @@ -38,7 +44,15 @@ def common(firmware: Firmware, next_action = NavInsID.USE_CASE_REVIEW_TAP confirm_action = NavInsID.USE_CASE_REVIEW_CONFIRM end_text = "Sign" - navigator.navigate_until_text(next_action, [confirm_action], end_text) + + if test_name: + navigator.navigate_until_text_and_compare(next_action, + [confirm_action], + end_text, + ROOT_SNAPSHOT_PATH, + test_name) + else: + navigator.navigate_until_text(next_action, [confirm_action], end_text) # verify signature vrs = ResponseParser.signature(app_client.response().data) @@ -46,19 +60,53 @@ def common(firmware: Firmware, assert addr == DEVICE_ADDR +def common_reject(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + tx_params: dict, + test_name: str, + path: str = BIP32_PATH): + app_client = EthAppClient(backend) + + try: + with app_client.sign(path, tx_params): + if firmware.device.startswith("nano"): + next_action = NavInsID.RIGHT_CLICK + confirm_action = NavInsID.BOTH_CLICK + navigator.navigate_until_text_and_compare(next_action, + [confirm_action], + "Reject", + ROOT_SNAPSHOT_PATH, + test_name) + else: + instructions = [NavInsID.USE_CASE_REVIEW_TAP] * 2 + instructions += [NavInsID.USE_CASE_CHOICE_REJECT, + NavInsID.USE_CASE_CHOICE_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS] + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + test_name, + instructions) + + except ExceptionRAPDU as e: + assert e.status == StatusWord.CONDITION_NOT_SATISFIED + else: + assert False # An exception should have been raised + + def test_legacy(firmware: Firmware, backend: BackendInterface, navigator: Navigator): - common(firmware, backend, navigator, { + tx_params: dict = { "nonce": NONCE, - "gasPrice": Web3.to_wei(GAS_PRICE, "gwei"), + "gasPrice": Web3.to_wei(13, "gwei"), "gas": GAS_LIMIT, "to": ADDR, "value": Web3.to_wei(AMOUNT, "ether"), "chainId": CHAIN_ID - }) + } + common(firmware, backend, navigator, tx_params) def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigator): - common(firmware, backend, navigator, { + tx_params: dict = { "nonce": NONCE, "maxFeePerGas": Web3.to_wei(145, "gwei"), "maxPriorityFeePerGas": Web3.to_wei(1.5, "gwei"), @@ -66,4 +114,224 @@ def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigato "to": ADDR, "value": Web3.to_wei(AMOUNT, "ether"), "chainId": CHAIN_ID - }) + } + common(firmware, backend, navigator, tx_params) + + +def test_sign_simple(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + tx_params: dict = { + "nonce": NONCE2, + "gasPrice": Web3.to_wei(13, 'gwei'), + "gas": GAS_LIMIT, + "to": ADDR2, + "value": 0x6f9c9e7bf61818, + "chainId": CHAIN_ID + } + common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + + +def test_sign_limit_nonce(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + tx_params: dict = { + "nonce": 2**64-1, + "gasPrice": 10, + "gas": 50000, + "to": ADDR2, + "value": 0x08762, + "chainId": CHAIN_ID + } + common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + + +def test_sign_nonce_display(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + # Activate nonce display + if firmware.device.startswith("nano"): + initial_instructions = [ + NavInsID.LEFT_CLICK, # Application is ready + NavInsID.LEFT_CLICK, # Quit + NavInsID.BOTH_CLICK, # Blind signing + NavInsID.RIGHT_CLICK, # Debug data + NavInsID.RIGHT_CLICK, # Nonce display + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + ] + if firmware.device != "nanos": + initial_instructions += [NavInsID.RIGHT_CLICK] * 2 + initial_instructions += [NavInsID.BOTH_CLICK] # Back + else: + initial_instructions = [ + NavInsID.USE_CASE_HOME_SETTINGS, # Settings + NavInsID.USE_CASE_SETTINGS_NEXT, # Next page + NavIns(NavInsID.TOUCH, (340, 440)), # Nonce + NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, + ] + + # Navigate to settings menu to avoid 1st screen with random serial no + navigator.navigate(initial_instructions, + screen_change_before_first_instruction=False) + + tx_params: dict = { + "nonce": NONCE2, + "gasPrice": Web3.to_wei(13, 'gwei'), + "gas": GAS_LIMIT, + "to": ADDR2, + "value": 0x6f9c9e7bf61818, + "chainId": CHAIN_ID + } + common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + + +def test_sign_blind_simple(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + # Activate nonce display + if firmware.device.startswith("nano"): + initial_instructions = [ + NavInsID.LEFT_CLICK, # Application is ready + NavInsID.LEFT_CLICK, # Quit + NavInsID.BOTH_CLICK, # Blind signing + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.RIGHT_CLICK, + ] + if firmware.device != "nanos": + initial_instructions += [NavInsID.RIGHT_CLICK] * 2 + initial_instructions += [NavInsID.BOTH_CLICK] # Back + else: + initial_instructions = [ + NavInsID.USE_CASE_HOME_SETTINGS, # Settings + NavInsID.USE_CASE_SETTINGS_NEXT, # Next page + NavIns(NavInsID.TOUCH, (340, 120)), # Blind signing + NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, + ] + + # Navigate to settings menu to avoid 1st screen with random serial no + navigator.navigate(initial_instructions, + screen_change_before_first_instruction=False) + + data = "ok" + tx_params: dict = { + "nonce": NONCE2, + "gasPrice": Web3.to_wei(13, 'gwei'), + "gas": GAS_LIMIT, + "to": ADDR2, + "value": 0x6f9c9e7bf61818, + "chainId": CHAIN_ID, + "data": data.encode('utf-8').hex() + } + common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + + +def test_sign_blind_and_nonce_display(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + # Activate nonce display + if firmware.device.startswith("nano"): + initial_instructions = [ + NavInsID.LEFT_CLICK, # Application is ready + NavInsID.LEFT_CLICK, # Quit + NavInsID.BOTH_CLICK, # Blind signing + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.RIGHT_CLICK, # Nonce display + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + ] + if firmware.device != "nanos": + initial_instructions += [NavInsID.RIGHT_CLICK] * 2 + initial_instructions += [NavInsID.BOTH_CLICK] # Back + else: + initial_instructions = [ + NavInsID.USE_CASE_HOME_SETTINGS, # Settings + NavInsID.USE_CASE_SETTINGS_NEXT, # Next page + NavIns(NavInsID.TOUCH, (340, 120)), # Blind signing + NavIns(NavInsID.TOUCH, (340, 440)), # Nonce + NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, + ] + + # Navigate to settings menu to avoid 1st screen with random serial no + navigator.navigate(initial_instructions, + screen_change_before_first_instruction=False) + + data = "That's a little message :)" + tx_params: dict = { + "nonce": 1844674, + "gasPrice": Web3.to_wei(13, 'gwei'), + "gas": GAS_LIMIT, + "to": ADDR2, + "value": 0x6f9c9e7bf61818, + "chainId": CHAIN_ID, + "data": data.encode('utf-8').hex() + } + common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + + +def test_sign_reject(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + tx_params: dict = { + "nonce": NONCE2, + "gasPrice": Web3.to_wei(13, 'gwei'), + "gas": GAS_LIMIT, + "to": ADDR2, + "value": 0x6f9c9e7bf61818, + "chainId": CHAIN_ID + } + common_reject(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + + +def test_sign_error_transaction_type(backend: BackendInterface): + tx_params: dict = { + "type": 0, + "nonce": 0, + "gasPrice": 10, + "gas": 50000, + "to": ADDR2, + "value": 0x19, + "chainId": CHAIN_ID + } + + app_client = EthAppClient(backend) + try: + with app_client.sign("m/44'/60'/1'/0/0", tx_params): + pass + + except TypeError: + pass + else: + assert False # An exception should have been raised + + +def test_sign_blind_error_disabled(backend: BackendInterface): + data = "ok" + tx_params: dict = { + "nonce": NONCE2, + "gasPrice": Web3.to_wei(13, 'gwei'), + "gas": GAS_LIMIT, + "to": ADDR2, + "value": 0x6f9c9e7bf61818, + "chainId": CHAIN_ID, + "data": data.encode('utf-8').hex() + } + + app_client = EthAppClient(backend) + try: + with app_client.sign("m/44'/60'/1'/0/0", tx_params): + pass + + except ExceptionRAPDU as e: + assert e.status == StatusWord.INVALID_DATA + else: + assert False # An exception should have been raised diff --git a/tests/speculos/test_sign_cmd.py b/tests/speculos/test_sign_cmd.py deleted file mode 100644 index 5da7ef6..0000000 --- a/tests/speculos/test_sign_cmd.py +++ /dev/null @@ -1,620 +0,0 @@ -from time import sleep - -import pytest - -import ethereum_client -from ethereum_client.utils import compare_screenshot, compare_screenshot, save_screenshot, PATH_IMG -from ethereum_client.transaction import Transaction - - -# https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md - -def test_sign_simple(cmd): - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - transaction = Transaction( - txType=0xEB, - nonce=68, - gasPrice=0x0306dc4200, - gasLimit=0x5208, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x6f9c9e7bf61818, - chainID=1, - ) - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00000.png") - cmd.client.press_and_release('right') - - # Amount 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00003.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00004.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00005.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00006.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00007.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00008.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00000.png") - cmd.client.press_and_release('right') - - # Amount - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00001.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00002.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00003.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/simple/00004.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x26 # 38 - assert r.hex() == "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49" - assert s.hex() == "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd" - - -def test_sign_reject(cmd): - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - transaction = Transaction( - txType=0xEB, - nonce=0, - gasPrice=0x0306dc4200, - gasLimit=0x5208, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x6f9c9e7bf61818, - chainID=1, - ) - - with pytest.raises(ethereum_client.exception.errors.DenyError) as error: - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00000.png") - cmd.client.press_and_release('right') - - # Amount 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00003.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00004.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00005.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00006.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00007.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00008.png") - cmd.client.press_and_release('right') - - # Reject - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00009.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00000.png") - cmd.client.press_and_release('right') - - # Amount - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00001.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00002.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00003.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00004.png") - cmd.client.press_and_release('right') - - # Reject - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/reject/00005.png") - cmd.client.press_and_release('both') - - assert error.args[0] == '0x6985' - - -def test_sign_limit_nonce(cmd): - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - # EIP-2681: Limit account nonce to 2^64-1 - transaction = Transaction( - txType=0xEB, - nonce=2**64-1, - gasPrice=10, - gasLimit=50000, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x08762, - chainID=1, - ) - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00000.png") - cmd.client.press_and_release('right') - - # Amount 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00003.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00004.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00005.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00006.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00007.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00008.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00000.png") - cmd.client.press_and_release('right') - - # Amount - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00001.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00002.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00003.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/limit_nonce/00004.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x26 # 38 - assert r.hex() == "7f17f9efa5a6065f885a44a5f5d68a62381c6b2b23047817b4569c61ccf571c6" - assert s.hex() == "4b67d37cfe473e0b2daf246fa82c7595bcff0c1515d69089037d0c061f14b3b3" - - -def test_sign_error_transaction_type(cmd): - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - # the txType is between 0x00 and 0x7F - transaction = Transaction( - txType=0x00, - nonce=0, - gasPrice=10, - gasLimit=50000, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x19, - chainID=1, - ) - - with pytest.raises(ethereum_client.exception.errors.UnknownDeviceError) as error: - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - pass - - assert error.args[0] == '0x6501' - - transaction.txType = 0x7F - with pytest.raises(ethereum_client.exception.errors.UnknownDeviceError) as error: - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - pass - - assert error.args[0] == '0x6501' - - -def test_sign_nonce_display(cmd): - # Activate nonce display - # Application is ready - cmd.client.press_and_release('left') - # Quit - cmd.client.press_and_release('left') - # Settings - cmd.client.press_and_release('both') - # Blind signing - cmd.client.press_and_release('right') - # Debug data - cmd.client.press_and_release('right') - # Nonce display - cmd.client.press_and_release('both') - cmd.client.press_and_release('right') - # Back - cmd.client.press_and_release('both') - - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - transaction = Transaction( - txType=0xEB, - nonce=68, - gasPrice=0x0306dc4200, - gasLimit=0x5208, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x6f9c9e7bf61818, - chainID=1, - ) - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00000.png") - cmd.client.press_and_release('right') - - # Amount 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00003.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00004.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00005.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00006.png") - cmd.client.press_and_release('right') - - # Nonce - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00007.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00008.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00009.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00000.png") - cmd.client.press_and_release('right') - - # Amount - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00001.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00002.png") - cmd.client.press_and_release('right') - - # Nonce - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00003.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00004.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/nonce_display/00005.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x26 # 38 - assert r.hex() == "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49" - assert s.hex() == "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd" - - -def test_sign_blind_simple(cmd): - # Activate blind signing - # Application is ready - cmd.client.press_and_release('left') - # Quit - cmd.client.press_and_release('left') - # Settings - cmd.client.press_and_release('both') - # Blind signing - cmd.client.press_and_release('both') - cmd.client.press_and_release('right') - # Debug data - cmd.client.press_and_release('right') - # Nonce display - cmd.client.press_and_release('right') - # Back - cmd.client.press_and_release('both') - - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - transaction = Transaction( - txType=0xEB, - nonce=68, - gasPrice=0x0306dc4200, - gasLimit=0x5208, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x6f9c9e7bf61818, - chainID=1, - data="ok", - ) - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00000.png") - cmd.client.press_and_release('right') - - # Blind Signing - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00001.png") - cmd.client.press_and_release('right') - - # Amount 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00003.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00004.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00005.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00006.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00007.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00008.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00009.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00000.png") - cmd.client.press_and_release('right') - - # Blind Signing - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00001.png") - cmd.client.press_and_release('right') - - # Amount - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00002.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00003.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00004.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_simple/00005.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x26 # 38 - assert r.hex() == "98163696ad14f54e0e7207306b6f66665131cee601052facab8fd24250e15470" - assert s.hex() == "318e573fc809f7dcb8f9718c8bd2946b2c3c83cedf3720e66e06fb63ceea3174" - - -def test_sign_blind_error_disabled(cmd): - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - transaction = Transaction( - txType=0xEB, - nonce=68, - gasPrice=0x0306dc4200, - gasLimit=0x5208, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x6f9c9e7bf61818, - chainID=1, - data="ok", - ) - - with pytest.raises(ethereum_client.exception.errors.UnknownDeviceError) as error: - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - pass - if cmd.model == "nanox" or cmd.model == "nanosp": - pass - - assert error.args[0] == '0x6a80' - - -def test_sign_blind_and_nonce_display(cmd): - # Activate blind signing - # Application is ready - cmd.client.press_and_release('left') - # Quit - cmd.client.press_and_release('left') - # Settings - cmd.client.press_and_release('both') - # Blind signing - cmd.client.press_and_release('both') - cmd.client.press_and_release('right') - # Debug data - cmd.client.press_and_release('right') - # Nonce display - cmd.client.press_and_release('both') - cmd.client.press_and_release('right') - # Back - cmd.client.press_and_release('both') - - result: list = [] - - # Ether coin type - bip32_path="44'/60'/1'/0/0" - - transaction = Transaction( - txType=0xEB, - nonce=1844674, - gasPrice=0x0306dc4200, - gasLimit=0x5208, - to="0x5a321744667052affa8386ed49e00ef223cbffc3", - value=0x6f9c9e7bf61818, - chainID=1, - data="That's a little message :)", - ) - - with cmd.simple_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00000.png") - cmd.client.press_and_release('right') - - # Blind Signing - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00001.png") - cmd.client.press_and_release('right') - - # Amount 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00003.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00004.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00005.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00006.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00007.png") - cmd.client.press_and_release('right') - - # Nonce - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00008.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00009.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00010.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Review transaction - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00000.png") - cmd.client.press_and_release('right') - - # Blind Signing - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00001.png") - cmd.client.press_and_release('right') - - # Amount - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00002.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00003.png") - cmd.client.press_and_release('right') - - # Nonce - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00004.png") - cmd.client.press_and_release('right') - - # Max Fees - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00005.png") - cmd.client.press_and_release('right') - - # Accept and send - compare_screenshot(cmd, f"screenshots/sign/{PATH_IMG[cmd.model]}/blind_and_nonce_display/00006.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x26 # 38 - assert r.hex() == "c8d7cd5c1711ea1af7da048d15d1a95fc9347d4622afa11f32320d73384984d1" - assert s.hex() == "3165ca0a27f565e1a87560ed3d3a144c4ac9732370428da5e6952e93659f6ac2"