func publicJWKSFromKeys()

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
}