From 82d0ecd74d4c8c284b4b43ed2220ad825495fef3 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Fri, 17 Nov 2023 08:31:14 +0100 Subject: [PATCH 1/3] Fix multiple definition of apdu_parser - 1st definition in SDK - 2nd definition in the Application (same filename also) - Fix dependencies (header files, definitions) --- src/apdu/dispatcher.h | 1 + src/apdu/parser.c | 46 ------------------------------------------- src/apdu/parser.h | 45 ------------------------------------------ src/app_main.c | 2 +- src/types.h | 12 ----------- 5 files changed, 2 insertions(+), 104 deletions(-) delete mode 100644 src/apdu/parser.c delete mode 100644 src/apdu/parser.h diff --git a/src/apdu/dispatcher.h b/src/apdu/dispatcher.h index 00873cc..de090c1 100644 --- a/src/apdu/dispatcher.h +++ b/src/apdu/dispatcher.h @@ -24,6 +24,7 @@ #pragma once #include "../types.h" +#include "parser.h" /** * Parameter 2 for last APDU to receive. diff --git a/src/apdu/parser.c b/src/apdu/parser.c deleted file mode 100644 index 6ac0a2e..0000000 --- a/src/apdu/parser.c +++ /dev/null @@ -1,46 +0,0 @@ -/***************************************************************************** - * MIT License - * - * Copyright (c) 2023 coderofstuff - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - *****************************************************************************/ -#include // size_t -#include // uint*_t -#include // bool - -#include "parser.h" -#include "../types.h" -#include "../offsets.h" - -bool apdu_parser(command_t *cmd, uint8_t *buf, size_t buf_len) { - // Check minimum length and Lc field of APDU command - if (buf_len < OFFSET_CDATA || buf_len - OFFSET_CDATA != buf[OFFSET_LC]) { - return false; - } - - cmd->cla = buf[OFFSET_CLA]; - cmd->ins = (command_e) buf[OFFSET_INS]; - cmd->p1 = buf[OFFSET_P1]; - cmd->p2 = buf[OFFSET_P2]; - cmd->lc = buf[OFFSET_LC]; - cmd->data = (buf[OFFSET_LC] > 0) ? buf + OFFSET_CDATA : NULL; - - return true; -} diff --git a/src/apdu/parser.h b/src/apdu/parser.h deleted file mode 100644 index 7bc39a3..0000000 --- a/src/apdu/parser.h +++ /dev/null @@ -1,45 +0,0 @@ -/***************************************************************************** - * MIT License - * - * Copyright (c) 2023 coderofstuff - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - *****************************************************************************/ -#pragma once - -#include // size_t -#include // uint*_t -#include // bool - -#include "../types.h" - -/** - * Parse APDU command from byte buffer. - * - * @param[out] cmd - * Structured APDU command (CLA, INS, P1, P2, Lc, Command data). - * @param[in] buf - * Byte buffer with raw APDU command. - * @param[in] buf_len - * Length of byte buffer. - * - * @return true if success, false otherwise. - * - */ -bool apdu_parser(command_t *cmd, uint8_t *buf, size_t buf_len); diff --git a/src/app_main.c b/src/app_main.c index 07fb70f..5a2f5b1 100644 --- a/src/app_main.c +++ b/src/app_main.c @@ -32,7 +32,7 @@ #include "io.h" #include "sw.h" #include "ui/menu.h" -#include "apdu/parser.h" +#include "parser.h" #include "apdu/dispatcher.h" global_ctx_t G_context; diff --git a/src/types.h b/src/types.h index 454b86e..f45ee13 100644 --- a/src/types.h +++ b/src/types.h @@ -44,18 +44,6 @@ typedef enum { SIGN_MESSAGE = 0x07 /// sign a personal message with BIP32 path } command_e; -/** - * Structure with fields of APDU command. - */ -typedef struct { - uint8_t cla; /// Instruction class - command_e ins; /// Instruction code - uint8_t p1; /// Instruction parameter 1 - uint8_t p2; /// Instruction parameter 2 - uint8_t lc; /// Length of command data - uint8_t *data; /// Command data -} command_t; - /** * Enumeration with parsing state. */ From 88675576237d7014f19ef87c47eda30bad6cc37f Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Fri, 17 Nov 2023 08:51:43 +0100 Subject: [PATCH 2/3] Fix unit-tests --- unit-tests/CMakeLists.txt | 2 +- unit-tests/test_apdu_parser.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/unit-tests/CMakeLists.txt b/unit-tests/CMakeLists.txt index 10fade0..143df34 100644 --- a/unit-tests/CMakeLists.txt +++ b/unit-tests/CMakeLists.txt @@ -62,7 +62,7 @@ add_library(sighash SHARED ../src/sighash.c) add_library(personal_message SHARED ../src/personal_message.c) add_library(write SHARED /opt/ledger-secure-sdk/lib_standard_app/write.c) add_library(format_local SHARED ../src/common/format_local.c) -add_library(apdu_parser SHARED ../src/apdu/parser.c) +add_library(apdu_parser SHARED /opt/ledger-secure-sdk/lib_standard_app/parser.c) add_library(transaction_deserialize ../src/transaction/deserialize.c) add_library(transaction_serialize ../src/transaction/serialize.c) add_library(transaction_utils ../src/transaction/utils.c) diff --git a/unit-tests/test_apdu_parser.c b/unit-tests/test_apdu_parser.c index c0d3f4d..a5f70e6 100644 --- a/unit-tests/test_apdu_parser.c +++ b/unit-tests/test_apdu_parser.c @@ -31,7 +31,7 @@ #include #include "types.h" -#include "apdu/parser.h" +#include "parser.h" static void test_apdu_parser(void **state) { (void) state; @@ -42,10 +42,11 @@ static void test_apdu_parser(void **state) { command_t cmd; memset(&cmd, 0, sizeof(cmd)); - assert_false(apdu_parser(&cmd, apdu_bad_min_len, sizeof(apdu_bad_min_len))); + assert_true(apdu_parser(&cmd, apdu_bad_min_len, sizeof(apdu_bad_min_len))); + assert_int_equal(cmd.lc, 0); memset(&cmd, 0, sizeof(cmd)); - assert_false(apdu_parser(&cmd, apdu_bad_lc, sizeof(apdu_bad_min_len))); + assert_false(apdu_parser(&cmd, apdu_bad_lc, sizeof(apdu_bad_lc))); memset(&cmd, 0, sizeof(cmd)); assert_true(apdu_parser(&cmd, apdu, sizeof(apdu))); From 944e9b68c1de45103c42463fb1af3db992a927c5 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Fri, 17 Nov 2023 16:17:39 +0100 Subject: [PATCH 3/3] Update version --- Makefile | 2 +- .../nanos/test_app_mainmenu/00001.png | Bin 310 -> 312 bytes .../nanosp/test_app_mainmenu/00001.png | Bin 332 -> 335 bytes .../nanox/test_app_mainmenu/00001.png | Bin 332 -> 335 bytes .../stax/test_app_mainmenu/00001.png | Bin 7531 -> 7500 bytes tests/test_name_version.py | 2 +- tests/test_version_cmd.py | 2 +- 7 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index e9d02a2..7cbf87f 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ APPNAME = "Kaspa" # Application version APPVERSION_M = 1 APPVERSION_N = 0 -APPVERSION_P = 0 +APPVERSION_P = 1 APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)" ifeq ($(TARGET_NAME),TARGET_NANOS) diff --git a/tests/snapshots/nanos/test_app_mainmenu/00001.png b/tests/snapshots/nanos/test_app_mainmenu/00001.png index dc3cd970253916236887a3053d407d5133958048..ca8e056464ec2269b2fbad08893c2dca66e05d16 100644 GIT binary patch delta 285 zcmV+&0pk9)0=NQ@B!B-&L_t(|ob8!Q4#OY}M4hU+|AAT11r@RYo20GqP|aHrK9M!! zIFN`CLI@#YIB`R7Xlde zhz`J@N~x6<8B~}$$GStas(1hcz!OkXQfH+jw{&USWWBWzOn>(ZfB_D^WQ|pj`c8o? zLD!|U>QCQ^Y7d41Rh_0$N|Uv-)T5T-)+jE!?V~qiA}`fnfGIN7U&cUcs=pX|5DBYL zB>TOGr#sQRLxBK>G@(R1jNAEQ;j97!;~?hn*%@k|lNY=J{|*fZh6V&f1IQJcUs}3t j4fU6V5JCtc1Qv!D_6&z%f@!6E00000NkvXXu0mjfhZBDK delta 283 zcmV+$0p$L;0=5E>B!B%$L_t(|ob8!Q4#OY}M4hU+|AAT11r@R!45Y2_P|aH*K9M!! zI6y=QA%u`Ha*~`H?Jpm-3D4*Ne#&u1M{pZp19UDIWpk3_eD~LenIOuBIzjj7g#d;< zq62WKQfg&I8WpC_@t$B-6%SwlcmqmG>a6U@Etj-4S??_b(|^4JU_ghyWX38;eTP7n zpm{01`g83>wFkq1s*Y)t(&X(d^{A(~H;T({`{>OW$V>GX;EGK3m(h@#>Mw>KM8YZ* z$$sDA;ZF4KP#}OI4JZ*eTDmGW6oY57!QKbg2ne{W`zkdN`Nw%wUC+=mnY`axI z8aP|-ReS+<>_^s>YR-HQ&3FrXJj&7iXMJ$m^7I7=d5o*+bd7woIjZd)B|hqnauDz3 z9-^;k7_#)=W+Q6pznL0Dau_^s>YR-HQ&3FkqALZ!!vpzU&dHMo`+{V>(x<-E3oYnS@5+C(OIf(am zH_>-A3|aawvk|rQUrY@mxe7({KOE_n@gClZUhU$765?i*J8vxZUuH~Y#wX#{JkL;1 zGJ65uo&p3@fGS`LzzN+at+su#3jhEB00000_;0=d)A7MC+yFH<00000NkvXXu0mjf DF7A#% diff --git a/tests/snapshots/nanox/test_app_mainmenu/00001.png b/tests/snapshots/nanox/test_app_mainmenu/00001.png index 2b89efe1478956ba08405df4d4dfc93386621282..5df2afb49dcddce3ea55029ebdfde6b17d77df8d 100644 GIT binary patch delta 308 zcmV-40n7f(0?z`FB!3o3L_t(|obB0Ba)Tfg1yHBcov{BUv6p@@VF-%Gw8_KtoG&8c zF!vE7W?29L000000DupbbIv)h+rPZjReVQJ;4h_=qNi}$yaj02a!EGloKh;sYoj}1 zY06MfXpgi5XDHZL^aQrmDBEP0`>GW6oY57!QKbg2ne{W`zkdN`Nw%wUC+=mnY`axI z8aP|-ReS+<>_^s>YR-HQ&3FrXJj&7iXMJ$m^7I7=d5o*+bd7woIjZd)B|hqnauDz3 z9-^;k7_#)=W+Q6pznL0Dau_^s>YR-HQ&3FkqALZ!!vpzU&dHMo`+{V>(x<-E3oYnS@5+C(OIf(am zH_>-A3|aawvk|rQUrY@mxe7({KOE_n@gClZUhU$765?i*J8vxZUuH~Y#wX#{JkL;1 zGJ65uo&p3@fGS`LzzN+at+su#3jhEB00000_;0=d)A7MC+yFH<00000NkvXXu0mjf DF7A#% diff --git a/tests/snapshots/stax/test_app_mainmenu/00001.png b/tests/snapshots/stax/test_app_mainmenu/00001.png index 2d6324e32d978065193a39855ecc22dde6a486de..be8d96b024893e83a940cbec42aa539c103bbc73 100644 GIT binary patch literal 7500 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 IQvu2U0qi3OasU7T literal 7531 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 NPCL1us5};!^dGj}BdP!Z diff --git a/tests/test_name_version.py b/tests/test_name_version.py index d0ed305..2d73b0c 100644 --- a/tests/test_name_version.py +++ b/tests/test_name_version.py @@ -12,4 +12,4 @@ def test_get_app_and_version(backend, backend_name): app_name, version = unpack_get_app_and_version_response(response.data) assert app_name == "Kaspa" - assert version == "1.0.0" + assert version == "1.0.1" diff --git a/tests/test_version_cmd.py b/tests/test_version_cmd.py index f13232e..ec98c8a 100644 --- a/tests/test_version_cmd.py +++ b/tests/test_version_cmd.py @@ -4,7 +4,7 @@ # Taken from the Makefile, to update every time the Makefile version is bumped MAJOR = 1 MINOR = 0 -PATCH = 0 +PATCH = 1 # In this test we check the behavior of the device when asked to provide the app version def test_version(backend):