Motivation
GET /pks/lookup?op=index currently returns 501. GnuPG's gpg --search-keys uses op=index to list matching keys. Without it the server is not HKP-compliant for key search.
Machine-readable format (options=mr)
info:1:<N>
pub:<fingerprint>:<algo>:<keylen>:<ctime>:<exptime>:<flags>
uid:<escaped-uid>:<ctime>:<exptime>:<flags>
Flags: r = revoked, d = disabled, e = expired.
What to implement
- Add a
UidRepository port (or extend KeyRepository) with a method returning key + UID metadata for a search term.
- Add a
UidEntity JPA query that joins keys and uids tables.
- In
LookupEndpoint, route op=index to a new handleIndex() method.
- Without
options=mr: return an HTML page (simple for now — not required for GnuPG interop).
- With
options=mr: return the text format above with Content-Type: text/plain.
Non-goals
op=vindex (verbose index) can come later; start with op=index.
Motivation
GET /pks/lookup?op=indexcurrently returns 501. GnuPG'sgpg --search-keysusesop=indexto list matching keys. Without it the server is not HKP-compliant for key search.Machine-readable format (options=mr)
Flags:
r= revoked,d= disabled,e= expired.What to implement
UidRepositoryport (or extendKeyRepository) with a method returning key + UID metadata for a search term.UidEntityJPA query that joinskeysanduidstables.LookupEndpoint, routeop=indexto a newhandleIndex()method.options=mr: return an HTML page (simple for now — not required for GnuPG interop).options=mr: return the text format above withContent-Type: text/plain.Non-goals
op=vindex(verbose index) can come later; start withop=index.