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/src/apps/lisk/verify_message.py

21 lines
672 B

from trezor import wire
from trezor.crypto.curve import ed25519
from trezor.messages.Success import Success
from .helpers import get_address_from_public_key
from .sign_message import message_digest
from apps.wallet.verify_message import require_confirm_verify_message
async def lisk_verify_message(ctx, msg):
digest = message_digest(msg.message)
verified = ed25519.verify(msg.public_key, msg.signature, digest)
if not verified:
raise wire.ProcessError('Invalid signature')
address = get_address_from_public_key(msg.public_key)
await require_confirm_verify_message(ctx, address, msg.message)
return Success(message='Message verified')