Skip to main content

This is a command line tool to export and import passwords from/to pass (https://www.passwordstore.org/).

Project description

pass-export

This is a command line tool to export and import passwords from/to pass. The passwords are exported to symmetrically encrypted files so they are independent of your private key. You can use these exported files for making backups or to copy them to another computer.

$ pass
Password Store
├── bar
└── foo
$ pass-export
Please insert a password to encrypt the exported files: 
Please reenter the password: 
exported-passwords_2022-08-05/bar.gpg
exported-passwords_2022-08-05/foo.gpg

You can decrypt a password with

$ gpg -d exported-passwords_2022-08-05/foo.gpg

You can copy the exported passwords to a new computer and import them into a new password store

$ gpg --quick-gen-key pass default encrypt never
$ pass init pass
$ pass-import exported-passwords_2022-08-05
Please insert password to decrypt exported-passwords_2022-08-05/bar.gpg: 
imported exported-passwords_2022-08-05/bar.gpg
imported exported-passwords_2022-08-05/foo.gpg

Requirements

This program relies on the following other programs which are called via subprocess:

  • gpg to decrypt and encrypt the passwords
  • gpgconf to restart the gpg-agent (I am temporarily changing ~/.gnupg/gpg-agent.conf so that even if you have configured gpg securely you do not need to reinsert your password for every single password.)
  • shred to remove a temporary file in which I shortly kept the password for the exported files so that you do not need to reenter it for every single password. The assumptions that shred is based upon are not valid for SSDs. Therefore I am writing the file to the path indicated by XDG_RUNTIME_DIR, hoping that it will stay in RAM instead of getting written to an SSD.

Running the tests

tox is configured to not download packages every time you run it so you can use it wen you have no internet connection, too. Instead it takes it's dependencies from the directory .package-store. This can be initialized with

$ ./release.sh --test

Afterwards you can continue to use that command or run tox directly:

tox

tox, however, is very slow. So you may prefer to run mypy and pytest manually. (The venv has been setup by release.sh.)

. venv/bin/activate
$ mypy src/pass_export/ tests/
$ pytest

License

This work is free. You can use, copy, modify, and/or distribute it under the terms of the BSD Zero Clause License, see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pass-export-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

pass_export-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file pass-export-0.1.0.tar.gz.

File metadata

  • Download URL: pass-export-0.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.1

File hashes

Hashes for pass-export-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6fbd9ae3c2a36b17d96c917afaa57e1d22e373b75aa5b15ed104959e4b6dd6dd
MD5 502e16ac8ffa0b738891641ca4eaf652
BLAKE2b-256 47fca311763ba095115a82ff63a8b3ca4a8497b831cc19f32a32a6513d0a23dc

See more details on using hashes here.

File details

Details for the file pass_export-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pass_export-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6ef2e0e37e1aabe75f89d995cda58ccbb1ec58c4f1f178a0a415c913a57ee34
MD5 72250cf2540af80b79e65c7deec7c61b
BLAKE2b-256 e397a4b44bf616b792748d3534e32eb04bedc02588969b6e9e312d2fde9cb3db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page