Skip to content

WKD support and other crypto improvements (see issue #71)

Albrecht Dreß requested to merge 71-wkd-support into master

This branch implements support for Web Key Directory (WKD) public OpenPGP key lookups and improves the UI for sending encrypted messages. WKD seems to be more reliable than traditional key servers as the latter apparently mostly return the presence of a key, but no real data. Thus, the check for missing keys in received messages checks WKD first, and the key servers iff no WKD key is returned.

In the message composer, if either signing or encryption is activated, an additional column is added to the right of the address selection widget, indicating if a public key for the selected crypto protocol is available or not. Clicking on the icon either shows the details of the public key, or checks the Autocrypt database, WKD (both OpenPGP only) or the key servers for public keys. Note that the latter will also work for S/MIME if gpgsm/dirmngr have been configured appropriately.

Modified files:

  • libbalsa/address-view.[ch]: add additional column for displaying the public key status, callbacks for either displaying key details or for searching keys, helpers for setting icon names and crypto mode
  • libbalsa/autocrypt.[ch]: add method for importing missing keys of an InternetAddressList from the Autocrypt database
  • libbalsa/libbalsa-gpgme-keys.[ch]: new helpers for listing all public keys of an InternetAddressList, for checking the availibility of keys of an InternetAddressList or InternetAddressMailbox, and for importing all keys of an InternetAddressList from WKD or key servers, extend libbalsa_gpgme_keyserver_op() API by email address for WKD lookup
  • libbalsa/libbalsa-gpgme-widgets.[ch]: add method to display the details of a list of keys
  • libbalsa/libbalsa-gpgme.c: fix doc typo
  • libbalsa/rfc3156.c: replace local function by call to libbalsa_gpgme_have_all_keys()
  • src/balsa-icons.c: set address view key status icon names
  • src/balsa-mime-widget-crypto.c: get From: or Sender: email address for WKD lookup, pass it to libbalsa_gpgme_keyserver_op()
  • src/sendmsg-window.c: notify address view about crypto protocol changes

Signed-off-by: Albrecht Dreß albrecht.dress@netcologne.de

Closes #71 (closed)

Merge request reports