signer-ed25519: DER-encode the public and private keys. The first version of the tool just put the raw key bytes into the PEM block, which is nonstandard. Use PCKS8 and PKIX to encode the private and public parts, respectively, which will be compatible with OpenSSL 3.0. This uses a separate PEM header to disambiguate between the old form and the new form.
Add a Go version of the ED25519 signer, which can also generate a keypair. I cannot figure out how get OpenSSL's Ed25519 keys compatible with Sparkle. https://github.com/openssl/openssl/issues/6357 talks about differences of expectations with key length. This new Go version Just Works.