keybase / keybase/keybase-issues
API: Fetch PGP key fingerprint only
- Dominant language
- No language data
- Stars
- 899
- Forks
- 40
- PR merge metrics
- No merged PRs in 30d
Description
I am looking to build an Ansible module that fetches key fingerprints via the Keybase API to check if the PGP key file must be downloaded. Looking through the Keybase API, there does not seem to be an ideal way to find just the fingerprint.
This response is quite heavy, returning my PGP key and all its subkeys:
https://keybase.io/_/api/1.0/user/lookup.json?github=brandonkal&fields=public_keys
Those are included as part of the /pgp_keys.asc endpoint so I wasn't really expecting it there. It would be nice to be able to further filter this response.
Perhaps the PGP key fingerprint could be added to the basics query:
https://keybase.io/_/api/1.0/user/lookup.json?usernames=brandonkal&fields=basics
That seems quite reasonable. It would be nice having the primary PGP key there as it seems it would be a common request.
Or ideally, I could just do this:
https://keybase.io/_/api/1.0/user/lookup.json?github=brandonkal&fields=fingerprint
From my testing, the lightest response I found that included the main PGP key fingerprint was this:
https://keybase.io/_/api/1.0/user/discover.json?github=brandonkal
This is not ideal when usernames differ. Another option would be to extend discover to allow usernames parameter. So long term, support for better filtering would be ideal.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by comparing the lookup.json requests with fields=public_keys and fields=basics, and the discover.json response described in the issue. Determine which endpoint and parameter shape can return only the primary PGP fingerprint; the work is done when that behavior is defined and documented without requiring the full key payload.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ansible
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100