package web import ( "crypto/x509" "encoding/json" "encoding/pem" "net/http" "github.com/lestrrat-go/jwx/v2/jwk" ) func (h *HttpContext) JsonWebKeySets(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") privatePem, _ := pem.Decode(h.cfg.KeyData) parsedKey, _ := x509.ParsePKCS1PrivateKey(privatePem.Bytes) key, _ := jwk.FromRaw(parsedKey) pubKey, _ := jwk.PublicKeyOf(key) pubKey.Set(jwk.KeyIDKey, "X") pubKey.Set(jwk.KeyUsageKey, "sig") set := jwk.NewSet() set.Add(pubKey) json.NewEncoder(w).Encode(set) }