Coder Social home page Coder Social logo

Comments (8)

hgkamath avatar hgkamath commented on May 27, 2024 3

Nice.

As a one time test I was able to save a kdbx from android/Authpass, and import into windows/passy.

Steps to go from Android/Authpass to Windows/Passy :

  • Android/Authpass
    • Open hamburger menu on top right
    • Click on menu item that is the authpass's currently opened 'file' , which is a bit hard to notice as it is listed/identified by its name, which by default called PersonalPasswords.
    • Save the kdbx to a folder
  • Transfer the kdbx to bluetooth-paired windows.
    • On windows, goto settings/bluetooth and choose to send/receive bluetooth file
    • On android, use a file manager to share the kdbx file to the bluetooth paired windows pc
    • On windows, save the received kdbx file in a temp location.
  • Windows/passy
    • Manual-install : Download the portable-zip for v1.7 from git-releases and extract to suitable location folder
    • Start passy
    • Create account
    • Make a app-password
    • Keep default configurations
    • Click on settings icon, goto import, import the kdbx, enter the authpass kdbx master password
    • If all goes well import succeeds , entries visible in passwords section of passy which has been populated.

A full password list check was done comparing Android/authpass list with windows/passy list.
comments: no entry was lost. there were a few extraneous empty entries, and also a few of extra resurrected entries. For some sampled entries that were viewed, all fields were present

On windows, its also beneficial to make installer manifests for chocolatey and scoop that makes installing/updating on windows easier. I use scoop for apps such as these that don't require tight OS integration (as needed by daemons/drivers).

I also installed passy-1.7 on my android doing apk download from a git-releases, as the F-droid-repo is still on 1.6.
In android-settngs/apps/app-list-info, The space consumed by passy is 75Mb on Linux, while that of Authpass is 60Mb, not too much bigger, seems reasonable.

Passy password-manager seems promising. It may indeed be that it is ready for me to make a full switch-over and setup up some sort of synchronization.
but, I'll wait for a online-documentation overhaul/update, as well as creation of few online youtube tutorial videos.
Even though one might say that passy interface is obvious enough for savvy techy users.
Documentation, tutorials, FAQs and video-howtos may be important for non-tech-savvy family members.

I can see a full migration happening soon.
The main reason I am considering is because, it seems like authpass development seems less active, only a few commits every few months. The author might have considered it as feature complete. There are bugs. and interface inconveniences can be worked-around.

Thanks very much for your contributions to a password manager. A lot of people in the world need a trusted open-source password manager.

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

Hello @hgkamath!
Thanks a lot for your gratitude.

Is there a proper specification of the fields (column titles) that go in the csv format.

For imports, no, as during the process user simply has to select values from their CSV file to match fields appropriate to the type of their import.

As per Passy's own, CSV-like account database format, there is no proper specification, but if you check on the LoadedAccount class at https://github.com/GlitterWare/Passy/blob/main/lib/passy_data/loaded_account.dart, then if you can see the types of final fields of said class (in the very beginning, just after the class declaration), you can visit each class file individually (Password, PaymentCard, History, etc.). Every one of these has a toCSV() function that describes the order in which their fields are converted.

If you want to see how the CSV conversion process works per list, you can check on

String csvEncode(List object) {
(csvEncode()). Generally speaking, Passy CSV conversion would turn [ 'hello', 'world', 'te,st', [ 'foo', 'bar' ] ] into hello,world,te\,st,[foo,bar]. Notice how there's support for lists with [], which is the distinctive difference between regular CSV and Passy's account database format.

app_en.arb does not have much to do with the CSV import feature, it is the English localization file that was updated to include strings for import screens and UI elements.

The diligent user is also worried about "lock-in"

CSV export is not currently supported, but it is one of the core features planned for the next release. I will consider implementing KDBX (most probably with the help of the https://pub.dev/packages/kdbx package). I appreciate the step conversion you have suggested, but I believe it makes more sense to convert data directly from Passy to KDBX and KDBX to Passy to avoid potential loss of information.

I will notify you once there is a fix, along with an available test build.

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

Hello @hgkamath!
Thanks a lot for your gratitude.

Is there a proper specification of the fields (column titles) that go in the csv format.

For imports, no, as during the process user simply has to select values from their CSV file to match fields appropriate to the type of their import.

As per Passy's own, CSV-like account database format, there is no proper specification, but if you check on the LoadedAccount class at https://github.com/GlitterWare/Passy/tree/main/lib/passy_data, then if you can see the types of final fields of said class (in the very beginning, just after the class declaration), you can visit each class file individually (Password, PaymentCard, History, etc.). Every one of these has a toCSV() function that describes the order in which their fields are converted.

If you want to see how the CSV conversion process works per list, you can check on

String csvEncode(List object) {
(csvEncode()). Generally speaking, Passy CSV conversion would turn [ 'hello', 'world', 'te,st', [ 'foo', 'bar' ] ] into hello,world,te\,st,[foo,bar]. Notice how there's support for lists with [], which is the distinctive difference between regular CSV and Passy's account database format.

app_en.arb does not have much to do with the CSV import feature, it is the English localization file that was updated to include strings for import screens and UI elements.

The diligent user is also worried about "lock-in"

Passy export in JSON format is currently the only type of export.

CSV export is not currently supported, but it is one of the core features planned for the next release. I will consider implementing KDBX (most probably with the help of the https://pub.dev/packages/kdbx package). I appreciate the step conversion you have suggested, but I believe it makes more sense to convert data directly from Passy to KDBX and KDBX to Passy to avoid potential loss of information.

I will notify you once there is a fix, along with an available test build.

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

something about a backup zip file

Passy backups are plain copies of Passy account data compressed in a zip file. If you decrypt any encrypted file within a Passy backup with AES256 SIC encryption using your password padded with 0s to make it take up 32 bytes, you will find that your data is represented in a format similar to, but not the same as, CSV. I have described this format in my previous reply.

Edit 1: this method of decryption will no longer work for new accounts after the next release because by default their master keys will be derived using argon2.

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

I am happy to inform you that CSV export has been implemented in bf8e6d9. I will write once again when KDBX import/export is implemented.

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

KDBX import and export have been implemented:
KDBX export - 70ae5a1.
KDBX import - 555a3c3.

I will notify you one more time when these changes are included in a stable release.
Thank you for your contribution!

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

@hgkamath Implemented in https://github.com/GlitterWare/Passy/releases/v1.7.0.

from passy.

GleammerRay avatar GleammerRay commented on May 27, 2024

Thank you so much @hgkamath ! I will consider making some tutorials on using Passy. Currently, a synchronization tutorial is planned for the next release, which will be presented to the user once they setup and create their account.

If by online documentation you mean textual tutorials on how to use the app, I believe I'll be able to provide that. If such documentation becomes available, a Help button will be added at the top of Passy's settings (account and global).

I'll think about using Chocolatey later. At the moment Passy's Windows installers utilize Inno Setup, but I can see the use for Chocolatey with their auto update packages. Although I'm pretty sure I can set up a similar feature via Inno Setup.

As a side note, Passy's storage protocol is not yet ready for presentation. That is, I can easily describe it but there is no proper library that uses it. Most Passy's data logic is stored in lib/passy_data and requires some cleanup before it can be, for example, uploaded to pub.dev. It is fully Dart compatible at the moment (which allows Passy CLI to use it) but there needs to be more separation of responsibilities than there is now, as synchronization is closely coupled to data management (see LoadedAccount).

from passy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.