From 895c37e1fa2812aba974fbe08b2e592e1fe4a242 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Tue, 19 Jul 2022 11:42:25 +0200 Subject: [PATCH] Change apdu payload length to proper size (8 bits) --- src/apdu_constants.h | 32 +++++++++---------- src/main.c | 2 +- src/shared_context.h | 2 +- .../cmd_getAppConfiguration.c | 2 +- .../getEth2PublicKey/cmd_getEth2PublicKey.c | 2 +- src_features/getPublicKey/cmd_getPublicKey.c | 2 +- .../cmd_performPrivacyOperation.c | 2 +- .../cmd_provideTokenInfo.c | 9 +++--- .../cmd_provideNFTInfo.c | 2 +- .../setExternalPlugin/cmd_setExternalPlugin.c | 4 +-- src_features/setPlugin/cmd_setPlugin.c | 2 +- src_features/signMessage/cmd_signMessage.c | 2 +- src_features/signTx/cmd_signTx.c | 2 +- .../cmd_stark_getPublicKey.c | 2 +- .../cmd_stark_provideQuantum.c | 2 +- src_features/stark_sign/cmd_stark_sign.c | 2 +- .../stark_unsafe_sign/cmd_stark_unsafe_sign.c | 2 +- 17 files changed, 37 insertions(+), 36 deletions(-) diff --git a/src/apdu_constants.h b/src/apdu_constants.h index 1937075..3062674 100644 --- a/src/apdu_constants.h +++ b/src/apdu_constants.h @@ -61,37 +61,37 @@ void handleGetPublicKey(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleProvideErc20TokenInformation(uint8_t p1, uint8_t p2, - const uint8_t *dataBuffer, - uint16_t dataLength, + const uint8_t *workBuffer, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleProvideNFTInformation(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleSign(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleGetAppConfiguration(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleSignPersonalMessage(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleSignEIP712Message(uint8_t p1, @@ -104,21 +104,21 @@ void handleSignEIP712Message(uint8_t p1, void handleSetExternalPlugin(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleSetPlugin(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handlePerformPrivacyOperation(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); @@ -127,13 +127,13 @@ void handlePerformPrivacyOperation(uint8_t p1, void handleGetEth2PublicKey(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleSetEth2WinthdrawalIndex(uint8_t p1, uint8_t p2, uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); @@ -144,25 +144,25 @@ void handleSetEth2WinthdrawalIndex(uint8_t p1, void handleStarkwareGetPublicKey(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleStarkwareSignMessage(uint8_t p1, uint8_t p2, uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleStarkwareProvideQuantum(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); void handleStarkwareUnsafeSign(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx); diff --git a/src/main.c b/src/main.c index b93a70a..d34d5c1 100644 --- a/src/main.c +++ b/src/main.c @@ -480,7 +480,7 @@ void handleGetWalletId(volatile unsigned int *tx) { #endif // HAVE_WALLET_ID_SDK -const uint8_t *parseBip32(const uint8_t *dataBuffer, uint16_t *dataLength, bip32_path_t *bip32) { +const uint8_t *parseBip32(const uint8_t *dataBuffer, uint8_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 424c0fa..4dc68f7 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); -const uint8_t *parseBip32(const uint8_t *, uint16_t *, bip32_path_t *); +const uint8_t *parseBip32(const uint8_t *, uint8_t *, bip32_path_t *); #endif // _SHARED_CONTEXT_H_ diff --git a/src_features/getAppConfiguration/cmd_getAppConfiguration.c b/src_features/getAppConfiguration/cmd_getAppConfiguration.c index e9e09fc..e850774 100644 --- a/src_features/getAppConfiguration/cmd_getAppConfiguration.c +++ b/src_features/getAppConfiguration/cmd_getAppConfiguration.c @@ -6,7 +6,7 @@ void handleGetAppConfiguration(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(p1); diff --git a/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c b/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c index cccd0eb..32964f3 100644 --- a/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c +++ b/src_features/getEth2PublicKey/cmd_getEth2PublicKey.c @@ -43,7 +43,7 @@ void getEth2PublicKey(uint32_t *bip32Path, uint8_t bip32PathLength, uint8_t *out void handleGetEth2PublicKey(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { bip32_path_t bip32; diff --git a/src_features/getPublicKey/cmd_getPublicKey.c b/src_features/getPublicKey/cmd_getPublicKey.c index 244dbb7..339f0ce 100644 --- a/src_features/getPublicKey/cmd_getPublicKey.c +++ b/src_features/getPublicKey/cmd_getPublicKey.c @@ -8,7 +8,7 @@ void handleGetPublicKey(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { uint8_t privateKeyData[INT256_LENGTH]; diff --git a/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c b/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c index c41b122..bd5933b 100644 --- a/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c +++ b/src_features/performPrivacyOperation/cmd_performPrivacyOperation.c @@ -26,7 +26,7 @@ void decodeScalar(const uint8_t *scalarIn, uint8_t *scalarOut) { void handlePerformPrivacyOperation(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { uint8_t privateKeyData[INT256_LENGTH]; diff --git a/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c b/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c index 325cbb9..fa1bd19 100644 --- a/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c +++ b/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c @@ -7,8 +7,8 @@ void handleProvideErc20TokenInformation(uint8_t p1, uint8_t p2, - uint8_t *workBuffer, - uint16_t dataLength, + const uint8_t *workBuffer, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(p1); @@ -102,12 +102,13 @@ void handleProvideErc20TokenInformation(uint8_t p1, void handleProvideErc20TokenInformation(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, - __attribute__((unused)) unsigned int *tx) { + unsigned int *tx) { UNUSED(p1); UNUSED(p2); UNUSED(flags); + UNUSED(tx); uint32_t offset = 0; uint8_t tickerLength; uint32_t chainId; diff --git a/src_features/provideNFTInformation/cmd_provideNFTInfo.c b/src_features/provideNFTInformation/cmd_provideNFTInfo.c index 8d373ba..f8b90c0 100644 --- a/src_features/provideNFTInformation/cmd_provideNFTInfo.c +++ b/src_features/provideNFTInformation/cmd_provideNFTInfo.c @@ -54,7 +54,7 @@ typedef bool verificationAlgo(const cx_ecfp_public_key_t *, void handleProvideNFTInformation(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(p1); diff --git a/src_features/setExternalPlugin/cmd_setExternalPlugin.c b/src_features/setExternalPlugin/cmd_setExternalPlugin.c index fb66f12..b5ea1ac 100644 --- a/src_features/setExternalPlugin/cmd_setExternalPlugin.c +++ b/src_features/setExternalPlugin/cmd_setExternalPlugin.c @@ -8,7 +8,7 @@ void handleSetExternalPlugin(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(p1); @@ -90,4 +90,4 @@ void handleSetExternalPlugin(uint8_t p1, G_io_apdu_buffer[(*tx)++] = 0x90; G_io_apdu_buffer[(*tx)++] = 0x00; -} \ No newline at end of file +} diff --git a/src_features/setPlugin/cmd_setPlugin.c b/src_features/setPlugin/cmd_setPlugin.c index 68b5e76..850eed5 100644 --- a/src_features/setPlugin/cmd_setPlugin.c +++ b/src_features/setPlugin/cmd_setPlugin.c @@ -87,7 +87,7 @@ static pluginType_t getPluginType(char *pluginName, uint8_t pluginNameLength) { void handleSetPlugin(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(p1); diff --git a/src_features/signMessage/cmd_signMessage.c b/src_features/signMessage/cmd_signMessage.c index 8389548..c344f92 100644 --- a/src_features/signMessage/cmd_signMessage.c +++ b/src_features/signMessage/cmd_signMessage.c @@ -114,7 +114,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, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(tx); diff --git a/src_features/signTx/cmd_signTx.c b/src_features/signTx/cmd_signTx.c index f7ca07c..e14751a 100644 --- a/src_features/signTx/cmd_signTx.c +++ b/src_features/signTx/cmd_signTx.c @@ -7,7 +7,7 @@ void handleSign(uint8_t p1, uint8_t p2, const uint8_t *workBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { UNUSED(tx); diff --git a/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c b/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c index 6e9efbf..4ec975c 100644 --- a/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c +++ b/src_features/stark_getPublicKey/cmd_stark_getPublicKey.c @@ -9,7 +9,7 @@ void handleStarkwareGetPublicKey(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, unsigned int *tx) { bip32_path_t bip32; diff --git a/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c b/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c index 89c68da..5f91945 100644 --- a/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c +++ b/src_features/stark_provideQuantum/cmd_stark_provideQuantum.c @@ -8,7 +8,7 @@ void handleStarkwareProvideQuantum(uint8_t p1, __attribute__((unused)) uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, __attribute__((unused)) unsigned int *flags, __attribute__((unused)) unsigned int *tx) { size_t i = 0; diff --git a/src_features/stark_sign/cmd_stark_sign.c b/src_features/stark_sign/cmd_stark_sign.c index 6d08635..2021176 100644 --- a/src_features/stark_sign/cmd_stark_sign.c +++ b/src_features/stark_sign/cmd_stark_sign.c @@ -15,7 +15,7 @@ void handleStarkwareSignMessage(uint8_t p1, uint8_t p2, uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, __attribute__((unused)) unsigned int *tx) { uint8_t privateKeyData[INT256_LENGTH]; 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 33e3cad..6067648 100644 --- a/src_features/stark_unsafe_sign/cmd_stark_unsafe_sign.c +++ b/src_features/stark_unsafe_sign/cmd_stark_unsafe_sign.c @@ -9,7 +9,7 @@ void handleStarkwareUnsafeSign(uint8_t p1, uint8_t p2, const uint8_t *dataBuffer, - uint16_t dataLength, + uint8_t dataLength, unsigned int *flags, __attribute__((unused)) unsigned int *tx) { uint8_t privateKeyData[INT256_LENGTH];