gitextract_z39wz_mc/ ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── ci.yml │ ├── codeql-analysis.yml │ └── golang-lint.yml ├── .gitignore ├── .golangci.yml ├── .lgtm.yml ├── .travis.yml ├── LICENSE ├── README.md ├── SECURITY.md ├── bindings/ │ ├── blst.h │ ├── blst.hpp │ ├── blst.swg │ ├── blst_aux.h │ ├── c#/ │ │ ├── poc.cs │ │ ├── poc.csproj │ │ ├── run.me │ │ └── supranational.blst.cs │ ├── go/ │ │ ├── README.md │ │ ├── blst.go │ │ ├── blst.tgo │ │ ├── blst_htoc_test.go │ │ ├── blst_miller_loop_test.go │ │ ├── blst_minpk.tgo │ │ ├── blst_minpk_test.go │ │ ├── blst_minsig_test.go │ │ ├── blst_misc.tgo │ │ ├── blst_px.tgo │ │ ├── blst_wasm.go │ │ ├── cgo_assembly.S │ │ ├── cgo_server.c │ │ ├── generate.py │ │ └── rb_tree.go │ ├── rust/ │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── benches/ │ │ │ └── blst_benches.rs │ │ ├── build.rs │ │ ├── publish.sh │ │ ├── rustfmt.toml │ │ └── src/ │ │ ├── bindings.rs │ │ ├── lib.rs │ │ ├── pippenger-no_std.rs │ │ ├── pippenger-test_mod.rs │ │ └── pippenger.rs │ ├── vectors/ │ │ └── hash_to_curve/ │ │ ├── BLS12381G1_XMD_SHA-256_SSWU_NU_.json │ │ ├── BLS12381G1_XMD_SHA-256_SSWU_RO_.json │ │ ├── BLS12381G2_XMD_SHA-256_SSWU_NU_.json │ │ ├── BLS12381G2_XMD_SHA-256_SSWU_RO_.json │ │ ├── README │ │ ├── expand_message_xmd_SHA256_256.json │ │ └── expand_message_xmd_SHA256_38.json │ └── zig/ │ ├── README.md │ ├── blst.zig │ ├── c.zig │ ├── generate.py │ └── tests.zig ├── build/ │ ├── assembly.S │ ├── bindings_trim.pl │ ├── cheri/ │ │ ├── add_mod_256-armv8.S │ │ ├── add_mod_384-armv8.S │ │ ├── ct_inverse_mod_256-armv8.S │ │ ├── ct_inverse_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-armv8.S │ │ ├── div3w-armv8.S │ │ ├── mul_mont_256-armv8.S │ │ ├── mul_mont_384-armv8.S │ │ └── sha256-armv8.S │ ├── coff/ │ │ ├── add_mod_256-armv8.S │ │ ├── add_mod_256-x86_64.s │ │ ├── add_mod_384-armv8.S │ │ ├── add_mod_384-x86_64.s │ │ ├── add_mod_384x384-x86_64.s │ │ ├── ct_inverse_mod_256-armv8.S │ │ ├── ct_inverse_mod_256-x86_64.s │ │ ├── ct_inverse_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-x86_64.s │ │ ├── ctq_inverse_mod_384-x86_64.s │ │ ├── ctx_inverse_mod_384-x86_64.s │ │ ├── div3w-armv8.S │ │ ├── div3w-x86_64.s │ │ ├── mul_mont_256-armv8.S │ │ ├── mul_mont_384-armv8.S │ │ ├── mulq_mont_256-x86_64.s │ │ ├── mulq_mont_384-x86_64.s │ │ ├── mulx_mont_256-x86_64.s │ │ ├── mulx_mont_384-x86_64.s │ │ ├── sha256-armv8.S │ │ ├── sha256-portable-x86_64.s │ │ └── sha256-x86_64.s │ ├── elf/ │ │ ├── add_mod_256-armv8.S │ │ ├── add_mod_256-x86_64.s │ │ ├── add_mod_384-armv8.S │ │ ├── add_mod_384-x86_64.s │ │ ├── add_mod_384x384-x86_64.s │ │ ├── ct_inverse_mod_256-armv8.S │ │ ├── ct_inverse_mod_256-x86_64.s │ │ ├── ct_inverse_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-x86_64.s │ │ ├── ctq_inverse_mod_384-x86_64.s │ │ ├── ctx_inverse_mod_384-x86_64.s │ │ ├── div3w-armv8.S │ │ ├── div3w-x86_64.s │ │ ├── mul_mont_256-armv8.S │ │ ├── mul_mont_384-armv8.S │ │ ├── mulq_mont_256-x86_64.s │ │ ├── mulq_mont_384-x86_64.s │ │ ├── mulx_mont_256-x86_64.s │ │ ├── mulx_mont_384-x86_64.s │ │ ├── sha256-armv8.S │ │ ├── sha256-portable-x86_64.s │ │ └── sha256-x86_64.s │ ├── mach-o/ │ │ ├── add_mod_256-armv8.S │ │ ├── add_mod_256-x86_64.s │ │ ├── add_mod_384-armv8.S │ │ ├── add_mod_384-x86_64.s │ │ ├── add_mod_384x384-x86_64.s │ │ ├── ct_inverse_mod_256-armv8.S │ │ ├── ct_inverse_mod_256-x86_64.s │ │ ├── ct_inverse_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-armv8.S │ │ ├── ct_is_square_mod_384-x86_64.s │ │ ├── ctq_inverse_mod_384-x86_64.s │ │ ├── ctx_inverse_mod_384-x86_64.s │ │ ├── div3w-armv8.S │ │ ├── div3w-x86_64.s │ │ ├── mul_mont_256-armv8.S │ │ ├── mul_mont_384-armv8.S │ │ ├── mulq_mont_256-x86_64.s │ │ ├── mulq_mont_384-x86_64.s │ │ ├── mulx_mont_256-x86_64.s │ │ ├── mulx_mont_384-x86_64.s │ │ ├── sha256-armv8.S │ │ ├── sha256-portable-x86_64.s │ │ └── sha256-x86_64.s │ ├── refresh.sh │ ├── srcroot.go │ └── win64/ │ ├── add_mod_256-armv8.asm │ ├── add_mod_256-x86_64.asm │ ├── add_mod_384-armv8.asm │ ├── add_mod_384-x86_64.asm │ ├── add_mod_384x384-x86_64.asm │ ├── blst.def │ ├── ct_inverse_mod_256-armv8.asm │ ├── ct_inverse_mod_256-x86_64.asm │ ├── ct_inverse_mod_384-armv8.asm │ ├── ct_is_square_mod_384-armv8.asm │ ├── ct_is_square_mod_384-x86_64.asm │ ├── ctq_inverse_mod_384-x86_64.asm │ ├── ctx_inverse_mod_384-x86_64.asm │ ├── div3w-armv8.asm │ ├── div3w-x86_64.asm │ ├── dll.c │ ├── mul_mont_256-armv8.asm │ ├── mul_mont_384-armv8.asm │ ├── mulq_mont_256-x86_64.asm │ ├── mulq_mont_384-x86_64.asm │ ├── mulx_mont_256-x86_64.asm │ ├── mulx_mont_384-x86_64.asm │ ├── sha256-armv8.asm │ └── sha256-x86_64.asm ├── build.bat ├── build.sh ├── build.zig ├── build.zig.zon └── src/ ├── aggregate.c ├── asm/ │ ├── add_mod_256-armv8.pl │ ├── add_mod_256-x86_64.pl │ ├── add_mod_384-armv8.pl │ ├── add_mod_384-x86_64.pl │ ├── add_mod_384x384-x86_64.pl │ ├── arm-xlate.pl │ ├── ct_inverse_mod_256-armv8.pl │ ├── ct_inverse_mod_256-x86_64.pl │ ├── ct_inverse_mod_384-armv8.pl │ ├── ct_is_square_mod_384-armv8.pl │ ├── ct_is_square_mod_384-x86_64.pl │ ├── ctq_inverse_mod_384-x86_64.pl │ ├── ctx_inverse_mod_384-x86_64.pl │ ├── div3w-armv8.pl │ ├── div3w-x86_64.pl │ ├── mul_mont_256-armv8.pl │ ├── mul_mont_384-armv8.pl │ ├── mulq_mont_256-x86_64.pl │ ├── mulq_mont_384-x86_64.pl │ ├── mulx_mont_256-x86_64.pl │ ├── mulx_mont_384-x86_64.pl │ ├── sha256-armv8.pl │ ├── sha256-portable-x86_64.pl │ ├── sha256-x86_64.pl │ └── x86_64-xlate.pl ├── blst_t.hpp ├── bulk_addition.c ├── bytes.h ├── client_min_pk.c ├── client_min_sig.c ├── consts.c ├── consts.h ├── cpuid.c ├── e1.c ├── e2.c ├── ec_mult.h ├── ec_ops.h ├── errors.h ├── exp.c ├── exports.c ├── fields.h ├── fp12_tower.c ├── hash_to_field.c ├── keygen.c ├── map_to_g1.c ├── map_to_g2.c ├── multi_scalar.c ├── no_asm.h ├── pairing.c ├── pentaroot-addchain.h ├── pentaroot.c ├── point.h ├── rb_tree.c ├── recip-addchain.h ├── recip.c ├── server.c ├── sha256.h ├── sqrt-addchain.h ├── sqrt.c ├── vect.c └── vect.h