You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/core/src/apps/webauthn/list_resident_credentials.py

42 lines
1.3 KiB

from trezor import wire
from trezor.messages.WebAuthnCredential import WebAuthnCredential
from trezor.messages.WebAuthnCredentials import WebAuthnCredentials
from trezor.messages.WebAuthnListResidentCredentials import (
WebAuthnListResidentCredentials,
)
from trezor.ui.text import Text
from apps.common.confirm import require_confirm
from apps.webauthn import resident_credentials
async def list_resident_credentials(
ctx: wire.Context, msg: WebAuthnListResidentCredentials
) -> WebAuthnCredentials:
text = Text("List credentials")
text.normal(
"Do you want to export",
"information about the",
"resident credentials",
"stored on this device?",
)
await require_confirm(ctx, text)
creds = [
WebAuthnCredential(
index=cred.index,
id=cred.id,
rp_id=cred.rp_id,
rp_name=cred.rp_name,
user_id=cred.user_id,
user_name=cred.user_name,
user_display_name=cred.user_display_name,
creation_time=cred.creation_time,
hmac_secret=cred.hmac_secret,
use_sign_count=cred.use_sign_count,
algorithm=cred.algorithm,
curve=cred.curve,
)
for cred in resident_credentials.find_all()
]
return WebAuthnCredentials(creds)