From 2811917658dc0b00a00ed637184d9e3990bb4dde Mon Sep 17 00:00:00 2001 From: Jorge Martins Date: Fri, 15 Jul 2022 12:33:19 +0200 Subject: [PATCH] Mark pointer to databuffer/workbuffer as const --- src/apdu_constants.h | 26 +++++++++---------- src/eth_plugin_handler.c | 6 +++-- src/eth_plugin_handler.h | 4 ++- src/main.c | 2 +- src/shared_context.h | 2 +- src/utils.c | 2 +- src/utils.h | 2 +- src_common/ethUstream.c | 2 +- src_common/ethUstream.h | 4 +-- .../getEth2PublicKey/cmd_getEth2PublicKey.c | 2 +- src_features/getPublicKey/cmd_getPublicKey.c | 2 +- .../cmd_performPrivacyOperation.c | 2 +- .../cmd_provideTokenInfo.c | 2 +- .../cmd_provideNFTInfo.c | 2 +- .../cmd_setEth2WithdrawalIndex.c | 2 +- .../setExternalPlugin/cmd_setExternalPlugin.c | 2 +- src_features/setPlugin/cmd_setPlugin.c | 4 +-- src_features/signMessage/cmd_signMessage.c | 2 +- .../signMessageEIP712/cmd_signMessage712.c | 2 +- src_features/signTx/cmd_signTx.c | 2 +- .../cmd_stark_getPublicKey.c | 2 +- .../cmd_stark_provideQuantum.c | 4 +-- .../stark_unsafe_sign/cmd_stark_unsafe_sign.c | 2 +- 23 files changed, 43 insertions(+), 39 deletions(-) diff --git a/src/apdu_constants.h b/src/apdu_constants.h index 9ef49d9..41d0207 100644 --- a/src/apdu_constants.h +++ b/src/apdu_constants.h @@ -60,13 +60,13 @@ void handleGetPublicKey(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleProvideErc20TokenInformation(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); @@ -78,46 +78,46 @@ void handleProvideNFTInformation(uint8_t p1, unsigned int *tx); void handleSign(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleGetAppConfiguration(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleSignPersonalMessage(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleSignEIP712Message(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleSetExternalPlugin(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleSetPlugin(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handlePerformPrivacyOperation(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); @@ -126,7 +126,7 @@ void handlePerformPrivacyOperation(uint8_t p1, void handleGetEth2PublicKey(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); @@ -143,7 +143,7 @@ void handleSetEth2WinthdrawalIndex(uint8_t p1, void handleStarkwareGetPublicKey(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); @@ -155,13 +155,13 @@ void handleStarkwareSignMessage(uint8_t p1, unsigned int *tx); void handleStarkwareProvideQuantum(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); void handleStarkwareUnsafeSign(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx); diff --git a/src/eth_plugin_handler.c b/src/eth_plugin_handler.c index f1944ef..e5187ca 100644 --- a/src/eth_plugin_handler.c +++ b/src/eth_plugin_handler.c @@ -5,7 +5,9 @@ #include "network.h" #include "ethUtils.h" -void eth_plugin_prepare_init(ethPluginInitContract_t *init, uint8_t *selector, uint32_t dataSize) { +void eth_plugin_prepare_init(ethPluginInitContract_t *init, + const uint8_t *selector, + uint32_t dataSize) { memset((uint8_t *) init, 0, sizeof(ethPluginInitContract_t)); init->selector = selector; init->dataSize = dataSize; @@ -111,7 +113,7 @@ static bool eth_plugin_perform_init_old_internal(uint8_t *contractAddress, j++) { if (memcmp(init->selector, (const void *) PIC(selectors[j]), SELECTOR_SIZE) == 0) { if ((INTERNAL_ETH_PLUGINS[i].availableCheck == NULL) || - ((PluginAvailableCheck) PIC(INTERNAL_ETH_PLUGINS[i].availableCheck)) ()) { + ((PluginAvailableCheck) PIC(INTERNAL_ETH_PLUGINS[i].availableCheck))()) { strlcpy(dataContext.tokenContext.pluginName, INTERNAL_ETH_PLUGINS[i].alias, PLUGIN_ID_LENGTH); diff --git a/src/eth_plugin_handler.h b/src/eth_plugin_handler.h index ba6ffee..28b13fb 100644 --- a/src/eth_plugin_handler.h +++ b/src/eth_plugin_handler.h @@ -6,7 +6,9 @@ #define NO_EXTRA_INFO(ctx, idx) \ (allzeroes(&(ctx.transactionContext.extraInfo[idx]), sizeof(extraInfo_t))) -void eth_plugin_prepare_init(ethPluginInitContract_t *init, uint8_t *selector, uint32_t dataSize); +void eth_plugin_prepare_init(ethPluginInitContract_t *init, + const uint8_t *selector, + uint32_t dataSize); void eth_plugin_prepare_provide_parameter(ethPluginProvideParameter_t *provideParameter, uint8_t *parameter, uint32_t parameterOffset); diff --git a/src/main.c b/src/main.c index d3be1c9..b93a70a 100644 --- a/src/main.c +++ b/src/main.c @@ -480,7 +480,7 @@ void handleGetWalletId(volatile unsigned int *tx) { #endif // HAVE_WALLET_ID_SDK -uint8_t *parseBip32(const uint8_t *dataBuffer, uint16_t *dataLength, bip32_path_t *bip32) { +const uint8_t *parseBip32(const uint8_t *dataBuffer, uint16_t *dataLength, bip32_path_t *bip32) { if (*dataLength < 1) { PRINTF("Invalid data\n"); return NULL; diff --git a/src/shared_context.h b/src/shared_context.h index 7447a10..424c0fa 100644 --- a/src/shared_context.h +++ b/src/shared_context.h @@ -219,6 +219,6 @@ extern uint32_t eth2WithdrawalIndex; #endif void reset_app_context(void); -uint8_t *parseBip32(uint8_t *, uint16_t *, bip32_path_t *); +const uint8_t *parseBip32(const uint8_t *, uint16_t *, bip32_path_t *); #endif // _SHARED_CONTEXT_H_ diff --git a/src/utils.c b/src/utils.c index e6d60e1..7a5627f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -54,7 +54,7 @@ int local_strchr(char *string, char ch) { return -1; } -uint64_t u64_from_BE(uint8_t *in, uint8_t size) { +uint64_t u64_from_BE(const uint8_t *in, uint8_t size) { uint8_t i = 0; uint64_t res = 0; diff --git a/src/utils.h b/src/utils.h index 5afabd4..bd52398 100644 --- a/src/utils.h +++ b/src/utils.h @@ -28,7 +28,7 @@ void convertUint256BE(uint8_t* data, uint32_t length, uint256_t* target); int local_strchr(char* string, char ch); -uint64_t u64_from_BE(uint8_t* in, uint8_t size); +uint64_t u64_from_BE(const uint8_t* in, uint8_t size); bool uint256_to_decimal(const uint8_t* value, size_t value_len, char* out, size_t out_len); diff --git a/src_common/ethUstream.c b/src_common/ethUstream.c index ccfd823..81e607d 100644 --- a/src_common/ethUstream.c +++ b/src_common/ethUstream.c @@ -592,7 +592,7 @@ static parserStatus_e processTxInternal(txContext_t *context) { } parserStatus_e processTx(txContext_t *context, - uint8_t *buffer, + const uint8_t *buffer, uint32_t length, uint32_t processingFlags) { parserStatus_e result; diff --git a/src_common/ethUstream.h b/src_common/ethUstream.h index f63dd65..4229d40 100644 --- a/src_common/ethUstream.h +++ b/src_common/ethUstream.h @@ -142,7 +142,7 @@ typedef struct txContext_t { uint32_t dataLength; uint8_t rlpBuffer[5]; uint32_t rlpBufferPos; - uint8_t *workBuffer; + const uint8_t *workBuffer; uint32_t commandLength; uint32_t processingFlags; ustreamProcess_t customProcessor; @@ -157,7 +157,7 @@ void initTx(txContext_t *context, ustreamProcess_t customProcessor, void *extra); parserStatus_e processTx(txContext_t *context, - uint8_t *buffer, + const uint8_t *buffer, uint32_t length, uint32_t processingFlags); parserStatus_e continueTx(txContext_t *context); diff --git a/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c b/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c index d94484d..cccd0eb 100644 --- a/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c +++ b/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c @@ -42,7 +42,7 @@ void getEth2PublicKey(uint32_t *bip32Path, uint8_t bip32PathLength, uint8_t *out void handleGetEth2PublicKey(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/getPublicKey/cmd_getPublicKey.c b/src_features/getPublicKey/cmd_getPublicKey.c index bba66a4..244dbb7 100644 --- a/src_features/getPublicKey/cmd_getPublicKey.c +++ b/src_features/getPublicKey/cmd_getPublicKey.c @@ -7,7 +7,7 @@ void handleGetPublicKey(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c b/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c index 824ad2f..c41b122 100644 --- a/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c +++ b/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c @@ -25,7 +25,7 @@ void decodeScalar(const uint8_t *scalarIn, uint8_t *scalarOut) { void handlePerformPrivacyOperation(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c b/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c index 4f09b1f..325cbb9 100644 --- a/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c +++ b/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c @@ -101,7 +101,7 @@ void handleProvideErc20TokenInformation(uint8_t p1, void handleProvideErc20TokenInformation(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, __attribute__((unused)) unsigned int *tx) { diff --git a/src_features/provideNFTInformation/cmd_provideNFTInfo.c b/src_features/provideNFTInformation/cmd_provideNFTInfo.c index e7fea89..6f53b80 100644 --- a/src_features/provideNFTInformation/cmd_provideNFTInfo.c +++ b/src_features/provideNFTInformation/cmd_provideNFTInfo.c @@ -53,7 +53,7 @@ typedef bool verificationAlgo(const cx_ecfp_public_key_t *, void handleProvideNFTInformation(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/setEth2WithdrawalIndex/cmd_setEth2WithdrawalIndex.c b/src_features/setEth2WithdrawalIndex/cmd_setEth2WithdrawalIndex.c index d2338ef..a7f6f72 100644 --- a/src_features/setEth2WithdrawalIndex/cmd_setEth2WithdrawalIndex.c +++ b/src_features/setEth2WithdrawalIndex/cmd_setEth2WithdrawalIndex.c @@ -5,7 +5,7 @@ void handleSetEth2WithdrawalIndex(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, __attribute__((unused)) unsigned int *flags, __attribute__((unused)) unsigned int *tx) { diff --git a/src_features/setExternalPlugin/cmd_setExternalPlugin.c b/src_features/setExternalPlugin/cmd_setExternalPlugin.c index 672bfaa..fb66f12 100644 --- a/src_features/setExternalPlugin/cmd_setExternalPlugin.c +++ b/src_features/setExternalPlugin/cmd_setExternalPlugin.c @@ -7,7 +7,7 @@ void handleSetExternalPlugin(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/setPlugin/cmd_setPlugin.c b/src_features/setPlugin/cmd_setPlugin.c index 58ad8bf..68b5e76 100644 --- a/src_features/setPlugin/cmd_setPlugin.c +++ b/src_features/setPlugin/cmd_setPlugin.c @@ -86,7 +86,7 @@ static pluginType_t getPluginType(char *pluginName, uint8_t pluginNameLength) { void handleSetPlugin(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { @@ -248,7 +248,7 @@ void handleSetPlugin(uint8_t p1, hashId, hash, sizeof(hash), - workBuffer + offset, + (unsigned char *) (workBuffer + offset), signatureLen)) { #ifndef HAVE_BYPASS_SIGNATURES PRINTF("Invalid NFT signature\n"); diff --git a/src_features/signMessage/cmd_signMessage.c b/src_features/signMessage/cmd_signMessage.c index 4069087..8389548 100644 --- a/src_features/signMessage/cmd_signMessage.c +++ b/src_features/signMessage/cmd_signMessage.c @@ -113,7 +113,7 @@ static void feed_value_str(const uint8_t *const data, size_t length, bool is_asc void handleSignPersonalMessage(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/signMessageEIP712/cmd_signMessage712.c b/src_features/signMessageEIP712/cmd_signMessage712.c index da0b0db..d12356c 100644 --- a/src_features/signMessageEIP712/cmd_signMessage712.c +++ b/src_features/signMessageEIP712/cmd_signMessage712.c @@ -5,7 +5,7 @@ void handleSignEIP712Message(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/signTx/cmd_signTx.c b/src_features/signTx/cmd_signTx.c index 1ea5d06..f7ca07c 100644 --- a/src_features/signTx/cmd_signTx.c +++ b/src_features/signTx/cmd_signTx.c @@ -6,7 +6,7 @@ void handleSign(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, + const uint8_t *workBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c b/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c index d93cd51..6e9efbf 100644 --- a/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c +++ b/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c @@ -8,7 +8,7 @@ void handleStarkwareGetPublicKey(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, unsigned int *tx) { diff --git a/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c b/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c index 1796fe5..89c68da 100644 --- a/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c +++ b/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c @@ -7,7 +7,7 @@ void handleStarkwareProvideQuantum(uint8_t p1, __attribute__((unused)) uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, __attribute__((unused)) unsigned int *flags, __attribute__((unused)) unsigned int *tx) { @@ -35,7 +35,7 @@ void handleStarkwareProvideQuantum(uint8_t p1, THROW(0x6700); } if (p1 == STARK_QUANTUM_LEGACY) { - addressZero = allzeroes(dataBuffer, 20); + addressZero = allzeroes((void *) dataBuffer, 20); } if ((p1 != STARK_QUANTUM_ETH) && !addressZero) { for (i = 0; i < MAX_ITEMS; i++) { diff --git a/src_features/stark_unsafe_sign/cmd_stark_unsafe_sign.c b/src_features/stark_unsafe_sign/cmd_stark_unsafe_sign.c index 1f057c2..33e3cad 100644 --- a/src_features/stark_unsafe_sign/cmd_stark_unsafe_sign.c +++ b/src_features/stark_unsafe_sign/cmd_stark_unsafe_sign.c @@ -8,7 +8,7 @@ void handleStarkwareUnsafeSign(uint8_t p1, uint8_t p2, - uint8_t *dataBuffer, + const uint8_t *dataBuffer, uint16_t dataLength, unsigned int *flags, __attribute__((unused)) unsigned int *tx) {