From f202422ff1b9a61d1e6da073817c199acf79092c Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 11 May 2023 10:12:01 -0400 Subject: [PATCH] hasValidSignature crashes in some weirdly formed events. --- .../com/vitorpamplona/amethyst/service/model/Event.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt index 8accaaf8a..6747b1f13 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt @@ -1,5 +1,6 @@ package com.vitorpamplona.amethyst.service.model +import android.util.Log import com.google.gson.* import com.google.gson.annotations.SerializedName import com.vitorpamplona.amethyst.model.HexKey @@ -110,11 +111,12 @@ open class Event( } override fun hasValidSignature(): Boolean { - if (!id.contentEquals(generateId())) { - return false + return try { + id.contentEquals(generateId()) && secp256k1.verifySchnorr(Hex.decode(sig), Hex.decode(id), Hex.decode(pubKey)) + } catch (e: Exception) { + Log.e("Event", "Fail checking if event $id has a valid signature", e) + false } - - return secp256k1.verifySchnorr(Hex.decode(sig), Hex.decode(id), Hex.decode(pubKey)) } private fun generateId(): String {