Providing keys through Web Key Directory protocol
Wiktor Kwapisiewicz <[email protected]> Tue, 16 Oct 2018 12:25:58 +0200
| Newsgroups | gmane.comp.horde.devel |
|---|---|
| Organization | Metacode |
| Message-ID | <[email protected]> |
Hello Horde Dev, I would like to add support for providing user's PGP keys in Horde through Web Key Directory protocol. Relevant ticket: https://bugs.horde.org/ticket/14465 A quick explanation what WKD does: modern GnuPG allows looking up PGP keys by e-mail addresses by converting e-mails to HTTPS URLs that are used to fetch the key (more info at https://wiki.gnupg.org/WKD ). For example, using "gpg --locate-key [email protected]" fetches the key from https://kernel.org/.well-known/openpgpkey/hu/pf113mfnx1f3eb1yiwhsipa91xfc7o4x (the local part is SHA1-ed and encoded using ZBase32) Horde could store the encoded username hash in database, have an endpoint that would catch "/.well-known/openpgpkey/hu" calls, retrieve user's pgpPublicKey and return the binary key (or 404 if the key doesn't exist). I think storing additional attribute - encoded localpart is needed because it's not possible to easily reverse the hash to username. I've checked the Pgp component and it seems Horde_Pgp_Element_PublicKeys have to_bytes() method that can be used to return binary encoded OpenPGP key. Could you check if this reasoning is sound? I would appreciate any tips in development of this feature as the sheer size of the code base is a little bit intimidating :) Currently I've got a small problem with horde-git-tools (in attachment) but I'll try some alternative methods to get the source. Thank you for your time! Kind regards, Wiktor -- https://metacode.biz/@wiktor -- dev mailing list Frequently Asked Questions: http://wiki.horde.org/FAQ To unsubscribe, mail: [email protected]
horde-git-tools-error.txt
(text/plain, 2.2 KB)
$ ./bin/horde-git-tools git clone
[ INFO ] Using cached data for https://api.github.com/orgs/horde/repos
[ INFO ] You have 59 GitHub API requests left until Tue, 16 Oct 2018 10:42:34 +0000
[ INFO ] Using cached data for https://api.github.com/organizations/379293/repos?page=2
[ INFO ] You have 58 GitHub API requests left until Tue, 16 Oct 2018 10:42:34 +0000
[ INFO ] Using cached data for https://api.github.com/organizations/379293/repos?page=3
[ INFO ] You have 57 GitHub API requests left until Tue, 16 Oct 2018 10:42:34 +0000
[ INFO ] Using cached data for https://api.github.com/organizations/379293/repos?page=4
[ INFO ] You have 56 GitHub API requests left until Tue, 16 Oct 2018 10:42:34 +0000
[ INFO ] Using cached data for https://api.github.com/organizations/379293/repos?page=5
[ INFO ] You have 55 GitHub API requests left until Tue, 16 Oct 2018 10:42:34 +0000
[ INFO ] Using cached data for https://api.github.com/organizations/379293/repos?page=6
[ INFO ] You have 54 GitHub API requests left until Tue, 16 Oct 2018 10:42:34 +0000
PHP Fatal error: Uncaught Horde_Http_Exception: Operation timed out after 5001 milliseconds with 0 bytes received in /home/wiktor/var/horde-git-tools/vendor/pear-pear.horde.org/Horde_Http/Horde/Http/Request/Curl.php:124
Stack trace:
#0 /home/wiktor/var/horde-git-tools/vendor/pear-pear.horde.org/Horde_Http/Horde/Http/Client.php(237): Horde_Http_Request_Curl->send()
#1 /home/wiktor/var/horde-git-tools/vendor/pear-pear.horde.org/Horde_Http/Horde/Http/Client.php(126): Horde_Http_Client->request('GET', 'https://raw.git...', NULL, Array)
#2 /home/wiktor/var/horde-git-tools/lib/Action/Git/ListRemote.php(94): Horde_Http_Client->get('https://raw.git...')
#3 /home/wiktor/var/horde-git-tools/lib/Action/Git/ListRemote.php(49): Horde\GitTools\Action\Git\ListRemote->_isHordeRepo('Url')
#4 /home/wiktor/var/horde-git-tools/lib/Module/Git.php(100): Horde\GitTools\Action\Git\ListRemote->run()
#5 /home/wiktor/var/horde-git-tools/lib/Module/Git.php(70): Horde\GitTools\Module\Git->_doClone()
#6 /home/wiktor/var/horde-git-tools/lib/Cli.php(58): Ho in /home/wiktor/var/horde-git-tools/vendor/pear-pear.horde.org/Horde_Http/Horde/Http/Request/Curl.php on line 124