Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@dkg
Copy link
Contributor

@dkg dkg commented Oct 22, 2024

The x448 crate hasn't had a release in over 2 years, while several of its dependencies are still rather unstable (in particular, ed448-goldilocks and rand_core have had at least one semver-incompatible bump since the x448 release, and ed448-goldilocks itself probably needs another release as well, since there are many useful cleanup changes pending there).

This makes me think that x448 isn't quite ready for prime time in the existing rust ecosystem. Given that ed448 itself is also not supported yet, it seems like any work with Curve448 might be premature to make available by default.

This patch proposes to put the x448 code behind a feature named "unstable-curve448". It will also make it easier to land the rest of the RFC 9580 work in debian, which is currently struggling with the unmaintained dependency chain here.

@dkg
Copy link
Contributor Author

dkg commented Oct 22, 2024

I recognize that this might need a semver-incompatible version bump (to 0.15.0), if adopted, since the unstable-curve448 feature won't be enabled by default any longer. Even if it were enabled by default, it might need a semver-incompatible version bump.

@hko-s
Copy link
Contributor

hko-s commented Oct 23, 2024

Thanks for digging into this!

I haven't looked at the details of the PR yet, but wanted to put on the record that I am in favor of the general direction:
It seems reasonable to enable feature-gating x448 out, while it is in a difficult-to-package-reasonably state.

I hope that x448 and ed448 will gain well maintained support (ideally under the rust crypto umbrella). But until then, considering x448 in rPGP to be of an experimental nature - and even to disable it by default - seems ok to me.

@dignifiedquire
Copy link
Member

need to add a CI check testing with the new feature, and should probably add some docs somewhere about it

@dkg dkg force-pushed the feature-gate-x448 branch from 07df575 to 6873cdb Compare October 23, 2024 20:27
@dkg
Copy link
Contributor Author

dkg commented Oct 23, 2024

I've added an explicit feature unstable-curve448.

need to add a CI check testing with the new feature, and should probably add some docs somewhere about it

There are already tests that are marked with the x448 feature, so i've added a CI test to .github/workflows/ci.yml, which i think should do this by testing feature unstable-curve448.

I've also added a subsection to README.md describing the decision.

Let me know if you need anything else!

@dkg dkg force-pushed the feature-gate-x448 branch from 207cfbf to 0503d99 Compare October 26, 2024 05:10
@dkg
Copy link
Contributor Author

dkg commented Oct 26, 2024

I've adjusted the branch to now only create a single explicit feature unstable-curve448, and there is no more x448 feature.

@dkg dkg changed the title Gate x448 work behind an "x448" feature. Gate x448 work behind an "unstable-curve448" feature. Oct 26, 2024
@dkg
Copy link
Contributor Author

dkg commented Oct 29, 2024

@dignifiedquire this is a gentle nudge -- if you could review this and let me know if you think it needs anything else, i'd be grateful.

The x448 crate hasn't had a release in over 2 years, while several of
its dependencies are still rather unstable (in particular,
ed448-goldilocks and rand_core have had at least one
semver-incompatible bump since the x448 release, and ed448-goldilocks
itself probably needs another release as well, since there are many
useful cleanup changes pending there).

This makes me think that x448 isn't quite ready for prime time in the
existing rust ecosystem.  Given that ed448 itself is also not
supported yet, it seems like any work with Curve448 might be premature
to make available by default.

This patch proposes to put the x448 code behind a feature named
"unstable-curve448".  It will also make it easier to land the rest of
the RFC 9580 work in debian, which is currently struggling with the
unmaintained dependency chain here.
@dkg dkg force-pushed the feature-gate-x448 branch from 03fc539 to 590d0ac Compare December 17, 2024 17:21
@dkg
Copy link
Contributor Author

dkg commented Dec 17, 2024

I've just rebased and cleaned this up, please consider it for a future release!

@dkg dkg force-pushed the feature-gate-x448 branch from 590d0ac to 0528421 Compare December 17, 2024 19:42
@dkg
Copy link
Contributor Author

dkg commented Dec 17, 2024

thanks for the feedback, @dignifiedquire ! let me know if there's any other cleanup that you want.

@dignifiedquire
Copy link
Member

just need ci to become greeener, then this is good to go, sorry for the delay

@dkg
Copy link
Contributor Author

dkg commented Jan 3, 2025

do you want me to take any action to make the CI "become greener"? I'm not sure how to handle the cross-compilation or format "red" indicators, since i don't believe they are associated with the changes in this MR. Let me know what i can do to move this along. And, happy new year! 🎉

@hko-s
Copy link
Contributor

hko-s commented Jan 3, 2025

I think rebasing this branch on main might resolve (some of?) the CI issues

@dignifiedquire
Copy link
Member

I‘ll take it over tomorrow, don’t worry about it

@dignifiedquire
Copy link
Member

Finishing in #454

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants