From 7efb86180425d3f576c7f8bdd9ef925def013fb5 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Fri, 4 Aug 2023 15:00:48 +0200 Subject: [PATCH] Removed chain ID restrictions from SET_PLUGIN and PROVIDE_NFT_INFORMATION apdus --- .../provideNFTInformation/cmd_provideNFTInfo.c | 10 +++++----- src_features/setPlugin/cmd_setPlugin.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src_features/provideNFTInformation/cmd_provideNFTInfo.c b/src_features/provideNFTInformation/cmd_provideNFTInfo.c index 3030095..1971134 100644 --- a/src_features/provideNFTInformation/cmd_provideNFTInfo.c +++ b/src_features/provideNFTInformation/cmd_provideNFTInfo.c @@ -140,13 +140,13 @@ void handleProvideNFTInformation(uint8_t p1, PRINTF("Address: %.*H\n", ADDRESS_LENGTH, workBuffer + offset); offset += ADDRESS_LENGTH; - uint64_t chainId = u64_from_BE(workBuffer + offset, CHAIN_ID_SIZE); + uint64_t chain_id = u64_from_BE(workBuffer + offset, CHAIN_ID_SIZE); // this prints raw data, so to have a more meaningful print, display // the buffer before the endianness swap - PRINTF("ChainID: %.*H\n", sizeof(chainId), (workBuffer + offset)); - if ((chainConfig->chainId != 0) && (chainConfig->chainId != chainId)) { - PRINTF("Chain ID token mismatch\n"); - THROW(0x6A80); + PRINTF("ChainID: %.*H\n", sizeof(chain_id), (workBuffer + offset)); + if (!chain_is_ethereum_compatible(&chain_id)) { + PRINTF("Unsupported chain ID!\n"); + THROW(APDU_RESPONSE_INVALID_DATA); } offset += CHAIN_ID_SIZE; diff --git a/src_features/setPlugin/cmd_setPlugin.c b/src_features/setPlugin/cmd_setPlugin.c index 8cdb806..d4ca3c1 100644 --- a/src_features/setPlugin/cmd_setPlugin.c +++ b/src_features/setPlugin/cmd_setPlugin.c @@ -169,13 +169,13 @@ void handleSetPlugin(uint8_t p1, PRINTF("Selector: %.*H\n", SELECTOR_SIZE, tokenContext->methodSelector); offset += SELECTOR_SIZE; - uint64_t chainId = u64_from_BE(workBuffer + offset, CHAIN_ID_SIZE); + uint64_t chain_id = u64_from_BE(workBuffer + offset, CHAIN_ID_SIZE); // this prints raw data, so to have a more meaningful print, display // the buffer before the endianness swap - PRINTF("ChainID: %.*H\n", sizeof(chainId), (workBuffer + offset)); - if ((chainConfig->chainId != 0) && (chainConfig->chainId != chainId)) { - PRINTF("Chain ID token mismatch\n"); - THROW(0x6A80); + PRINTF("ChainID: %.*H\n", sizeof(chain_id), (workBuffer + offset)); + if (!chain_is_ethereum_compatible(&chain_id)) { + PRINTF("Unsupported chain ID!\n"); + THROW(APDU_RESPONSE_INVALID_DATA); } offset += CHAIN_ID_SIZE;