diff --git a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt index 1520b00..ba9c324 100644 --- a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt +++ b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt @@ -2,30 +2,20 @@ package net.typeblog.lpac_jni import android.util.Patterns -// example address in GSMA SGP.26, some chips use addresses like this -@Suppress("SpellCheckingInspection") -private val invalidDPAddresses = setOf( - "testrootsmds.gsma.com", - "testrootsmds.example.com", -) - data class EuiccConfiguredAddresses( val defaultDPAddress: String, val rootDSAddress: String ) { - val discoverable: Boolean - get() = isValidDefaultDPAddress || isValidRootDSAddress - val isValidDefaultDPAddress: Boolean - get() { - if (defaultDPAddress.isBlank()) return false - return Patterns.DOMAIN_NAME.matcher(defaultDPAddress).matches() - } + get() = isValid(defaultDPAddress) val isValidRootDSAddress: Boolean - get() { - if (rootDSAddress.isBlank()) return false - if (rootDSAddress in invalidDPAddresses) return false - return Patterns.DOMAIN_NAME.matcher(rootDSAddress).matches() - } + get() = isValid(rootDSAddress) || rootDSAddress == "lpa.ds.gsma.com" +} + +private fun isValid(address: String): Boolean { + if (address.isBlank()) return false + if (address.endsWith(".gsma.com")) return false + if (address.endsWith(".example.com")) return false + return Patterns.DOMAIN_NAME.matcher(address).matches() } \ No newline at end of file