Compare commits
1 commit
6df59833a4
...
09eaf77ffb
Author | SHA1 | Date | |
---|---|---|---|
09eaf77ffb |
1 changed files with 9 additions and 19 deletions
|
@ -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()
|
||||
}
|
Loading…
Add table
Reference in a new issue