Merge pull request #364 from LedgerHQ/apr/bugfix/eip712_latency_weakness

Fix potential crash with slow APDU transport
This commit is contained in:
apaillier-ledger
2022-11-09 16:13:35 +01:00
committed by GitHub
3 changed files with 8 additions and 2 deletions

View File

@@ -209,7 +209,7 @@ jobs:
cd tests/ragger
python3 -m venv ./venv
. ./venv/bin/activate
pip3 install --extra-index-url https://test.pypi.org/simple/ -r requirements.txt speculos
pip3 install --extra-index-url https://test.pypi.org/simple/ -r requirements.txt
# Used for the cache key
echo "py_deps=$(pip freeze | md5sum | cut -d' ' -f1)" >> $GITHUB_ENV
@@ -275,4 +275,4 @@ jobs:
run: |
cd tests/ragger
. ./venv/bin/activate
pytest --path ./elfs --model ${{ matrix.model }}
pytest --path ./elfs --model ${{ matrix.model }} -s -v

View File

@@ -16,6 +16,10 @@ static void dummy_cb(void) {
ux_flow_prev();
ui_pos = UI_712_POS_REVIEW;
}
} else {
// temporarily disable button clicks, they will be re-enabled as soon as new data
// is received and the page is redrawn with ux_flow_init()
G_ux.stack[0].button_push_callback = NULL;
}
}

View File

@@ -7,6 +7,7 @@ from ethereum_client.setting import SettingType, SettingImpl
from ethereum_client.eip712 import EIP712FieldType
from ethereum_client.response_parser import EthereumRespParser
import signal
import time
class EthereumClient:
@@ -92,6 +93,7 @@ class EthereumClient:
def eip712_sign_new(self, bip32):
with self._send(self._cmd_builder.eip712_sign_new(bip32)):
time.sleep(0.5) # tight on timing, needed by the CI otherwise might fail sometimes
if not self._settings[SettingType.VERBOSE_EIP712].value and \
not self._eip712_filtering: # need to skip the message hash
self._client.right_click()