Package pinentry
provides a client to GnuPG's
pinentry.
- Support for all
pinentry
features. - Idiomatic Go API.
- Well tested.
client, err := pinentry.NewClient(
pinentry.WithBinaryNameFromGnuPGAgentConf(),
pinentry.WithDesc("My description"),
pinentry.WithGPGTTY(),
pinentry.WithPrompt("My prompt:"),
pinentry.WithTitle("My title"),
)
if err != nil {
return err
}
defer client.Close()
switch result, err := client.GetPIN(); {
case pinentry.IsCancelled(err):
fmt.Println("Cancelled")
case err != nil:
return err
case result.PasswordFromCache:
fmt.Printf("PIN: %s (from cache)\n", result.PIN)
default:
fmt.Printf("PIN: %s\n", result.PIN)
}
MIT