From fa8bcd543e4903ed2bb0e80be8ae1da77fe3f9ec Mon Sep 17 00:00:00 2001 From: andre Date: Wed, 18 Feb 2026 10:54:15 +0100 Subject: [PATCH] improve certificate parsing logic --- .../com/webidmetaplugin/WebIdMetaPluginModule.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/webidmetaplugin/WebIdMetaPluginModule.kt b/android/src/main/java/com/webidmetaplugin/WebIdMetaPluginModule.kt index c8386e4..e818a76 100644 --- a/android/src/main/java/com/webidmetaplugin/WebIdMetaPluginModule.kt +++ b/android/src/main/java/com/webidmetaplugin/WebIdMetaPluginModule.kt @@ -63,7 +63,16 @@ class WebIdMetaPluginModule( if (input.startsWith("sha256/") || input.startsWith("sha1/")) return input - val justValue = input.substringAfter("=", input).trim() + val justValue = + if (input.contains("=")) { + val left = input.substringBefore("=").trim() + val right = input.substringAfter("=").trim() + + val looksLikeEnvKey = left.isNotEmpty() && left.length <= 64 && left.all { it.isLetterOrDigit() || it == '_' } + if (looksLikeEnvKey) right else input + } else { + input + } val base64Cert = justValue .replace("-----BEGIN CERTIFICATE-----", "") @@ -72,6 +81,8 @@ class WebIdMetaPluginModule( require(base64Cert.isNotEmpty()) { "Certificate input is empty after normalization" } + Log.d("WebIdMetaPlugin", "Base64 certificate: $base64Cert") + val certBytes = try { Base64.decode(base64Cert, Base64.DEFAULT) } catch (e: IllegalArgumentException) {