#passphrase #password #api-bindings

pinentry

与 pinentry 二进制文件交互的 API

6 个版本 (破坏性更新)

0.5.0 2021 年 8 月 28 日
0.4.0 2021 年 8 月 3 日
0.3.0 2021 年 1 月 11 日
0.2.0 2020 年 7 月 13 日
0.0.0 2020 年 1 月 12 日

#398认证

Download history 1017/week @ 2024-03-14 1544/week @ 2024-03-21 1916/week @ 2024-03-28 1737/week @ 2024-04-04 1681/week @ 2024-04-11 1490/week @ 2024-04-18 1677/week @ 2024-04-25 3403/week @ 2024-05-02 3181/week @ 2024-05-09 2330/week @ 2024-05-16 1220/week @ 2024-05-23 1446/week @ 2024-05-30 1384/week @ 2024-06-06 1008/week @ 2024-06-13 664/week @ 2024-06-20 443/week @ 2024-06-27

3,650 每月下载量
用于 5 crates

MIT/Apache

29KB
482

pinentry

pinentry 是一个库,用于与各种平台上可用的 pinentry 二进制文件交互。

用法

将此行添加到您的 Cargo.toml

pinentry = "0.5"

请参阅文档以获取示例。

pinentry 需要 Rust 版本 1.51 或更高版本。

许可证

根据以下任一许可证授权

由您选择。

贡献

除非您明确声明,否则您提交给作品以供包含的任何有意贡献,根据 Apache-2.0 许可证的定义,应按上述方式双重许可,而不附加任何额外条款或条件。


lib.rs:

pinentry 是一个库,用于与各种平台上可用的 pinentry 二进制文件交互。

示例

请求密码短语或 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(SecretString::new("a better passphrase than this".to_owned()))
}?;

请求用户确认

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?")?;
};

显示消息

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.")?;
};

依赖项

~3–11MB
~132K SLoC