commit 0c8f9082a1f34bc187425e990bba061c3d938838
parent 44f2a6c1236f6cb3f557afba572ccc5ae2381b78
Author: MS <ms@taler.net>
Date: Mon, 2 Oct 2023 12:32:57 +0200
Reserve pub. filter.
Checking that the payment subject is a valid
Crockford32 encoding.
Diffstat:
1 file changed, 7 insertions(+), 0 deletions(-)
diff --git a/util/src/main/kotlin/strings.kt b/util/src/main/kotlin/strings.kt
@@ -20,6 +20,7 @@
package tech.libeufin.util
import logger
+import net.taler.wallet.crypto.Base32Crockford
import java.math.BigInteger
import java.util.*
@@ -159,6 +160,12 @@ fun hasWopidPlaceholder(captchaUrl: String): Boolean {
fun extractReservePubFromSubject(rawSubject: String): String? {
val re = "\\b[a-z0-9A-Z]{52}\\b".toRegex()
val result = re.find(rawSubject.replace("[\n]+".toRegex(), "")) ?: return null
+ try {
+ Base32Crockford.decode(result.value)
+ } catch (e: Exception) {
+ logger.debug("Not containing a reserve pub: $rawSubject")
+ return null
+ }
return result.value.uppercase()
}