Commit Graph
10 Commits
Author SHA1 Message Date
Wiktor Kwapisiewicz 7e3c985c54 Add intent filter for handling WKD link in Firefox
Firefox for Android requires `mimeType` condition on the intent filter.
Built-in browsers (e.g. Chrome) need an intent filter that will *not* have
`mimeType` conditions.

Using two common MIME types: `application/octet-stream` is mentioned in
the I-D and `application/pgp-keys` is a common type for keys used in the
wild.
2018-05-23 15:07:04 +02:00
Wiktor Kwapisiewicz 92e7995b83 Add preference toggle for switching on/off WKD 2018-05-23 15:06:59 +02:00
Wiktor Kwapisiewicz fe78850b3d Automatically construct CloudSearchPrefs using auto-value 2018-05-23 15:06:59 +02:00
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 759e51e6f4 Add support for NDEF tags with openpgp4fpr URIs
This change allows importing keys from NDEF tags that have fingerprint
encoded as an `openpgp4fpr` URI when the application is in background.
After scanning a tag the `Import keys` activity is shown with results of
the search for key fingerprint encoded in the tag.
2018-05-22 09:25:52 +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