mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-02 12:52:34 +00:00
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from trezor.messages import WebAuthnRemoveResidentCredential, Success
|
|
from trezor.wire import Context
|
|
|
|
|
|
async def remove_resident_credential(
|
|
ctx: Context, msg: WebAuthnRemoveResidentCredential
|
|
) -> Success:
|
|
import storage.device
|
|
import storage.resident_credentials
|
|
from trezor import wire
|
|
from trezor.messages import Success
|
|
from trezor.ui.layouts.fido import confirm_fido
|
|
from .resident_credentials import get_resident_credential
|
|
|
|
if not storage.device.is_initialized():
|
|
raise wire.NotInitialized("Device is not initialized")
|
|
if msg.index is None:
|
|
raise wire.ProcessError("Missing credential index parameter.")
|
|
|
|
cred = get_resident_credential(msg.index)
|
|
if cred is None:
|
|
raise wire.ProcessError("Invalid credential index.")
|
|
|
|
await confirm_fido(
|
|
ctx,
|
|
"Remove credential",
|
|
cred.app_name(),
|
|
cred.icon_name(),
|
|
[cred.account_name()],
|
|
)
|
|
|
|
assert cred.index is not None
|
|
storage.resident_credentials.delete(cred.index)
|
|
return Success(message="Credential removed")
|