8 releases (breaking)
0.6.0 | Nov 3, 2024 |
---|---|
0.5.1 | Aug 31, 2024 |
0.5.0 | Aug 28, 2021 |
0.4.0 | Aug 3, 2021 |
0.0.0 | Jan 12, 2020 |
#179 in Authentication
7,164 downloads per month
Used in 7 crates
31KB
533 lines
pinentry
pinentry is a library for interacting with the pinentry binaries available on various platforms.
Usage
Add this line to your Cargo.toml
:
pinentry = "0.6"
See the documentation for examples.
pinentry
requires Rust version 1.60 or greater.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
pinentry
is a library for interacting with the pinentry binaries available on
various platforms.
Examples
Request passphrase or PIN
use pinentry::PassphraseInput;
use secrecy::SecretString;
let passphrase = if let Some(mut input) = PassphraseInput::with_default_binary() {
// pinentry binary is available!
input
.with_description("Enter new passphrase for FooBar")
.with_prompt("Passphrase:")
.with_confirmation("Confirm passphrase:", "Passphrases do not match")
.interact()
} else {
// Fall back to some other passphrase entry method.
Ok("a better passphrase than this".to_owned().into())
}?;
Ask user for confirmation
use pinentry::ConfirmationDialog;
if let Some(mut input) = ConfirmationDialog::with_default_binary() {
input
.with_ok("Definitely!")
.with_not_ok("No thanks")
.with_cancel("Maybe later")
.confirm("Would you like to play a game?")?;
};
Display a message
use pinentry::MessageDialog;
if let Some(mut input) = MessageDialog::with_default_binary() {
input.with_ok("Got it!").show_message("This will be shown with a single button.")?;
};
Dependencies
~2–11MB
~132K SLoC