in pkg/cmd/jwks/root.go [57:93]
func (jc *jwksCmd) run() error {
mlog.Debug("generating JSON Web Key Set", "publicKeys", jc.publicKeys)
var pubKeys []interface{}
for _, file := range jc.publicKeys {
pubKey, err := keyutil.PublicKeysFromFile(file)
if err != nil {
return errors.Wrap(err, "failed to read public key file")
}
pubKeys = append(pubKeys, pubKey...)
}
keySet, err := publicJWKSFromKeys(pubKeys)
if err != nil {
return errors.Wrap(err, "failed to construct JSONWebKeySet from a list of keys")
}
keysetJSON, err := json.MarshalIndent(keySet, "", " ")
if err != nil {
return errors.Wrap(err, "failed to marshal JSONWebKeySet")
}
if jc.outputFile != "" {
// write the keyset to the file
if err = os.WriteFile(jc.outputFile, keysetJSON, 0600); err != nil {
return errors.Wrap(err, "failed to write JWKS to file")
}
mlog.Debug("wrote JWKS", "file", jc.outputFile)
return nil
}
mlog.Debug("writing JWKS to stdout")
// write the keyset to stdout
if _, err = os.Stdout.Write(keysetJSON); err != nil {
return errors.Wrap(err, "failed to write JWKS to stdout")
}
return nil
}