Decline to generate v5 keys
gpg 2.4.x will generate "v5" keys (from the LibrePGP spec) in at least the following circumstances:
gpg --quick-gen-key "$USERID" ed25519/v5gpg --quick-gen-key "$USERID" ed448gpg --quick-add-key "$FPR" cv25519/v5gpg --quick-add-key "$FPR" cv448printf 'Key-Type: eddsa\nKey-Curve: ed448\nName-Real: %s\n" "$USERID" | gpg --batch --generate-key
Interestingly, the final approach above (called "Unattended Key Generation" in gpg(1)) accepts but ignores an undocumented Key-Version option, in read_parameter_file in g10/keygen.c:
if ((keywords[i].key == pVERSION
|| keywords[i].key == pSUBVERSION))
; /* Ignore version. */
Note that the ed448 and cv448 variants are not specified in any OpenPGP documents -- GnuPG forces them into v5 by default.
i think FreePG should decline to generate v5 key material, even if the user appears to be asking for it. It should treat a request for v5 keys in the same way it treats a request for a key with algorithm fubar (it aborts the key generation process and indicates that the algorithm is not supported).