libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

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:
Mutil/src/main/kotlin/strings.kt | 7+++++++
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() }