mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-03 05:12:34 +00:00

This is to avoid including app-specific functionality in storage and avoid circular imports. The following policy is now in effect: modules from `storage` namespace must not import from `apps` namespace. In most files, the change only involves changing import paths. A minor refactor was needed in case of webauthn: basic get/set/delete functionality was left in storage.webauthn, and more advanced logic on top of it was moved to apps.webauthn.resident_credentials. A significant refactor was needed for sd_salt, where application (and UI) logic was tightly coupled with the IO code. This is now separated, and storage.sd_salt deals exclusively with the IO side, while the app/UI logic is implemented on top of it in apps.common.sd_salt and apps.management.sd_protect.
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from micropython import const
|
|
|
|
from storage import common
|
|
|
|
if False:
|
|
from typing import Optional
|
|
|
|
|
|
_RESIDENT_CREDENTIAL_START_KEY = const(1)
|
|
|
|
MAX_RESIDENT_CREDENTIALS = const(100)
|
|
|
|
|
|
def get_resident_credential(index: int) -> Optional[bytes]:
|
|
if not (0 <= index < MAX_RESIDENT_CREDENTIALS):
|
|
raise ValueError # invalid credential index
|
|
|
|
return common.get(common.APP_WEBAUTHN, index + _RESIDENT_CREDENTIAL_START_KEY)
|
|
|
|
|
|
def set_resident_credential(index: int, data: bytes) -> None:
|
|
if not (0 <= index < MAX_RESIDENT_CREDENTIALS):
|
|
raise ValueError # invalid credential index
|
|
|
|
common.set(common.APP_WEBAUTHN, index + _RESIDENT_CREDENTIAL_START_KEY, data)
|
|
|
|
|
|
def delete_resident_credential(index: int) -> None:
|
|
if not (0 <= index < MAX_RESIDENT_CREDENTIALS):
|
|
raise ValueError # invalid credential index
|
|
|
|
common.delete(common.APP_WEBAUTHN, index + _RESIDENT_CREDENTIAL_START_KEY)
|
|
|
|
|
|
def delete_all_resident_credentials() -> None:
|
|
for i in range(MAX_RESIDENT_CREDENTIALS):
|
|
common.delete(common.APP_WEBAUTHN, i + _RESIDENT_CREDENTIAL_START_KEY)
|