On gnupg-devel, @wiktor-k reports that GnuPG appears to be modifying the MPIs of an Ed25519 signature packet into non-compliant MPI form.
I was able to replicate the problem with 2.4.6, but 2.2.45 does not appear to have the problem.
Below is a minimal sample v4 OpenPGP signing-capable secret key using EdDSA/Ed25519 with user ID "User ID 22546":
-----BEGIN PGP PRIVATE KEY BLOCK----- xVgEZzupvxYJKwYBBAHaRw8BAQdAX2U1y958rcAE4NnPUsUtDI82d7Ps6Uwc9ekh 9mmNJIcAAQCrb3+ZJB9vugoCS8u192VXZcJVaD1hr9+zwxeQ1F2scA+jzQ1Vc2Vy IElEIDIyNTQ2wnwEExYIACYFgmc7qckCF4ACmwMCHgAWIQRxT9PuuFQWBrbG1qTG zklMbZWW8wAKCRDGzklMbZWW80YLAO0Yq5Q32hDb36xOb0+n8FagD4nJd00g7oZ4 EsOL78cBAJbHTdDHmTy4cpiNumN64TVYoq52N0C82BKGJiV5qd4M =Y1DF -----END PGP PRIVATE KEY BLOCK-----
The UID self-sig's Ed25519 signature has an R value of length 237 and an S value of length 256.
I roundtrip it through gnupg like so:
$ rm -rf g $ mkdir -m 0700 g $ gpg --homedir g --import example.key $ gpg --homedir g --export --armor "User ID 22546" $ rm -rf g
If i round-trip it through gnupg 2.2.45, i get the same signature packet
back out:
0000003c 00 ed eddsa_sig_r_len 0000003e 18 ab eddsa_sig_r 00000040 94 37 da 10 db df ac 4e 6f 4f a7 f0 56 a0 0f 89 00000050 c9 77 4d 20 ee 86 78 12 c3 8b ef c7 0000005c 01 00 eddsa_sig_s_len 0000005e 96 c7 eddsa_sig_s 00000060 4d d0 c7 99 3c b8 72 98 8d ba 63 7a e1 35 58 a2 00000070 ae 76 37 40 bc d8 12 86 26 25 79 a9 de 0c
If i round-trip it through 2.4.6, i get:
0000003c 01 00 eddsa_sig_r_len 0000003e 00 00 eddsa_sig_r 00000040 18 ab 94 37 da 10 db df ac 4e 6f 4f a7 f0 56 a0 00000050 0f 89 c9 77 4d 20 ee 86 78 12 c3 8b ef c7 0000005e 01 00 eddsa_sig_s_len 00000060 96 c7 4d d0 c7 99 3c b8 72 98 8d ba 63 7a e1 35 eddsa_sig_s 00000070 58 a2 ae 76 37 40 bc d8 12 86 26 25 79 a9 de 0c
note the multiple octets of leading zeros.