diff --git a/app/src/main/java/com/kunzisoft/keepass/credentialprovider/passkey/util/PasskeyHelper.kt b/app/src/main/java/com/kunzisoft/keepass/credentialprovider/passkey/util/PasskeyHelper.kt index 27965bed1..66020cc42 100644 --- a/app/src/main/java/com/kunzisoft/keepass/credentialprovider/passkey/util/PasskeyHelper.kt +++ b/app/src/main/java/com/kunzisoft/keepass/credentialprovider/passkey/util/PasskeyHelper.kt @@ -579,14 +579,12 @@ object PasskeyHelper { return if (appToCheck.verified) { usageParameters.clientDataResponse } else { - appToCheck.checkAppOrigin(appOrigin)?.let { origin -> - // Origin checked by Android app signature - ClientDataBuildResponse( - type = ClientDataBuildResponse.Type.GET, - challenge = usageParameters.publicKeyCredentialRequestOptions.challenge, - origin = origin - ) - } ?: throw SecurityException("Wrong signature for $appToCheck") + // Origin checked by Android app signature + ClientDataBuildResponse( + type = ClientDataBuildResponse.Type.GET, + challenge = usageParameters.publicKeyCredentialRequestOptions.challenge, + origin = appToCheck.checkAppOrigin(appOrigin) + ) } } } \ No newline at end of file diff --git a/database/src/main/java/com/kunzisoft/keepass/model/AppOrigin.kt b/database/src/main/java/com/kunzisoft/keepass/model/AppOrigin.kt index a46ee1a63..a66b0a9dd 100644 --- a/database/src/main/java/com/kunzisoft/keepass/model/AppOrigin.kt +++ b/database/src/main/java/com/kunzisoft/keepass/model/AppOrigin.kt @@ -42,9 +42,9 @@ data class AppOrigin( /** * Verify the app origin by comparing it to the list of android origins, - * return the first verified origin or null if none is found + * return the first verified origin or throw an exception if none is found */ - fun checkAppOrigin(compare: AppOrigin): String? { + fun checkAppOrigin(compare: AppOrigin): String { return androidOrigins.firstOrNull { androidOrigin -> compare.androidOrigins.any { it.packageName == androidOrigin.packageName @@ -55,7 +55,7 @@ data class AppOrigin( packageName = it.packageName, fingerprint = it.fingerprint ).toAndroidOrigin() - } + } ?: throw SecurityException("Wrong signature for ${toName()}") } fun clear() {