Crates.io | passwordmaker-rs |
lib.rs | passwordmaker-rs |
version | 0.2.1 |
source | src |
created_at | 2022-10-25 20:58:53.52846 |
updated_at | 2023-01-20 23:40:31.461329 |
description | Rust reimplementation of the PasswordMaker Pro algorithm. This is partially a port, partially written from scratch. Compatibility is a goal, but not guaranteed. |
homepage | |
repository | https://github.com/soulsource/passwordmaker-rs |
max_upload_size | |
id | 697215 |
size | 166,448 |
This project is a Rust reimplementation of PasswordMaker Pro.
Just like the original software, this library is released under the GNU Lesser General Public License. To be precise, under GNU Lesser General Public License v3.0 or later. See the LICENSE
file for the full text of the license.
This is a completely new implementation, but the source code of the JavaScript Edition of Passwordmaker Pro was used as a guideline whenever something was not immediately clear from the behaviour of the original program.
All credit for the development of the PasswordMaker Pro algorithm (and therefore for the high level flow of this library too) goes to the original authors of PasswordMaker Pro, Miquel Burns and Eric H. Jung. (I really hope I linked the correct profiles.)
This crate is meant as a building block for an upcoming native Sailfish OS app ("PassFish") that aims to be compatible with PasswordMaker Pro, but the public API should be reasonably easy to use for other Rust-based PasswordMaker compatible tools, so feel free to base your own applications on this.
Beware that currently this library is developed in tandem with the corresponding Sailfish app, so the interface might still change as needed. This will of course stop once this library reaches version 1.0.
This library does not include any cryptographic hashes itself, but rather relies on the user to supply implementations of the hash algorithms. You can have a look at the integration tests to see how the syntax looks like for the RustCrypto Hashes. This is to avoid duplicate code, as many GUI frameworks already include their own implementation of the hashes.