in pkg/cmd/jwks/root.go [104:128]
func publicJWKSFromKeys(in []interface{}) (*jose.JSONWebKeySet, error) {
// Decode keys into a JWKS.
var keys jose.JSONWebKeySet
for _, key := range in {
var pubkey *jose.JSONWebKey
var err error
switch k := key.(type) {
case publicKeyGetter:
// This is a private key. Get its public key
pubkey, err = jwkFromPublicKey(k.Public())
default:
pubkey, err = jwkFromPublicKey(k)
}
if err != nil {
return nil, err
}
if !pubkey.Valid() {
return nil, errors.New("the public key is not valid")
}
keys.Keys = append(keys.Keys, *pubkey)
}
return &keys, nil
}