From e71dd8dd07ac05d28be10963329228cd1331e489 Mon Sep 17 00:00:00 2001 From: Artem Chepurnoy Date: Tue, 10 Dec 2024 17:09:18 +0200 Subject: [PATCH] fix: Always treat url scheme as case insensitive --- .../kotlin/com/artemchep/keyguard/android/PasskeyUtils.kt | 4 ++-- .../kotlin/com/artemchep/keyguard/common/model/DSecret.kt | 4 ++-- .../keyguard/common/usecase/impl/GetJustDeleteMeByUrlImpl.kt | 4 ++-- .../keyguard/common/usecase/impl/GetJustGetMyDataByUrlImpl.kt | 4 ++-- .../keyguard/common/usecase/impl/WatchtowerSyncerImpl.kt | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/common/src/androidMain/kotlin/com/artemchep/keyguard/android/PasskeyUtils.kt b/common/src/androidMain/kotlin/com/artemchep/keyguard/android/PasskeyUtils.kt index e53e6227..d5a1d5b8 100644 --- a/common/src/androidMain/kotlin/com/artemchep/keyguard/android/PasskeyUtils.kt +++ b/common/src/androidMain/kotlin/com/artemchep/keyguard/android/PasskeyUtils.kt @@ -163,10 +163,10 @@ class PasskeyUtils( packageName: String, ): Unit = runCatching { when { - origin.startsWith("https:") -> + origin.startsWith("https:", ignoreCase = true) -> requireRpMatchesOriginViaHttps(rpId, origin) - origin.startsWith("android:") -> + origin.startsWith("android:", ignoreCase = true) -> requireRpMatchesOriginViaAndroid(rpId, origin, packageName) else -> throw IllegalStateException("Request origin has an unknown scheme.") diff --git a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/model/DSecret.kt b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/model/DSecret.kt index 9d4d25df..365d336a 100644 --- a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/model/DSecret.kt +++ b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/model/DSecret.kt @@ -108,8 +108,8 @@ data class DSecret( val favicon: FaviconUrl? = kotlin.run { val siteUrl = uris .firstOrNull { uri -> - uri.uri.startsWith("http://") || - uri.uri.startsWith("https://") + uri.uri.startsWith("http://", ignoreCase = true) || + uri.uri.startsWith("https://", ignoreCase = true) } ?.uri siteUrl?.let { diff --git a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustDeleteMeByUrlImpl.kt b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustDeleteMeByUrlImpl.kt index 596b0cdb..cbb9427f 100644 --- a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustDeleteMeByUrlImpl.kt +++ b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustDeleteMeByUrlImpl.kt @@ -32,8 +32,8 @@ class GetJustDeleteMeByUrlImpl( } private fun parseHost(url: String) = if ( - url.startsWith("http://") || - url.startsWith("https://") + url.startsWith("http://", ignoreCase = true) || + url.startsWith("https://", ignoreCase = true) ) { val parsedUri = kotlin.runCatching { Url(url) diff --git a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustGetMyDataByUrlImpl.kt b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustGetMyDataByUrlImpl.kt index 3548bb40..bb87f566 100644 --- a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustGetMyDataByUrlImpl.kt +++ b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/GetJustGetMyDataByUrlImpl.kt @@ -32,8 +32,8 @@ class GetJustGetMyDataByUrlImpl( } private fun parseHost(url: String) = if ( - url.startsWith("http://") || - url.startsWith("https://") + url.startsWith("http://", ignoreCase = true) || + url.startsWith("https://", ignoreCase = true) ) { val parsedUri = kotlin.runCatching { Url(url) diff --git a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/WatchtowerSyncerImpl.kt b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/WatchtowerSyncerImpl.kt index c6472bbf..a3f7662b 100644 --- a/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/WatchtowerSyncerImpl.kt +++ b/common/src/commonMain/kotlin/com/artemchep/keyguard/common/usecase/impl/WatchtowerSyncerImpl.kt @@ -1002,8 +1002,8 @@ class WatchtowerDuplicateUris( } private fun parseHost(uri: DSecret.Uri) = if ( - uri.uri.startsWith("http://") || - uri.uri.startsWith("https://") + uri.uri.startsWith("http://", ignoreCase = true) || + uri.uri.startsWith("https://", ignoreCase = true) ) { val parsedUri = kotlin.runCatching { Url(uri.uri)