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

22 lines
708 B

from trezor import wire
from trezor.crypto.curve import ed25519
from trezor.messages import Success
from trezor.ui.layouts import confirm_signverify
from apps.common.signverify import decode_message
from .helpers import get_address_from_public_key
from .sign_message import message_digest
async def 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 confirm_signverify(ctx, "Lisk", decode_message(msg.message), address=address)
return Success(message="Message verified")