Expand description
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.")?;
};
Structs§
- Confirmation
Dialog - A dialog for requesting a confirmation from the user.
- GpgError
- An uncommon or unexpected GPG error.
- Message
Dialog - A dialog for showing a message to the user.
- Passphrase
Input - A dialog for requesting a passphrase from the user.
Enums§
- Error
- Errors that may be returned while interacting with
pinentry
binaries.
Type Aliases§
- Result
- Result type for the
pinentry
crate.