GlitterWare / Passy

Offline password manager with cross-platform synchronization
https://glitterware.github.io/Passy/
GNU General Public License v3.0
142 stars 22 forks source link

[Bug]: after activating argon2 derivation, i can no longer modify my passwords #80

Open umlaeute opened 11 months ago

umlaeute commented 11 months ago

Bug description

today i've upgraded to passy-1.7.0 on both my mobile (f-droid) and my laptop (flatpak). i've activated "Argon2" key derivation, and ran a synchronization between the two devices, which worked nicely.

after that, I've changed one of my password entries on the laptop (it previously only had a 2FA setup, and an empty password; i've now also added a proper password), which resulted in:

at some point, passy would simply crash (see stderr below).

the "several seconds" where the progress bar is displayed, range from ~3 seconds to something that feels like a minute.

Expected outcome

i expected that the new password would be added to the entry.

Steps to reproduce

see the "Bug description"

Error log

$ flatpak run io.github.glitterware.Passy

(passy:2): Gdk-CRITICAL **: 18:43:00.126: gdk_window_get_state: assertion 'GDK_IS_WINDOW (window)' failed
flutter: FileSystemException: Cannot open file, path = '/home/<<<USER>>>/Documents/Passy/accounts/<<<USER>>>/favorites.enc' (OS Error: Too many open files, errno = 24)
flutter: #0      _File.throwIfError (dart:io/file_impl.dart:675)
flutter: #1      _File.openSync (dart:io/file_impl.dart:490)
flutter: #2      _File.readAsBytesSync (dart:io/file_impl.dart:574)
flutter: #3      _File.readAsStringSync (dart:io/file_impl.dart:624)
flutter: #4      EncryptedJsonFile.reloadSync (package:passy/passy_data/encrypted_json_file.dart:54)
flutter: #5      LoadedAccount.reloadFavoritesSync (package:passy/passy_data/loaded_account.dart:880)
flutter: #6      _PasswordScreen.build (package:passy/screens/password_screen.dart:155)
flutter: #7      StatefulElement.build (package:flutter/src/widgets/framework.dart:5409)
flutter: #8      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5297)
flutter: #9      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5462)
flutter: #10     Element.rebuild (package:flutter/src/widgets/framework.dart:5016)
flutter: #11     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2779)
flutter: #12     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:916)
flutter: #13     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:360)
flutter: #14     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297)
flutter: #15     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227)
flutter: #16     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1085)
flutter: #17     _invoke (dart:ui/hooks.dart:170)
flutter: #18     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:401)
flutter: #19     _drawFrame (dart:ui/hooks.dart:140)

App version

v1.7.0 - Better Synchronization

Submission checklist

umlaeute commented 11 months ago

notes:

so i assume the problem is specific to the flatpak version of passy

umlaeute commented 11 months ago

needless to say, that i would prefer very much if i could modify my entries on my laptop which greybeards like me find more convenient to type stuff into than swishphones...

GleammerRay commented 11 months ago

Hello @umlaeute !

I am happy to hear that the Android version works fine for you.

Regarding the flatpak package, I fail to understand why that happened. Can you try creating a new account using Passy flatpak (it will be Argon2 by default) and adding a password? It most probably is a flatpak issue, but as it doesn't seem to occur on my end I need to verify that.

Edit 2:

When it comes to the lock screen, do not worry, I am planning to move it to a different layer to prevent interference with other app elements.

GleammerRay commented 8 months ago

Hello again @umlaeute !

Once the flatpak version upgrades (might take a week or two for the build to cache), can you confirm if this is still a problem? I have changed the way unlock screen works for Passy v1.8.0. Instead of being an actual route, it acts as an overlay on top of the entire application to increase both security and app stability (allows Flutter navigation to continue working as expected while locked).

I hope that we can find a way to provide convenience on your end.