Commit Briefs
draft of telescope-identity(1)
This is intended to generate and manage certificates outside of telescope. Some operations are already available in the telescope UI, such as use and forget a certificate for a specific page, but generate and removal are hard at the moment to implement inside telescope limited UI, so provide an helper program for that.
rework a bit the certificate handling
Two stores are not a good idea to handle all the edge-cases since telescope supports certificates (or absence of these) per-session.
add client_cert_temp flag to the struct tab
This way we can improve unload-certificate prompt. While here, move the cert handling in make_request().
load and optionally remember client certificates
This adds use-certificate, a user function to start using a certificate or switch to a different one. It asks whether to persist the certificate, if not it will only be used for the current session. use-certificate is implicitly called when the server replies with a 6x status code.
simplify cert sorting
No need to overly-optimize this: since mergesort() is not standard and can fail, just use qsort().
first draft of client certificate support
At the moment telescope loads a mapping host:port/path -> certificate from a file and always uses it, no ways to change it, use a temporary one, generate a new one, etc are provided yet. The format of ~/.telescope/certs/certs is host port path certificate file name where the certificate file name is the name of a file inside ~/.telescope/certs. ~/.telescope/certs/ is ~/.local/share/telescope/ when using XDG.
add certs.[ch]
adapted from gmid. we'll soon use it to provide client certificates support in telescope.