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}