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
- optimised
octet
implementation - 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")
Example | Showcase |
---|---|
bls381_sign_verify.jl |
|
bls381_sub.jl | Implement missing BLS_BLS381_SUB_G1 function with Curve primitives |
You can run an example (in this case bls381_sign_verify.jl) like this:
julia example/bls381_sign_verify.jl
Check the benchmarks directory.
You can run a benchmarks with the BLS381 curve like this:
julia benchmark/bls.jl
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()'
If you are using the csprng()
method, it will generate random seed from /dev/random
,
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
the 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