| Crates.io | seedpass |
| lib.rs | seedpass |
| version | 0.1.1 |
| created_at | 2025-01-27 01:41:29.803837+00 |
| updated_at | 2025-01-27 01:44:54.019458+00 |
| description | A secure password generation tool based on a single master key using Argon2 and BIP-39 |
| homepage | |
| repository | https://github.com/dertin/seedpass |
| max_upload_size | |
| id | 1531912 |
| size | 45,984 |
SeedPass is a command-line tool written in Rust that securely generates deterministic passwords using a master key. It supports BIP-39 mnemonic phrases as well as custom keys. The tool leverages Argon2id for password derivation, HMAC-SHA3-512 for deterministic salt generation, and ensures high security with built-in entropy validation and memory-safe operations. Users can include optional context and pepper values to enhance password uniqueness and security.
SeedPass is currently in development and provided "as is" without any guarantees.
Users are responsible for securely managing their master keys and generated passwords.
Always store your master key and pepper in secure offline locations to avoid unauthorized access.
Use this tool at your own risk.
To use SeedPass, follow these steps:
cargo install seedpass
Run the following command to generate a password for a service using your master key:
seedpass --master-key "your BIP-39 mnemonic phrase" --service "example.com"
Example with optional parameters:
seedpass --master-key "your BIP-39 mnemonic phrase" --service "github.com" \
--pepper "extra_security" --context "@dertin-1" --length 32
| Parameter | Description | Default Value |
|---|---|---|
--master-key |
The master key (BIP-39 mnemonic phrase) used to derive passwords | Required |
--service |
The service name for which the password is generated | Required |
--pepper |
An optional value to further enhance security | None |
--context |
Additional context to ensure uniqueness (e.g. username, timestamp, counter) | None |
--length |
Desired length of the generated password | 64 |
--allow-master-key-no-bip39 |
Allows using a non-BIP-39 master key | false |
To regenerate the same password for a service, you must provide the exact values used during its initial generation. This includes:
⚠️ Important
These values are as crucial as your master key and pepper.
Without them, you will not be able to regenerate the same password.
💾 Please store records of the service name, context, and password length in a safe and retrievable location.
Example of regenerating the same password:
seedpass --master-key "your BIP-39 mnemonic phrase" --service "example.com" --context "user123"
seedpass --master-key "your BIP-39 mnemonic phrase" --service "example.com" --context "user123"
The output will be the same password in both cases, ensuring you can reliably retrieve your credentials whenever needed.
If a service requires you to change your password, you can keep the same master key, pepper, and service name while updating the --context parameter. This allows you to generate a new password while preserving a consistent structure.
Example of updating passwords for a service:
seedpass --master-key "your BIP-39 mnemonic phrase" --service "example.com" --context "user123-1"
seedpass --master-key "your BIP-39 mnemonic phrase" --service "example.com" --context "user123-2"
In this case:
Recommendations:
SeedPass is designed with security in mind, offering the following features:
You can also run SeedPass inside a Docker container:
docker buildx build --platform linux/arm64 -t seedpass-arm64-musl --load .
docker run --rm --platform=linux/arm64 seedpass-arm64-musl /usr/local/bin/seedpass --help
Check out the milestones for upcoming features and releases.
If you encounter any issues or have questions, please open an issue on the GitHub repository.
Contributions make the open-source community thrive. Your contributions to SeedPass are greatly appreciated!
To contribute:
git checkout -b feature/amazing-feature).git commit -m 'Add some feature').git push origin feature/amazing-feature).For issues or suggestions, please open an issue with appropriate labels.
Don't forget to star the project!
Run tests to ensure everything is working correctly:
cargo test
SeedPass is licensed under the MIT or Apache-2.0 License. You are free to use, modify, and distribute it under the terms of these licenses.
For questions or support, please open an issue on the GitHub repository.
Thank you for using SeedPass and ensuring your online security!