ZenGo-X / curv

Rust language general purpose elliptic curve cryptography.
MIT License
264 stars 111 forks source link

Support different bigint implementations #106

Closed survived closed 3 years ago

survived commented 3 years ago

PR changes BigInt - it was a type alias, became a structure wrapping gmp/num-bigint. BigInt hides underlying implementation - you can only manipulate it by calling traits implemented on BigInt (set of implemented traits remains the same regardless of chosen bigint implementation).

Exposed API is limited, but should be enough for most of the cases. It's also extensively tested that both implementations behave the same in public methods.

This PR affects curv API, so it requires major version bump (up to v0.6.0) and some migration work in upstream crates.

survived commented 3 years ago

@omershlo, thank you for reviewing this big list of changes! I've just pushed fixes