mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-15 20:19:23 +00:00
feat(core/sdbackup): pad data for mocked SD card
This commit is contained in:
parent
8415f51a7c
commit
1d8e5068c4
@ -259,6 +259,7 @@ if __debug__:
|
||||
from trezor import io
|
||||
|
||||
sdcard_switcher = io.sdcard_switcher # local_cache_attribute
|
||||
sdcard = io.sdcard # local_cache_attribute
|
||||
if msg.serial_number is None:
|
||||
sdcard_switcher.eject()
|
||||
else:
|
||||
@ -267,11 +268,18 @@ if __debug__:
|
||||
capacity_bytes=msg.capacity_bytes,
|
||||
manuf_id=msg.manuf_ID,
|
||||
)
|
||||
if msg.data_blocks is not None:
|
||||
sdcard = io.sdcard
|
||||
try:
|
||||
sdcard.power_on()
|
||||
for block in msg.data_blocks:
|
||||
sdcard.write(block.number, block.data)
|
||||
assert len(block.data) <= sdcard.BLOCK_SIZE
|
||||
block_buffer = utils.empty_bytearray(sdcard.BLOCK_SIZE)
|
||||
block_buffer.extend(block.data)
|
||||
padding_len = sdcard.BLOCK_SIZE - len(block_buffer)
|
||||
block_buffer.extend(b"\x00" * padding_len)
|
||||
sdcard.write(block.number, block_buffer)
|
||||
except OSError:
|
||||
raise wire.ProcessError("SD card operation failed")
|
||||
finally:
|
||||
sdcard.power_off()
|
||||
|
||||
return Success()
|
||||
|
@ -11,7 +11,7 @@ pytestmark = [pytest.mark.skip_t1, pytest.mark.skip_tr]
|
||||
|
||||
def prepare_data_for_sdcard() -> bytes:
|
||||
# MNEMONIC12 backup block
|
||||
backup_block_str = "54525A4D000000004C616C636F686F6C20776F6D616E206162757365206D75737420647572696E67206D6F6E69746F72206E6F626C652061637475616C206D6978656420747261646520616E676572206169736C654B1118DAD99C3A21E85AC1CBAE3D41F8BA02BE5E6B8422B3225C9DB53C316D8A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
backup_block_str = "54525A4D000000004C616C636F686F6C20776F6D616E206162757365206D75737420647572696E67206D6F6E69746F72206E6F626C652061637475616C206D6978656420747261646520616E676572206169736C654B1118DAD99C3A21E85AC1CBAE3D41F8BA02BE5E6B8422B3225C9DB53C316D8A"
|
||||
return bytes.fromhex(backup_block_str)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user