libff
libff copied to clipboard
C++ library for Finite Fields and Elliptic Curves
As far as I understand, OpenSSL is only used in this library for the `multiexp_profile` flag, but in that case why is it needed? Can we remove the dependency? At...
GMP is not compatible with Windows, while its fork [MPIR](http://mpir.org/) is.
For now, the CI checks only run on Linux (see: https://github.com/scipr-lab/libff/commit/864be23c08a957565f4a1b6b296887727aecebb2). This contrasts, however, with the fact that the library can also be used on `macOS` and `Windows`. As such,...
See thread here: https://github.com/scipr-lab/libff/pull/43#discussion_r462920866 TL;DR: No checks are made to verify that the recovered point lies on the curve, and nothing is done to make sure that we are manipulating...
Allows compressed / uncompressed points to be used in different situations, independently of the build configuration.
It could be very helpful IMO to define interfaces (via abstraction/inheritance or CRTPs, cc: @madars) to make the code related to field arithmetic generic (same would apply to groups btw)....
I think it would be nice to refactor tests as specified here: https://github.com/scipr-lab/libff/pull/44#discussion_r437979695 and follow a "one function - one test" approach.
Exposed some more fine-grained scalar muliplication operations.
Looks like the target groups of the pairings are defined from fields via `typedef` directives. See here for eg: https://github.com/scipr-lab/libff/blob/master/libff/algebra/curves/mnt/mnt4/mnt4_init.hpp#L39 This means that all public members of the underlying field...
Are these available?