Julia bindings for AMCL_jll.
The objective of this project is to provide efficient and secure access to the AMCL C library from Julia for all supported platforms (OS and CPU).
Everything should work although only a tiny subset of the native APIs have been tested. Only tested on Mac so far, but I'm not expecting problems on any other target.
- all native (C) APIs should be reachable
- support all Julia platforms
- travis CI to build for all targets
- add more examples for common use-cases
- usability improvement (e.g. add a + method for curve points)
- add implicit conversions where useful
using Pkg Pkg.add("MilagroCrypto")
You can run an example (in this case bls381_sign_verify.jl) like this:
Check the benchmarks directory.
You can run a benchmarks with the BLS381 curve like this:
If you want to test with other curve(s):
julia benchmark/bls.jl BN254 BLS461
Run tests with:
julia -e 'using Pkg; Pkg.activate("."); Pkg.test()'
Frequently Asked Questions
My Application hangs for a while when using this lib
If you are using the
csprng() method, it will generate random seed from
which will "hang" by design if there is not enough entropy in the pool.
Try re-running your app with the
JULIA_DEBUG=MilagroCrypto environment variable and look for
got seed from OS console log to confirm that your application is not
stuck waiting for more entropy.
Are most welcome. However, please note the objective of this project.
- Pick something to improve from the list above
- Create PR
- Make sure Travis CI is happy