main
 1package web
 2
 3import (
 4	"crypto/x509"
 5	"encoding/json"
 6	"encoding/pem"
 7	"net/http"
 8
 9	"github.com/lestrrat-go/jwx/v2/jwk"
10)
11
12func (h *HttpContext) JsonWebKeySets(w http.ResponseWriter, r *http.Request) {
13	w.Header().Set("Content-Type", "application/json")
14	privatePem, _ := pem.Decode(h.cfg.KeyData)
15	parsedKey, _ := x509.ParsePKCS1PrivateKey(privatePem.Bytes)
16	key, _ := jwk.FromRaw(parsedKey)
17	pubKey, _ := jwk.PublicKeyOf(key)
18	pubKey.Set(jwk.KeyIDKey, "X")
19	pubKey.Set(jwk.KeyUsageKey, "sig")
20
21	set := jwk.NewSet()
22	set.Add(pubKey)
23	json.NewEncoder(w).Encode(set)
24}