Skip to content

Support for optional parts #277

@sipa

Description

@sipa

So far, all pieces of libsecp256k1 functionality have been part of a single offered interface. This made sense as long as all we were doing was implementing a pre-existing ECDSA standard.

However, there are now a few self-defined algorithms implemented and under review (Schnorr/SHA256, ECDH SHA256, ECDH x-only) and a few more externally maintained patches for extra functionality.

I wonder what kind of model we want for these. I feel that it's not optimal to "force" these standards on people using the library for pure ECDSA, but dozens of patch sets is not a maintainable situation either.

Of course, functionality could be compiled optionally, which is pretty easy because of the library's all-internal-implementations-is-in-headers, but there would be a question of headers. secp256k1.h could get optional parts, which get macro processed before install time, or (my preference) have separate .h files (secp256k1/ecdsa.h secp256k1/eckey.h secp256k1/schnorr.h, ...).

Opinions? @gmaxwell @apoelstra @peterdettman @theuni @laanwj?

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