aerc/commands/compose/encrypt.go
Tim Culverhouse 32a16dcd8d pgp: check encryption keys before sending message
Add check for public keys of all message recipients (to, cc, and bcc)
before sending the message. Adds an OnFocusLost callback to header
editors to facilitate a callback for checking keys whenever a new
recipient is added (OnChange results in too many keyring checks).

Once encryption is initially set, the callbacks are registered. If a
public key is not available for any recipient, encryption is turned off.
However, notably, the callbacks are still registered meaning as s soon
as the user removes the recipients with missing keys, encryption is
turned back on.

Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Tested-by: Koni Marti <koni.marti@gmail.com>
2022-05-06 11:02:50 +02:00

32 lines
528 B
Go

package compose
import (
"errors"
"git.sr.ht/~rjarry/aerc/widgets"
)
type Encrypt struct{}
func init() {
register(Encrypt{})
}
func (Encrypt) Aliases() []string {
return []string{"encrypt"}
}
func (Encrypt) Complete(aerc *widgets.Aerc, args []string) []string {
return nil
}
func (Encrypt) Execute(aerc *widgets.Aerc, args []string) error {
if len(args) != 1 {
return errors.New("Usage: encrypt")
}
composer, _ := aerc.SelectedTab().(*widgets.Composer)
composer.SetEncrypt(!composer.Encrypt())
return nil
}