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

23 lines
700 B

from trezor import wire
from trezor.crypto.curve import ed25519
from trezor.messages.Success import Success
from apps.common.signverify import require_confirm_verify_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 require_confirm_verify_message(
ctx, address, "Verify Lisk message", msg.message
)
return Success(message="Message verified")