Made all EIP712 code use the same function for response APDUs
This commit is contained in:
@@ -14,9 +14,9 @@
|
||||
#include "filtering.h"
|
||||
#include "common_712.h"
|
||||
|
||||
static void handle_eip712_return_code(bool ret)
|
||||
void handle_eip712_return_code(bool success)
|
||||
{
|
||||
if (ret)
|
||||
if (success)
|
||||
{
|
||||
apdu_response_code = APDU_RESPONSE_OK;
|
||||
}
|
||||
@@ -25,7 +25,7 @@ static void handle_eip712_return_code(bool ret)
|
||||
// Send back the response, do not restart the event loop
|
||||
io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2);
|
||||
|
||||
if (!ret)
|
||||
if (!success)
|
||||
{
|
||||
eip712_context_deinit();
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ bool handle_eip712_struct_def(const uint8_t *const apdu_buf);
|
||||
bool handle_eip712_struct_impl(const uint8_t *const apdu_buf);
|
||||
bool handle_eip712_sign(const uint8_t *const apdu_buf);
|
||||
bool handle_eip712_filtering(const uint8_t *const apdu_buf);
|
||||
void handle_eip712_return_code(bool success);
|
||||
|
||||
#endif // HAVE_EIP712_FULL_SUPPORT
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "utils.h" // u64_from_BE
|
||||
#include "apdu_constants.h" // APDU response codes
|
||||
#include "typed_data.h"
|
||||
#include "commands_712.h"
|
||||
|
||||
static s_field_hashing *fh = NULL;
|
||||
|
||||
@@ -206,9 +207,7 @@ bool field_hash(const uint8_t *data,
|
||||
apdu_response_code = APDU_RESPONSE_INVALID_DATA;
|
||||
return false;
|
||||
}
|
||||
G_io_apdu_buffer[0] = 0x90;
|
||||
G_io_apdu_buffer[1] = 0x00;
|
||||
io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2);
|
||||
handle_eip712_return_code(true);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "path.h" // path_get_root_type
|
||||
#include "apdu_constants.h" // APDU response codes
|
||||
#include "typed_data.h"
|
||||
#include "commands_712.h"
|
||||
|
||||
|
||||
static t_ui_context *ui_ctx = NULL;
|
||||
@@ -140,10 +141,7 @@ void ui_712_next_field(void)
|
||||
{
|
||||
if (!ui_ctx->end_reached)
|
||||
{
|
||||
// reply to previous APDU
|
||||
G_io_apdu_buffer[0] = 0x90;
|
||||
G_io_apdu_buffer[1] = 0x00;
|
||||
io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2);
|
||||
handle_eip712_return_code(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user