Commit Graph
6 Commits
Author SHA1 Message Date
Wiktor Kwapisiewicz f6b3887f93 Follow redirects when fetching keys over WKD
Some hosts (like `kernel.org`) redirect all requests to a subdomain (in
this case `www`). As WKD queries are always over HTTPS following redirects
would be safe.
2018-05-22 22:13:12 +02:00
Wiktor Kwapisiewicz 222231066e Show import key dialog when clicking on WKD URL
This change extends WKD support for direct Web Key Directory URLs
similarily to Facebook key URLs and HKP URLs.

When a link with scheme `https` and path starting with
`/.well-known/openpgpkey/hu/` is clicked Android will suggest importing
the key with OpenKeychain.

Fixes #2270.
2018-05-22 22:13:00 +02:00
Wiktor Kwapisiewicz bc25b345fc Extract out contruction of Web Key Directory URLs
Moves `toWebKeyDirectoryURL` to a separate class adding unit tests
for URL correctness as well as support for spaces at the beginning
and end of the e-mail. Spaces are frequently automatically inserted
by soft keyboards.
2018-05-22 21:32:53 +02:00
Wiktor Kwapisiewicz fa3b32eddc Add ability to search for keys using WKD protocol
If a search pattern that looks like an email address is found
an additional query using Web Key Directory will be performed.

Implements basic flow described in "Key Discovery" [0] I-D.
Querying SRV records is not supported.

Fixes partially #2270.

[0]: https://tools.ietf.org/html/draft-koch-openpgp-webkey-service-05#section-3.1
2018-05-12 21:14:56 +02:00
Wiktor Kwapisiewicz 01aadf6a1f Extend QR scanner to support VCards with KEY field
Currently QR scanner supports only `openpgp4fpr` URIs. VCard specification
allows embedding public key information as an URI in `KEY` field [0]. Two
schemes used with this field - `https` and `data` are either insecure or
not practical [1]. As the value of `KEY` field is a URI one can use
`openpgp4fpr` URI there to have both secure and small links.

This change will extract URI from `KEY` field from a scanned VCard and
process it just like it would be a URI scanned directly. When a `openpgp4fpr`
URI is put there the UI would search and import the key and show the confirm
dialog.

Example VCard with this URI:

    BEGIN:VCARD
    FN:Test WKD
    EMAIL:test-wkd@metacode.biz
    KEY:OPENPGP4FPR:74EC8D3DA82A79DAA25DF10C6BA55ED83ABAE1BB
    END:VCARD

[0]: https://tools.ietf.org/html/rfc6350#section-6.8.1

[1]: https://www.av8n.com/computer/htm/distributing-keys.htm#sec-fing
2018-05-10 15:22:09 +02:00
Wiktor Kwapisiewicz f2cda5dd6c Accept dash character (-) in GitHub user names when checking for Gist URL
GitHub allows dash / minus characters in usernames (e.g. "wiktor-k" or
"open-keychain"). This change extends the regular expression to capture
this missing character.
2017-10-18 21:20:25 +02:00