Skip to content

Why do you use a fork of curve25519-dalek? #811

@tarcieri

Description

@tarcieri

We get a pretty steady stream of accidental PRs from people's forks of curve25519-dalek. That makes me wonder if there are things we could put in a hazmat API which would allow such use cases to consume the code as a crate/library rather than a fork.

I assume access to the field element implementation is a big part of it, but also one of the most problematic to expose, not only due to massive footgun potential, but because there is currently no common FieldElement type suitable for public exposure. #787 adds such a type, but it has its own problems and deliberately doesn't expose lazy reductions, which I expect many users attempting to consume the field element implementations wants for performance. If you're interested in a public "hazmat" FieldElement type, please leave a note about whether #787 fits your use cases (and I suppose we could open a separate tracking issue about that).

Are there any other things we could put under a hazmat API that would eliminate the need to fork curve25519-dalek and allow using it as a crate instead?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions