8
0

improve certificate parsing logic

This commit is contained in:
andre 2026-02-18 10:54:15 +01:00
parent 2b027321a7
commit fa8bcd543e

View File

@ -63,7 +63,16 @@ class WebIdMetaPluginModule(
if (input.startsWith("sha256/") || input.startsWith("sha1/")) return input 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 val base64Cert = justValue
.replace("-----BEGIN CERTIFICATE-----", "") .replace("-----BEGIN CERTIFICATE-----", "")
@ -72,6 +81,8 @@ class WebIdMetaPluginModule(
require(base64Cert.isNotEmpty()) { "Certificate input is empty after normalization" } require(base64Cert.isNotEmpty()) { "Certificate input is empty after normalization" }
Log.d("WebIdMetaPlugin", "Base64 certificate: $base64Cert")
val certBytes = try { val certBytes = try {
Base64.decode(base64Cert, Base64.DEFAULT) Base64.decode(base64Cert, Base64.DEFAULT)
} catch (e: IllegalArgumentException) { } catch (e: IllegalArgumentException) {