update code
Project: http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/commit/70e3a3a3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/tree/70e3a3a3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/diff/70e3a3a3 Branch: refs/heads/master Commit: 70e3a3a36e5690921a5a757ee8a8f82f9d304df3 Parents: c8ca57b Author: Brian Spector <[email protected]> Authored: Wed Nov 7 23:48:43 2018 +0000 Committer: Brian Spector <[email protected]> Committed: Wed Nov 7 23:48:43 2018 +0000 ---------------------------------------------------------------------- AMCL.pdf | Bin 79801 -> 0 bytes CMakeLists.txt | 184 -- LICENSE | 202 -- LICENSE-2.0.TXT | 202 ++ NOTICE | 5 - NOTICE.txt | 5 + README.md | 42 - bigtobig.cpp | 292 --- bngen.cpp | 511 ----- bower.json | 47 - c/CMakeLists.txt | 291 --- c/DLLDefines.h | 49 - c/aes.c | 620 ------ c/amcl.h.in | 2511 ----------------------- c/amcl_.h | 2501 ----------------------- c/big.c | 1210 ----------- c/build_ec | 24 - c/build_ec.bat | 24 - c/build_pair | 28 - c/build_pair.bat | 28 - c/build_pair_ms.bat | 28 - c/ecdh.c | 576 ------ c/ecdh.h | 204 -- c/ecp.c | 1091 ---------- c/ecp2.c | 666 ------ c/ff.c | 1050 ---------- c/fp.c | 559 ----- c/fp12.c | 688 ------- c/fp2.c | 421 ---- c/fp4.c | 636 ------ c/gcm.c | 368 ---- c/hash.c | 171 -- c/maxstack.c | 62 - c/mpin.c | 1153 ----------- c/mpin.h | 379 ---- c/oct.c | 388 ---- c/pair.c | 652 ------ c/rand.c | 161 -- c/readme.txt | 62 - c/rom.c | 852 -------- c/rsa.c | 304 --- c/rsa.h | 96 - c/testecdh.c | 175 -- c/testecm.c | 124 -- c/testmpin.c | 290 --- c/testrsa.c | 79 - c/tests/CMakeLists.txt | 84 - c/tests/config.h.in | 2 - c/tests/test_ecdh.c | 168 -- c/tests/test_ecm.c | 118 -- c/tests/test_mpin.c | 243 --- c/tests/test_mpin_bad_pin.c | 256 --- c/tests/test_mpin_bad_token.c | 255 --- c/tests/test_mpin_expired_tp.c | 255 --- c/tests/test_mpin_good.c | 259 --- c/tests/test_mpin_random.c | 298 --- c/tests/test_mpin_sign.c | 324 --- c/tests/test_mpin_tp.c | 266 --- c/tests/test_mpinfull.c | 307 --- c/tests/test_mpinfullSingle.c | 296 --- c/tests/test_mpinfull_random.c | 349 ---- c/tests/test_rsa.c | 82 - c/tests/test_version.c | 35 - c/tests/test_wcc.c | 208 -- c/tests/test_wcc_gcm.c | 105 - c/tests/test_wcc_random.c | 469 ----- c/testwcc.c | 340 ---- c/testwcc_dta.c | 438 ---- c/testwcc_tp.c | 357 ---- c/utils.c | 97 - c/utils.h | 30 - c/version.c | 32 - c/version.h | 30 - c/wcc.c | 823 -------- c/wcc.h | 105 - cmake_uninstall.cmake.in | 23 - cs/AES.cs | 531 ----- cs/BIG.cs | 1145 ----------- cs/DBIG.cs | 374 ---- cs/ECDH.cs | 778 ------- cs/ECP.cs | 1216 ----------- cs/ECP2.cs | 771 ------- cs/FF.cs | 1084 ---------- cs/FP.cs | 368 ---- cs/FP12.cs | 769 ------- cs/FP2.cs | 428 ---- cs/FP4.cs | 633 ------ cs/GCM.cs | 500 ----- cs/HASH.cs | 240 --- cs/MPIN.cs | 916 --------- cs/PAIR.cs | 586 ------ cs/RAND.cs | 200 -- cs/ROM.cs | 434 ---- cs/RSA.cs | 443 ---- cs/RectangularArrays.cs | 29 - cs/StringHelperClass.cs | 90 - cs/TestECDH.cs | 210 -- cs/TestECM.cs | 141 -- cs/TestMPIN.cs | 298 --- cs/TestRSA.cs | 72 - cs/readme.txt | 30 - data/icon.bmp | Bin 129738 -> 0 bytes data/icon.ico | Bin 133982 -> 0 bytes docs/AMCL.dox | 266 --- docs/CMakeLists.txt | 11 - docs/Doxyfile.in | 1796 ---------------- docs/README.txt | 16 - docs/latex/README.txt | 3 - docs/latex/amcl.bib | 156 -- docs/latex/amcl.tex | 416 ---- docs/latex/clint.eps | 682 ------- docs/latex/llncs.cls | 1190 ----------- docs/latex/words.eps | 469 ----- ecgen.cpp | 340 ---- go/amcl-cgo/README.txt | 9 - go/amcl-cgo/crypto.go | 828 -------- go/amcl-cgo/crypto_test.go | 1175 ----------- go/amcl-go/AES.go | 634 ------ go/amcl-go/BIG.go | 956 --------- go/amcl-go/DBIG.go | 260 --- go/amcl-go/ECDH.go | 657 ------ go/amcl-go/ECP.go | 1076 ---------- go/amcl-go/ECP2.go | 672 ------ go/amcl-go/FF.go | 926 --------- go/amcl-go/FP.go | 288 --- go/amcl-go/FP12.go | 654 ------ go/amcl-go/FP2.go | 324 --- go/amcl-go/FP4.go | 522 ----- go/amcl-go/GCM.go | 472 ----- go/amcl-go/HASH.go | 215 -- go/amcl-go/MPIN.go | 807 -------- go/amcl-go/MPIN_test.go | 898 -------- go/amcl-go/PAIR.go | 541 ----- go/amcl-go/RAND.go | 187 -- go/amcl-go/ROM.go | 353 ---- go/amcl-go/RSA.go | 373 ---- go/amcl-go/UTILS.go | 45 - go/amcl-go/UTILS_test.go | 71 - go/amcl-go/crypto.go | 222 -- go/amcl-go/crypto_test.go | 1194 ----------- go/examples-cgo/README.txt | 5 - go/examples-cgo/mpin.go | 221 -- go/examples-cgo/mpinTwoPass.go | 227 --- go/examples-cgo/mpinfull.go | 293 --- go/examples-cgo/mpinfullAnon.go | 295 --- go/examples-cgo/timempin.go | 84 - go/examples-go/ecdh.go | 180 -- go/examples-go/generateRandom.go | 48 - go/examples-go/mpin.go | 248 --- go/examples-go/mpinTwoPass.go | 207 -- go/examples-go/mpinTwoPassWrap.go | 228 --- go/examples-go/mpinfull.go | 269 --- go/examples-go/mpinfullWrap.go | 293 --- go/examples-go/otp.go | 48 - go/examples-go/pbkdf2.go | 88 - go/examples-go/rsa.go | 71 - go/examples-go/timempin.go | 96 - go/examples-go/timempinWrap.go | 84 - go/readme.txt | 28 - java/AES.java | 648 ------ java/BIG.java | 919 --------- java/DBIG.java | 286 --- java/ECDH.java | 531 ----- java/ECP.java | 920 --------- java/ECP2.java | 623 ------ java/FF.java | 974 --------- java/FP.java | 327 --- java/FP12.java | 643 ------ java/FP2.java | 389 ---- java/FP4.java | 583 ------ java/GCM.java | 374 ---- java/HASH.java | 215 -- java/MPIN.java | 746 ------- java/PAIR.java | 539 ----- java/RAND.java | 161 -- java/ROM.java | 385 ---- java/RSA.java | 318 --- java/TestECDH.java | 175 -- java/TestECM.java | 126 -- java/TestMPIN.java | 262 --- java/TestRSA.java | 66 - java/readme.txt | 32 - java64/AES.java | 648 ------ java64/BIG.java | 902 -------- java64/DBIG.java | 307 --- java64/ECDH.java | 528 ----- java64/ECP.java | 929 --------- java64/ECP2.java | 626 ------ java64/FF.java | 974 --------- java64/FP.java | 324 --- java64/FP12.java | 640 ------ java64/FP2.java | 391 ---- java64/FP4.java | 585 ------ java64/GCM.java | 374 ---- java64/HASH.java | 215 -- java64/MPIN.java | 746 ------- java64/PAIR.java | 537 ----- java64/RAND.java | 161 -- java64/ROM.java | 381 ---- java64/RSA.java | 319 --- java64/TestECDH.java | 175 -- java64/TestECM.java | 126 -- java64/TestMPIN.java | 263 --- java64/TestRSA.java | 66 - java64/readme.txt | 32 - js/AES.js | 424 ---- js/BIG.js | 953 --------- js/DBIG.js | 248 --- js/ECDH.js | 537 ----- js/ECP.js | 898 -------- js/ECP2.js | 604 ------ js/FF.js | 928 --------- js/FP.js | 329 --- js/FP12.js | 558 ----- js/FP2.js | 321 --- js/FP4.js | 501 ----- js/GCM.js | 304 --- js/HASH.js | 174 -- js/MPIN.js | 800 -------- js/MPINAuth.js | 517 ----- js/PAIR.js | 506 ----- js/RAND.js | 148 -- js/ROM.js | 620 ------ js/RSA.js | 331 --- js/TestECDH.html | 137 -- js/TestECM.html | 95 - js/TestMPIN.html | 310 --- js/TestRSA.html | 78 - js/readme.txt | 28 - js/tests/BNCX.json | 1 - js/tests/BNCXOnePass.json | 1 - js/tests/README.md | 25 - js/tests/config.js | 20 - js/tests/find_duplicates.py | 40 - js/tests/run_test.sh | 68 - js/tests/test_add_shares.js | 89 - js/tests/test_onepass.js | 94 - js/tests/test_pass1.js | 84 - js/tests/test_pass2.js | 79 - js/tests/test_randomX.js | 98 - js/tests/test_sha256.js | 92 - js/tests/test_token.js | 72 - linux.md | 55 - mac.md | 56 - pythonCFFI/CMakeLists.txt | 138 -- pythonCFFI/README.md | 15 - pythonCFFI/TestMPIN.py | 326 --- pythonCFFI/TestMPINAnon.py | 326 --- pythonCFFI/TestMPINAnonInstall.py | 703 ------- pythonCFFI/TestMPINInstall.py | 703 ------- pythonCFFI/TimeMPIN.py | 331 --- pythonCFFI/TimeMPINFull.py | 444 ---- pythonCFFI/mpin.py | 572 ------ pythonCFFI/wcc.py | 478 ----- readme.txt | 41 + swift/TestECDH.swift | 164 -- swift/TestECM.swift | 112 - swift/TestMPIN.swift | 253 --- swift/TestRSA.swift | 78 - swift/aes.swift | 586 ------ swift/big.swift | 920 --------- swift/dbig.swift | 222 -- swift/ecdh.swift | 531 ----- swift/ecp.swift | 923 --------- swift/ecp2.swift | 614 ------ swift/ff.swift | 918 --------- swift/fp.swift | 290 --- swift/fp12.swift | 581 ------ swift/fp2.swift | 329 --- swift/fp4.swift | 513 ----- swift/gcm.swift | 314 --- swift/hash.swift | 188 -- swift/main.swift | 30 - swift/mpin.swift | 728 ------- swift/pair.swift | 501 ----- swift/rand.swift | 131 -- swift/readme.txt | 45 - swift/rom.swift | 296 --- swift/rsa.swift | 323 --- testVectors/mpin/BNCX.json | 1 - testVectors/mpin/BNCXOnePass.json | 1 - version22/amcl22.pdf | Bin 0 -> 419918 bytes version22/bigtobig.cpp | 292 +++ version22/blsgen.cpp | 194 ++ version22/bngen.cpp | 251 +++ version22/c/CARSK.pem | 54 + version22/c/aes.c | 702 +++++++ version22/c/amcl.h | 2935 +++++++++++++++++++++++++++ version22/c/arch.h | 119 ++ version22/c/benchtest_ec.c | 212 ++ version22/c/benchtest_pair.c | 257 +++ version22/c/big.c | 1525 ++++++++++++++ version22/c/build_ec | 22 + version22/c/build_ec.bat | 22 + version22/c/build_pair | 27 + version22/c/build_pair.bat | 27 + version22/c/ca.crt | 23 + version22/c/eccert.pem | 17 + version22/c/ecdh.c | 751 +++++++ version22/c/ecdh.h | 206 ++ version22/c/ecp.c | 1176 +++++++++++ version22/c/ecp2.c | 696 +++++++ version22/c/faster.c | 98 + version22/c/faster.txt | 25 + version22/c/ff.c | 1150 +++++++++++ version22/c/fp.c | 608 ++++++ version22/c/fp12.c | 727 +++++++ version22/c/fp2.c | 435 ++++ version22/c/fp4.c | 651 ++++++ version22/c/gcm.c | 411 ++++ version22/c/hash.c | 422 ++++ version22/c/maxstack.c | 62 + version22/c/mpin.c | 1212 +++++++++++ version22/c/mpin.h | 408 ++++ version22/c/oct.c | 428 ++++ version22/c/pair.c | 828 ++++++++ version22/c/rand.c | 172 ++ version22/c/randapi.c | 15 + version22/c/randapi.h | 20 + version22/c/readme.txt | 77 + version22/c/rom.c | 1206 +++++++++++ version22/c/rsa.c | 394 ++++ version22/c/rsa.h | 99 + version22/c/testecdh.c | 207 ++ version22/c/testmpin.c | 313 +++ version22/c/testrsa.c | 104 + version22/c/x509.c | 1079 ++++++++++ version22/c/x509.h | 113 ++ version22/check.cpp | 100 + version22/cs/readme.txt | 36 + version22/ecgen.cpp | 125 ++ version22/go/AES.go | 634 ++++++ version22/go/BIG.go | 850 ++++++++ version22/go/BenchtestEC.go | 154 ++ version22/go/BenchtestPAIR.go | 206 ++ version22/go/DBIG.go | 256 +++ version22/go/ECDH.go | 547 +++++ version22/go/ECP.go | 893 ++++++++ version22/go/ECP2.go | 568 ++++++ version22/go/FF.go | 905 +++++++++ version22/go/FP.go | 279 +++ version22/go/FP12.go | 551 +++++ version22/go/FP2.go | 300 +++ version22/go/FP4.go | 479 +++++ version22/go/GCM.go | 337 +++ version22/go/HASH256.go | 192 ++ version22/go/HASH384.go | 204 ++ version22/go/HASH512.go | 204 ++ version22/go/MPIN.go | 769 +++++++ version22/go/PAIR.go | 641 ++++++ version22/go/RAND.go | 153 ++ version22/go/ROM32.go | 825 ++++++++ version22/go/ROM64.go | 826 ++++++++ version22/go/RSA.go | 363 ++++ version22/go/TestECDH.go | 164 ++ version22/go/TestMPIN.go | 241 +++ version22/go/TestRSA.go | 98 + version22/go/readme.txt | 50 + version22/java/AES.java | 695 +++++++ version22/java/BIG32.java | 1016 ++++++++++ version22/java/BIG64.java | 1040 ++++++++++ version22/java/BenchtestEC.java | 160 ++ version22/java/BenchtestPAIR.java | 208 ++ version22/java/DBIG32.java | 308 +++ version22/java/DBIG64.java | 306 +++ version22/java/ECDH.java | 581 ++++++ version22/java/ECP.java | 917 +++++++++ version22/java/ECP2.java | 624 ++++++ version22/java/FF.java | 941 +++++++++ version22/java/FP.java | 345 ++++ version22/java/FP12.java | 641 ++++++ version22/java/FP2.java | 393 ++++ version22/java/FP4.java | 584 ++++++ version22/java/GCM.java | 374 ++++ version22/java/HASH256.java | 216 ++ version22/java/HASH384.java | 227 +++ version22/java/HASH512.java | 229 +++ version22/java/MPIN.java | 853 ++++++++ version22/java/PAIR.java | 685 +++++++ version22/java/RAND.java | 161 ++ version22/java/ROM32.java | 714 +++++++ version22/java/ROM64.java | 703 +++++++ version22/java/RSA.java | 362 ++++ version22/java/TestECDH.java | 179 ++ version22/java/TestMPIN.java | 270 +++ version22/java/TestRSA.java | 92 + version22/java/readme.txt | 61 + version22/java/rsa_private_key.java | 13 + version22/java/rsa_public_key.java | 11 + version22/js/AES.js | 634 ++++++ version22/js/BIG.js | 1037 ++++++++++ version22/js/BenchtestEC.html | 162 ++ version22/js/BenchtestPAIR.html | 226 +++ version22/js/DBIG.js | 284 +++ version22/js/ECDH.js | 585 ++++++ version22/js/ECP.js | 903 ++++++++ version22/js/ECP2.js | 604 ++++++ version22/js/FF.js | 947 +++++++++ version22/js/FP.js | 360 ++++ version22/js/FP12.js | 558 +++++ version22/js/FP2.js | 321 +++ version22/js/FP4.js | 501 +++++ version22/js/GCM.js | 305 +++ version22/js/HASH256.js | 180 ++ version22/js/HASH384.js | 238 +++ version22/js/HASH512.js | 236 +++ version22/js/MPIN.js | 933 +++++++++ version22/js/PAIR.js | 650 ++++++ version22/js/RAND.js | 148 ++ version22/js/ROM.js | 716 +++++++ version22/js/RSA.js | 392 ++++ version22/js/TestECDH.html | 143 ++ version22/js/TestMPIN.html | 330 +++ version22/js/TestRSA.html | 115 ++ version22/js/UInt64.js | 54 + version22/js/readme.txt | 41 + version22/rust/.gitignore | 5 + version22/rust/Cargo.toml | 24 + version22/rust/readme.txt | 56 + version22/rust/src/aes.rs | 628 ++++++ version22/rust/src/big.rs | 1227 +++++++++++ version22/rust/src/dbig.rs | 249 +++ version22/rust/src/ecdh.rs | 585 ++++++ version22/rust/src/ecp.rs | 955 +++++++++ version22/rust/src/ecp2.rs | 677 ++++++ version22/rust/src/ff.rs | 944 +++++++++ version22/rust/src/fp.rs | 354 ++++ version22/rust/src/fp12.rs | 628 ++++++ version22/rust/src/fp2.rs | 366 ++++ version22/rust/src/fp4.rs | 563 +++++ version22/rust/src/gcm.rs | 356 ++++ version22/rust/src/hash256.rs | 182 ++ version22/rust/src/hash384.rs | 188 ++ version22/rust/src/hash512.rs | 189 ++ version22/rust/src/lib.rs | 36 + version22/rust/src/mpin.rs | 768 +++++++ version22/rust/src/pair.rs | 674 ++++++ version22/rust/src/rand.rs | 147 ++ version22/rust/src/rom32.rs | 349 ++++ version22/rust/src/rom64.rs | 348 ++++ version22/rust/src/rsa.rs | 372 ++++ version22/rust/tests/benchtest_ec.rs | 185 ++ version22/rust/tests/benchtest_pair.rs | 245 +++ version22/rust/tests/test_ecdh.rs | 180 ++ version22/rust/tests/test_mpin.rs | 217 ++ version22/rust/tests/test_rsa.rs | 109 + version22/swift/BenchtestEC.swift | 161 ++ version22/swift/BenchtestPAIR.swift | 206 ++ version22/swift/TestECDH.swift | 167 ++ version22/swift/TestMPIN.swift | 259 +++ version22/swift/TestRSA.swift | 100 + version22/swift/aes.swift | 639 ++++++ version22/swift/big.swift | 1169 +++++++++++ version22/swift/dbig.swift | 265 +++ version22/swift/ecdh.swift | 587 ++++++ version22/swift/ecp.swift | 923 +++++++++ version22/swift/ecp2.swift | 618 ++++++ version22/swift/ff.swift | 927 +++++++++ version22/swift/fp.swift | 309 +++ version22/swift/fp12.swift | 584 ++++++ version22/swift/fp2.swift | 329 +++ version22/swift/fp4.swift | 517 +++++ version22/swift/gcm.swift | 326 +++ version22/swift/hash256.swift | 188 ++ version22/swift/hash384.swift | 198 ++ version22/swift/hash512.swift | 198 ++ version22/swift/main.swift | 13 + version22/swift/mpin.swift | 833 ++++++++ version22/swift/pair.swift | 592 ++++++ version22/swift/rand.swift | 131 ++ version22/swift/readme.txt | 135 ++ version22/swift/rom32.swift | 645 ++++++ version22/swift/rom64.swift | 258 +++ version22/swift/rsa.swift | 400 ++++ version3/amcl3.pdf | Bin 0 -> 299401 bytes version3/bestpair.cpp | 623 ++++++ version3/bigtobig.cpp | 292 +++ version3/c/aes.c | 704 +++++++ version3/c/amcl.h | 590 ++++++ version3/c/arch.h | 129 ++ version3/c/benchtest_all.c | 1019 ++++++++++ version3/c/big.c | 1535 ++++++++++++++ version3/c/big.h | 610 ++++++ version3/c/config16.py | 367 ++++ version3/c/config32.py | 645 ++++++ version3/c/config64.py | 639 ++++++ version3/c/config_big.h | 38 + version3/c/config_curve.h | 44 + version3/c/config_ff.h | 38 + version3/c/config_field.h | 34 + version3/c/ecdh.c | 424 ++++ version3/c/ecdh.h | 146 ++ version3/c/ecdh_support.c | 352 ++++ version3/c/ecdh_support.h | 114 ++ version3/c/ecp.c | 1468 ++++++++++++++ version3/c/ecp.h | 314 +++ version3/c/ecp2.c | 912 +++++++++ version3/c/ecp2.h | 220 ++ version3/c/ecp4.c | 1068 ++++++++++ version3/c/ecp4.h | 232 +++ version3/c/ecp8.c | 1311 ++++++++++++ version3/c/ecp8.h | 246 +++ version3/c/faster.c | 97 + version3/c/faster.txt | 29 + version3/c/fastest.c | 59 + version3/c/fastest.txt | 28 + version3/c/ff.c | 1155 +++++++++++ version3/c/ff.h | 296 +++ version3/c/fp.c | 878 ++++++++ version3/c/fp.h | 245 +++ version3/c/fp12.c | 984 +++++++++ version3/c/fp12.h | 216 ++ version3/c/fp16.c | 693 +++++++ version3/c/fp16.h | 260 +++ version3/c/fp2.c | 489 +++++ version3/c/fp2.h | 240 +++ version3/c/fp24.c | 1123 ++++++++++ version3/c/fp24.h | 196 ++ version3/c/fp4.c | 800 ++++++++ version3/c/fp4.h | 305 +++ version3/c/fp48.c | 1385 +++++++++++++ version3/c/fp48.h | 196 ++ version3/c/fp8.c | 795 ++++++++ version3/c/fp8.h | 294 +++ version3/c/gcm.c | 411 ++++ version3/c/hash.c | 607 ++++++ version3/c/mpin.c | 995 +++++++++ version3/c/mpin.h | 345 ++++ version3/c/mpin192.c | 975 +++++++++ version3/c/mpin192.h | 339 ++++ version3/c/mpin256.c | 998 +++++++++ version3/c/mpin256.h | 339 ++++ version3/c/newhope.c | 513 +++++ version3/c/newhope.h | 51 + version3/c/oct.c | 429 ++++ version3/c/pair.c | 1027 ++++++++++ version3/c/pair.h | 103 + version3/c/pair192.c | 752 +++++++ version3/c/pair192.h | 77 + version3/c/pair256.c | 864 ++++++++ version3/c/pair256.h | 77 + version3/c/pbc_support.c | 180 ++ version3/c/pbc_support.h | 96 + version3/c/rand.c | 172 ++ version3/c/randapi.c | 15 + version3/c/randapi.h | 46 + version3/c/readme.txt | 75 + version3/c/rom_curve_ANSSI.c | 33 + version3/c/rom_curve_BLS24.c | 67 + version3/c/rom_curve_BLS381.c | 62 + version3/c/rom_curve_BLS383.c | 62 + version3/c/rom_curve_BLS461.c | 59 + version3/c/rom_curve_BLS48.c | 88 + version3/c/rom_curve_BN254.c | 80 + version3/c/rom_curve_BN254CX.c | 81 + version3/c/rom_curve_BRAINPOOL.c | 36 + version3/c/rom_curve_C25519.c | 27 + version3/c/rom_curve_C41417.c | 35 + version3/c/rom_curve_ED25519.c | 45 + version3/c/rom_curve_FP256BN.c | 86 + version3/c/rom_curve_FP512BN.c | 87 + version3/c/rom_curve_GOLDILOCKS.c | 37 + version3/c/rom_curve_HIFIVE.c | 37 + version3/c/rom_curve_NIST256.c | 37 + version3/c/rom_curve_NIST384.c | 36 + version3/c/rom_curve_NIST521.c | 35 + version3/c/rom_curve_NUMS256E.c | 43 + version3/c/rom_curve_NUMS256W.c | 34 + version3/c/rom_curve_NUMS384E.c | 34 + version3/c/rom_curve_NUMS384W.c | 34 + version3/c/rom_curve_NUMS512E.c | 33 + version3/c/rom_curve_NUMS512W.c | 34 + version3/c/rom_curve_SECP256K1.c | 39 + version3/c/rom_field_25519.c | 33 + version3/c/rom_field_256PME.c | 28 + version3/c/rom_field_256PMW.c | 26 + version3/c/rom_field_384PM.c | 25 + version3/c/rom_field_512PM.c | 25 + version3/c/rom_field_ANSSI.c | 25 + version3/c/rom_field_BLS24.c | 32 + version3/c/rom_field_BLS381.c | 30 + version3/c/rom_field_BLS383.c | 30 + version3/c/rom_field_BLS461.c | 31 + version3/c/rom_field_BLS48.c | 32 + version3/c/rom_field_BN254.c | 37 + version3/c/rom_field_BN254CX.c | 38 + version3/c/rom_field_BRAINPOOL.c | 25 + version3/c/rom_field_C41417.c | 25 + version3/c/rom_field_FP256BN.c | 36 + version3/c/rom_field_FP512BN.c | 38 + version3/c/rom_field_GOLDILOCKS.c | 30 + version3/c/rom_field_HIFIVE.c | 27 + version3/c/rom_field_NIST256.c | 27 + version3/c/rom_field_NIST384.c | 27 + version3/c/rom_field_NIST521.c | 25 + version3/c/rom_field_SECP256K1.c | 28 + version3/c/rsa.c | 162 ++ version3/c/rsa.h | 110 + version3/c/rsa_support.c | 237 +++ version3/c/rsa_support.h | 62 + version3/c/testall.c | 1627 +++++++++++++++ version3/c/testnhs.c | 71 + version3/c/x509.c | 1097 ++++++++++ version3/c/x509.h | 109 + version3/check.cpp | 108 + version3/cpp/aes.cpp | 706 +++++++ version3/cpp/amcl.h | 585 ++++++ version3/cpp/arch.h | 98 + version3/cpp/benchtest_all.cpp | 973 +++++++++ version3/cpp/big.cpp | 1508 ++++++++++++++ version3/cpp/big.h | 595 ++++++ version3/cpp/config16.py | 370 ++++ version3/cpp/config32.py | 641 ++++++ version3/cpp/config64.py | 641 ++++++ version3/cpp/config_big.h | 12 + version3/cpp/config_curve.h | 47 + version3/cpp/config_ff.h | 13 + version3/cpp/config_field.h | 15 + version3/cpp/ecdh.cpp | 435 ++++ version3/cpp/ecdh.h | 154 ++ version3/cpp/ecdh_support.cpp | 351 ++++ version3/cpp/ecdh_support.h | 84 + version3/cpp/ecp.cpp | 1467 +++++++++++++ version3/cpp/ecp.h | 293 +++ version3/cpp/ecp2.cpp | 922 +++++++++ version3/cpp/ecp2.h | 203 ++ version3/cpp/ecp4.cpp | 1074 ++++++++++ version3/cpp/ecp4.h | 243 +++ version3/cpp/ecp8.cpp | 1318 ++++++++++++ version3/cpp/ecp8.h | 253 +++ version3/cpp/ff.cpp | 1181 +++++++++++ version3/cpp/ff.h | 276 +++ version3/cpp/fp.cpp | 878 ++++++++ version3/cpp/fp.h | 229 +++ version3/cpp/fp12.cpp | 1005 +++++++++ version3/cpp/fp12.h | 194 ++ version3/cpp/fp16.cpp | 697 +++++++ version3/cpp/fp16.h | 264 +++ version3/cpp/fp2.cpp | 486 +++++ version3/cpp/fp2.h | 219 ++ version3/cpp/fp24.cpp | 1126 ++++++++++ version3/cpp/fp24.h | 200 ++ version3/cpp/fp4.cpp | 808 ++++++++ version3/cpp/fp4.h | 286 +++ version3/cpp/fp48.cpp | 1389 +++++++++++++ version3/cpp/fp48.h | 199 ++ version3/cpp/fp8.cpp | 800 ++++++++ version3/cpp/fp8.h | 301 +++ version3/cpp/gcm.cpp | 413 ++++ version3/cpp/hash.cpp | 599 ++++++ version3/cpp/mpin.cpp | 1012 +++++++++ version3/cpp/mpin.h | 340 ++++ version3/cpp/mpin192.cpp | 985 +++++++++ version3/cpp/mpin192.h | 340 ++++ version3/cpp/mpin256.cpp | 1006 +++++++++ version3/cpp/mpin256.h | 340 ++++ version3/cpp/newhope.cpp | 515 +++++ version3/cpp/newhope.h | 54 + version3/cpp/oct.cpp | 431 ++++ version3/cpp/pair.cpp | 983 +++++++++ version3/cpp/pair.h | 80 + version3/cpp/pair192.cpp | 758 +++++++ version3/cpp/pair192.h | 80 + version3/cpp/pair256.cpp | 878 ++++++++ version3/cpp/pair256.h | 80 + version3/cpp/pbc_support.cpp | 179 ++ version3/cpp/pbc_support.h | 66 + version3/cpp/rand.cpp | 174 ++ version3/cpp/randapi.cpp | 17 + version3/cpp/randapi.h | 24 + version3/cpp/readme.txt | 61 + version3/cpp/rom_curve_ANSSI.cpp | 42 + version3/cpp/rom_curve_BLS24.cpp | 78 + version3/cpp/rom_curve_BLS381.cpp | 64 + version3/cpp/rom_curve_BLS383.cpp | 68 + version3/cpp/rom_curve_BLS461.cpp | 69 + version3/cpp/rom_curve_BLS48.cpp | 95 + version3/cpp/rom_curve_BN254.cpp | 89 + version3/cpp/rom_curve_BN254CX.cpp | 83 + version3/cpp/rom_curve_BRAINPOOL.cpp | 43 + version3/cpp/rom_curve_C25519.cpp | 36 + version3/cpp/rom_curve_C41417.cpp | 42 + version3/cpp/rom_curve_ED25519.cpp | 54 + version3/cpp/rom_curve_FP256BN.cpp | 86 + version3/cpp/rom_curve_FP512BN.cpp | 88 + version3/cpp/rom_curve_GOLDILOCKS.cpp | 43 + version3/cpp/rom_curve_HIFIVE.cpp | 43 + version3/cpp/rom_curve_NIST256.cpp | 44 + version3/cpp/rom_curve_NIST384.cpp | 42 + version3/cpp/rom_curve_NIST521.cpp | 42 + version3/cpp/rom_curve_NUMS256E.cpp | 53 + version3/cpp/rom_curve_NUMS256W.cpp | 44 + version3/cpp/rom_curve_NUMS384E.cpp | 42 + version3/cpp/rom_curve_NUMS384W.cpp | 42 + version3/cpp/rom_curve_NUMS512E.cpp | 42 + version3/cpp/rom_curve_NUMS512W.cpp | 42 + version3/cpp/rom_curve_SECP256K1.cpp | 45 + version3/cpp/rom_field_ANSSI.cpp | 34 + version3/cpp/rom_field_BLS24.cpp | 37 + version3/cpp/rom_field_BLS381.cpp | 39 + version3/cpp/rom_field_BLS383.cpp | 39 + version3/cpp/rom_field_BLS461.cpp | 40 + version3/cpp/rom_field_BLS48.cpp | 38 + version3/cpp/rom_field_BN254.cpp | 48 + version3/cpp/rom_field_BN254CX.cpp | 49 + version3/cpp/rom_field_BRAINPOOL.cpp | 34 + version3/cpp/rom_field_C41417.cpp | 34 + version3/cpp/rom_field_F25519.cpp | 43 + version3/cpp/rom_field_F256PME.cpp | 41 + version3/cpp/rom_field_F256PMW.cpp | 36 + version3/cpp/rom_field_F384PM.cpp | 35 + version3/cpp/rom_field_F512PM.cpp | 35 + version3/cpp/rom_field_FP256BN.cpp | 45 + version3/cpp/rom_field_FP512BN.cpp | 47 + version3/cpp/rom_field_GOLDILOCKS.cpp | 38 + version3/cpp/rom_field_HIFIVE.cpp | 35 + version3/cpp/rom_field_NIST256.cpp | 35 + version3/cpp/rom_field_NIST384.cpp | 35 + version3/cpp/rom_field_NIST521.cpp | 34 + version3/cpp/rom_field_SECP256K1.cpp | 38 + version3/cpp/rsa.cpp | 164 ++ version3/cpp/rsa.h | 106 + version3/cpp/rsa_support.cpp | 239 +++ version3/cpp/rsa_support.h | 49 + version3/cpp/testall.cpp | 1643 +++++++++++++++ version3/cpp/testnhs.cpp | 73 + version3/cpp/x509.cpp | 1097 ++++++++++ version3/cpp/x509.h | 115 ++ version3/curves.txt | 35 + version3/go/AES.go | 634 ++++++ version3/go/ARCH32.go | 28 + version3/go/ARCH64.go | 26 + version3/go/BIG32.go | 961 +++++++++ version3/go/BIG64.go | 963 +++++++++ version3/go/BenchtestALL.go | 881 ++++++++ version3/go/DBIG.go | 274 +++ version3/go/ECDH.go | 565 ++++++ version3/go/ECP.go | 1038 ++++++++++ version3/go/ECP2.go | 701 +++++++ version3/go/ECP4.go | 711 +++++++ version3/go/ECP8.go | 862 ++++++++ version3/go/FF32.go | 943 +++++++++ version3/go/FF64.go | 943 +++++++++ version3/go/FP.go | 556 +++++ version3/go/FP12.go | 765 +++++++ version3/go/FP16.go | 527 +++++ version3/go/FP2.go | 333 +++ version3/go/FP24.go | 885 ++++++++ version3/go/FP4.go | 590 ++++++ version3/go/FP48.go | 998 +++++++++ version3/go/FP8.go | 606 ++++++ version3/go/GCM.go | 337 +++ version3/go/HASH256.go | 193 ++ version3/go/HASH384.go | 206 ++ version3/go/HASH512.go | 206 ++ version3/go/MPIN.go | 755 +++++++ version3/go/MPIN192.go | 760 +++++++ version3/go/MPIN256.go | 728 +++++++ version3/go/NHS.go | 539 +++++ version3/go/PAIR.go | 777 +++++++ version3/go/PAIR192.go | 574 ++++++ version3/go/PAIR256.go | 563 +++++ version3/go/RAND.go | 153 ++ version3/go/ROM_ANSSI_32.go | 36 + version3/go/ROM_ANSSI_64.go | 36 + version3/go/ROM_BLS24_32.go | 58 + version3/go/ROM_BLS24_64.go | 58 + version3/go/ROM_BLS381_32.go | 56 + version3/go/ROM_BLS381_64.go | 58 + version3/go/ROM_BLS383_32.go | 55 + version3/go/ROM_BLS383_64.go | 55 + version3/go/ROM_BLS461_32.go | 54 + version3/go/ROM_BLS461_64.go | 54 + version3/go/ROM_BLS48_32.go | 66 + version3/go/ROM_BLS48_64.go | 66 + version3/go/ROM_BN254CX_32.go | 56 + version3/go/ROM_BN254CX_64.go | 56 + version3/go/ROM_BN254_32.go | 56 + version3/go/ROM_BN254_64.go | 56 + version3/go/ROM_BRAINPOOL_32.go | 38 + version3/go/ROM_BRAINPOOL_64.go | 38 + version3/go/ROM_C25519_32.go | 36 + version3/go/ROM_C25519_64.go | 36 + version3/go/ROM_C41417_32.go | 37 + version3/go/ROM_C41417_64.go | 36 + version3/go/ROM_ED25519_32.go | 37 + version3/go/ROM_ED25519_64.go | 38 + version3/go/ROM_FP256BN_32.go | 56 + version3/go/ROM_FP256BN_64.go | 54 + version3/go/ROM_FP512BN_32.go | 57 + version3/go/ROM_FP512BN_64.go | 55 + version3/go/ROM_GOLDILOCKS_32.go | 36 + version3/go/ROM_GOLDILOCKS_64.go | 37 + version3/go/ROM_HIFIVE_32.go | 36 + version3/go/ROM_HIFIVE_64.go | 36 + version3/go/ROM_NIST256_32.go | 36 + version3/go/ROM_NIST256_64.go | 36 + version3/go/ROM_NIST384_32.go | 36 + version3/go/ROM_NIST384_64.go | 36 + version3/go/ROM_NIST521_32.go | 37 + version3/go/ROM_NIST521_64.go | 37 + version3/go/ROM_NUMS256E_32.go | 36 + version3/go/ROM_NUMS256E_64.go | 36 + version3/go/ROM_NUMS256W_32.go | 36 + version3/go/ROM_NUMS256W_64.go | 37 + version3/go/ROM_NUMS384E_32.go | 36 + version3/go/ROM_NUMS384E_64.go | 36 + version3/go/ROM_NUMS384W_32.go | 36 + version3/go/ROM_NUMS384W_64.go | 36 + version3/go/ROM_NUMS512E_32.go | 36 + version3/go/ROM_NUMS512E_64.go | 36 + version3/go/ROM_NUMS512W_32.go | 37 + version3/go/ROM_NUMS512W_64.go | 36 + version3/go/ROM_SEC256K1_64.go | 39 + version3/go/ROM_SECP256K1_32.go | 39 + version3/go/RSA.go | 361 ++++ version3/go/SHA3.go | 258 +++ version3/go/TestALL.go | 1315 ++++++++++++ version3/go/TestNHS.go | 64 + version3/go/config32.py | 357 ++++ version3/go/config64.py | 357 ++++ version3/go/readme.txt | 49 + version3/java/AES.java | 695 +++++++ version3/java/BIG32.java | 934 +++++++++ version3/java/BIG64.java | 933 +++++++++ version3/java/DBIG32.java | 282 +++ version3/java/DBIG64.java | 280 +++ version3/java/ECDH.java | 608 ++++++ version3/java/ECP.java | 1112 ++++++++++ version3/java/ECP2.java | 798 ++++++++ version3/java/ECP4.java | 770 +++++++ version3/java/ECP8.java | 932 +++++++++ version3/java/FF32.java | 1029 ++++++++++ version3/java/FF64.java | 1028 ++++++++++ version3/java/FP12.java | 910 +++++++++ version3/java/FP16.java | 565 ++++++ version3/java/FP2.java | 425 ++++ version3/java/FP24.java | 854 ++++++++ version3/java/FP32.java | 678 +++++++ version3/java/FP4.java | 724 +++++++ version3/java/FP48.java | 1060 ++++++++++ version3/java/FP64.java | 682 +++++++ version3/java/FP8.java | 658 ++++++ version3/java/GCM.java | 376 ++++ version3/java/HASH256.java | 218 ++ version3/java/HASH384.java | 229 +++ version3/java/HASH512.java | 232 +++ version3/java/MPIN.java | 823 ++++++++ version3/java/MPIN192.java | 806 ++++++++ version3/java/MPIN256.java | 815 ++++++++ version3/java/NHS.java | 577 ++++++ version3/java/OLDECP.java | 1044 ++++++++++ version3/java/OLDECP2.java | 781 +++++++ version3/java/PAIR.java | 817 ++++++++ version3/java/PAIR192.java | 550 +++++ version3/java/PAIR256.java | 628 ++++++ version3/java/RAND.java | 163 ++ version3/java/README.md | 27 + version3/java/ROM_ANSSI_32.java | 42 + version3/java/ROM_ANSSI_64.java | 43 + version3/java/ROM_BLS24_32.java | 60 + version3/java/ROM_BLS24_64.java | 60 + version3/java/ROM_BLS381_32.java | 57 + version3/java/ROM_BLS381_64.java | 57 + version3/java/ROM_BLS383_32.java | 58 + version3/java/ROM_BLS383_64.java | 55 + version3/java/ROM_BLS461_32.java | 56 + version3/java/ROM_BLS461_64.java | 56 + version3/java/ROM_BLS48_32.java | 68 + version3/java/ROM_BLS48_64.java | 68 + version3/java/ROM_BN254CX_32.java | 57 + version3/java/ROM_BN254CX_64.java | 58 + version3/java/ROM_BN254_32.java | 55 + version3/java/ROM_BN254_64.java | 55 + version3/java/ROM_BRAINPOOL_32.java | 44 + version3/java/ROM_BRAINPOOL_64.java | 43 + version3/java/ROM_C25519_32.java | 41 + version3/java/ROM_C25519_64.java | 42 + version3/java/ROM_C41417_32.java | 41 + version3/java/ROM_C41417_64.java | 44 + version3/java/ROM_ED25519_32.java | 41 + version3/java/ROM_ED25519_64.java | 43 + version3/java/ROM_FP256BN_32.java | 56 + version3/java/ROM_FP256BN_64.java | 55 + version3/java/ROM_FP512BN_32.java | 55 + version3/java/ROM_FP512BN_64.java | 56 + version3/java/ROM_GOLDILOCKS_32.java | 43 + version3/java/ROM_GOLDILOCKS_64.java | 44 + version3/java/ROM_HIFIVE_32.java | 42 + version3/java/ROM_HIFIVE_64.java | 43 + version3/java/ROM_NIST256_32.java | 45 + version3/java/ROM_NIST256_64.java | 43 + version3/java/ROM_NIST384_32.java | 43 + version3/java/ROM_NIST384_64.java | 44 + version3/java/ROM_NIST521_32.java | 43 + version3/java/ROM_NIST521_64.java | 44 + version3/java/ROM_NUMS256E_32.java | 39 + version3/java/ROM_NUMS256E_64.java | 42 + version3/java/ROM_NUMS256W_32.java | 44 + version3/java/ROM_NUMS256W_64.java | 45 + version3/java/ROM_NUMS384E_32.java | 40 + version3/java/ROM_NUMS384E_64.java | 40 + version3/java/ROM_NUMS384W_32.java | 43 + version3/java/ROM_NUMS384W_64.java | 55 + version3/java/ROM_NUMS512E_32.java | 40 + version3/java/ROM_NUMS512E_64.java | 40 + version3/java/ROM_NUMS512W_32.java | 40 + version3/java/ROM_NUMS512W_64.java | 41 + version3/java/ROM_SECP256K1_32.java | 45 + version3/java/ROM_SECP256K1_64.java | 43 + version3/java/RSA.java | 369 ++++ version3/java/SHA3.java | 255 +++ version3/java/TestECDH.java | 192 ++ version3/java/TestMPIN.java | 297 +++ version3/java/TestMPIN192.java | 297 +++ version3/java/TestMPIN256.java | 297 +++ version3/java/TestNHS.java | 70 + version3/java/TestRSA.java | 111 + version3/java/TesttimeECDH.java | 103 + version3/java/TesttimeMPIN.java | 195 ++ version3/java/TesttimeMPIN192.java | 195 ++ version3/java/TesttimeMPIN256.java | 195 ++ version3/java/TesttimeRSA.java | 99 + version3/java/config32.py | 387 ++++ version3/java/config64.py | 386 ++++ version3/java/pom.xml | 19 + version3/java/private_key.java | 16 + version3/java/public_key.java | 14 + version3/js/BenchtestALL.html | 1076 ++++++++++ version3/js/TestALL.html | 1527 ++++++++++++++ version3/js/TestNHS.html | 56 + version3/js/aes.js | 705 +++++++ version3/js/big.js | 1552 ++++++++++++++ version3/js/ctx.js | 611 ++++++ version3/js/ecdh.js | 771 +++++++ version3/js/ecp.js | 1398 +++++++++++++ version3/js/ecp2.js | 921 +++++++++ version3/js/ecp4.js | 885 ++++++++ version3/js/ecp8.js | 1061 ++++++++++ version3/js/ff.js | 1002 +++++++++ version3/js/fp.js | 708 +++++++ version3/js/fp12.js | 893 ++++++++ version3/js/fp16.js | 573 ++++++ version3/js/fp2.js | 405 ++++ version3/js/fp24.js | 963 +++++++++ version3/js/fp4.js | 642 ++++++ version3/js/fp48.js | 1271 ++++++++++++ version3/js/fp8.js | 660 ++++++ version3/js/gcm.js | 428 ++++ version3/js/hash256.js | 198 ++ version3/js/hash384.js | 275 +++ version3/js/hash512.js | 277 +++ version3/js/include.html | 25 + version3/js/mpin.js | 1059 ++++++++++ version3/js/mpin192.js | 1046 ++++++++++ version3/js/mpin256.js | 1080 ++++++++++ version3/js/nhs.js | 565 ++++++ version3/js/pair.js | 774 +++++++ version3/js/pair192.js | 545 +++++ version3/js/pair256.js | 622 ++++++ version3/js/rand.js | 184 ++ version3/js/readme.txt | 48 + version3/js/rom_curve.js | 1127 ++++++++++ version3/js/rom_field.js | 425 ++++ version3/js/rsa.js | 515 +++++ version3/js/sha3.js | 264 +++ version3/js/uint64.js | 61 + version3/python/big.py | 159 ++ version3/python/bls381.py | 40 + version3/python/bls383.py | 40 + version3/python/bn254.py | 38 + version3/python/bn254cx.py | 39 + version3/python/c25519.py | 19 + version3/python/config.py | 175 ++ version3/python/constants.py | 17 + version3/python/ecdh.py | 162 ++ version3/python/ecp.py | 634 ++++++ version3/python/ecp2.py | 290 +++ version3/python/ed25519.py | 19 + version3/python/fp.py | 97 + version3/python/fp12.py | 314 +++ version3/python/fp2.py | 153 ++ version3/python/fp4.py | 144 ++ version3/python/goldilocks.py | 19 + version3/python/mpin.py | 227 +++ version3/python/nist256.py | 19 + version3/python/nist384.py | 19 + version3/python/nist521.py | 20 + version3/python/pair.py | 317 +++ version3/python/readme.txt | 39 + version3/python/sec256k1.py | 19 + version3/python/test.py | 122 ++ version3/readme.txt | 17 + version3/romgen.cpp | 1561 ++++++++++++++ version3/rust/BenchtestALL.rs | 970 +++++++++ version3/rust/TestALL.rs | 1235 +++++++++++ version3/rust/TestNHS.rs | 76 + version3/rust/aes.rs | 628 ++++++ version3/rust/arch32.rs | 22 + version3/rust/arch64.rs | 22 + version3/rust/big.rs | 1078 ++++++++++ version3/rust/config32.py | 400 ++++ version3/rust/config64.py | 399 ++++ version3/rust/dbig.rs | 272 +++ version3/rust/ecdh.rs | 604 ++++++ version3/rust/ecp.rs | 1065 ++++++++++ version3/rust/ecp2.rs | 671 ++++++ version3/rust/ecp4.rs | 702 +++++++ version3/rust/ecp8.rs | 873 ++++++++ version3/rust/ff.rs | 1018 ++++++++++ version3/rust/fp.rs | 625 ++++++ version3/rust/fp12.rs | 798 ++++++++ version3/rust/fp16.rs | 553 +++++ version3/rust/fp2.rs | 353 ++++ version3/rust/fp24.rs | 840 ++++++++ version3/rust/fp4.rs | 624 ++++++ version3/rust/fp48.rs | 1069 ++++++++++ version3/rust/fp8.rs | 635 ++++++ version3/rust/gcm.rs | 356 ++++ version3/rust/hash256.rs | 177 ++ version3/rust/hash384.rs | 189 ++ version3/rust/hash512.rs | 190 ++ version3/rust/lib.rs | 10 + version3/rust/mod.rs | 11 + version3/rust/modecc.rs | 8 + version3/rust/modpf.rs | 11 + version3/rust/modpf192.rs | 12 + version3/rust/modpf256.rs | 13 + version3/rust/modrsa.rs | 6 + version3/rust/mpin.rs | 800 ++++++++ version3/rust/mpin192.rs | 780 +++++++ version3/rust/mpin256.rs | 791 ++++++++ version3/rust/nhs.rs | 511 +++++ version3/rust/pair.rs | 764 +++++++ version3/rust/pair192.rs | 494 +++++ version3/rust/pair256.rs | 574 ++++++ version3/rust/rand.rs | 147 ++ version3/rust/readme.txt | 40 + version3/rust/rom_anssi_32.rs | 39 + version3/rust/rom_anssi_64.rs | 39 + version3/rust/rom_bls24_32.rs | 59 + version3/rust/rom_bls24_64.rs | 59 + version3/rust/rom_bls381_32.rs | 57 + version3/rust/rom_bls381_64.rs | 56 + version3/rust/rom_bls383_32.rs | 55 + version3/rust/rom_bls383_64.rs | 55 + version3/rust/rom_bls461_32.rs | 55 + version3/rust/rom_bls461_64.rs | 56 + version3/rust/rom_bls48_32.rs | 67 + version3/rust/rom_bls48_64.rs | 67 + version3/rust/rom_bn254CX_32.rs | 56 + version3/rust/rom_bn254CX_64.rs | 58 + version3/rust/rom_bn254_32.rs | 53 + version3/rust/rom_bn254_64.rs | 53 + version3/rust/rom_brainpool_32.rs | 40 + version3/rust/rom_brainpool_64.rs | 40 + version3/rust/rom_c25519_32.rs | 39 + version3/rust/rom_c25519_64.rs | 38 + version3/rust/rom_c41417_32.rs | 38 + version3/rust/rom_c41417_64.rs | 38 + version3/rust/rom_ed25519_32.rs | 38 + version3/rust/rom_ed25519_64.rs | 38 + version3/rust/rom_fp256bn_32.rs | 54 + version3/rust/rom_fp256bn_64.rs | 54 + version3/rust/rom_fp512bn_32.rs | 53 + version3/rust/rom_fp512bn_64.rs | 53 + version3/rust/rom_goldilocks_32.rs | 38 + version3/rust/rom_goldilocks_64.rs | 38 + version3/rust/rom_hifive_32.rs | 38 + version3/rust/rom_hifive_64.rs | 38 + version3/rust/rom_nist256_32.rs | 41 + version3/rust/rom_nist256_64.rs | 40 + version3/rust/rom_nist384_32.rs | 38 + version3/rust/rom_nist384_64.rs | 38 + version3/rust/rom_nist521_32.rs | 39 + version3/rust/rom_nist521_64.rs | 38 + version3/rust/rom_nums256e_32.rs | 40 + version3/rust/rom_nums256e_64.rs | 42 + version3/rust/rom_nums256w_32.rs | 38 + version3/rust/rom_nums256w_64.rs | 40 + version3/rust/rom_nums384e_32.rs | 40 + version3/rust/rom_nums384e_64.rs | 39 + version3/rust/rom_nums384w_32.rs | 39 + version3/rust/rom_nums384w_64.rs | 38 + version3/rust/rom_nums512e_32.rs | 37 + version3/rust/rom_nums512e_64.rs | 38 + version3/rust/rom_nums512w_32.rs | 39 + version3/rust/rom_nums512w_64.rs | 38 + version3/rust/rom_secp256k1_32.rs | 40 + version3/rust/rom_secp256k1_64.rs | 39 + version3/rust/rsa.rs | 362 ++++ version3/rust/sha3.rs | 242 +++ version3/swift/BenchtestALL.swift | 888 ++++++++ version3/swift/TestALL.swift | 1425 +++++++++++++ version3/swift/TestNHS.swift | 70 + version3/swift/aes.swift | 641 ++++++ version3/swift/big.swift | 1150 +++++++++++ version3/swift/config32.py | 354 ++++ version3/swift/config64.py | 352 ++++ version3/swift/dbig.swift | 291 +++ version3/swift/ecdh.swift | 595 ++++++ version3/swift/ecp.swift | 1070 ++++++++++ version3/swift/ecp2.swift | 735 +++++++ version3/swift/ecp4.swift | 739 +++++++ version3/swift/ecp8.swift | 894 ++++++++ version3/swift/ff.swift | 996 +++++++++ version3/swift/fp.swift | 616 ++++++ version3/swift/fp12.swift | 815 ++++++++ version3/swift/fp16.swift | 576 ++++++ version3/swift/fp2.swift | 359 ++++ version3/swift/fp24.swift | 852 ++++++++ version3/swift/fp4.swift | 632 ++++++ version3/swift/fp48.swift | 1071 ++++++++++ version3/swift/fp8.swift | 658 ++++++ version3/swift/gcm.swift | 326 +++ version3/swift/hash256.swift | 188 ++ version3/swift/hash384.swift | 198 ++ version3/swift/hash512.swift | 198 ++ version3/swift/mpin.swift | 822 ++++++++ version3/swift/mpin192.swift | 828 ++++++++ version3/swift/mpin256.swift | 816 ++++++++ version3/swift/nhs.swift | 550 +++++ version3/swift/pair.swift | 724 +++++++ version3/swift/pair192.swift | 512 +++++ version3/swift/pair256.swift | 587 ++++++ version3/swift/rand.swift | 136 ++ version3/swift/readme.txt | 43 + version3/swift/rom_anssi.swift | 73 + version3/swift/rom_bls24.swift | 104 + version3/swift/rom_bls381.swift | 105 + version3/swift/rom_bls383.swift | 101 + version3/swift/rom_bls461.swift | 107 + version3/swift/rom_bls48.swift | 120 ++ version3/swift/rom_bn254.swift | 104 + version3/swift/rom_bn254CX.swift | 106 + version3/swift/rom_brainpool.swift | 74 + version3/swift/rom_c25519.swift | 72 + version3/swift/rom_c41417.swift | 71 + version3/swift/rom_ed25519.swift | 72 + version3/swift/rom_fp256bn.swift | 102 + version3/swift/rom_fp512bn.swift | 105 + version3/swift/rom_goldilocks.swift | 70 + version3/swift/rom_hifive.swift | 72 + version3/swift/rom_nist256.swift | 70 + version3/swift/rom_nist384.swift | 70 + version3/swift/rom_nist521.swift | 71 + version3/swift/rom_nums256e.swift | 72 + version3/swift/rom_nums256w.swift | 72 + version3/swift/rom_nums384e.swift | 72 + version3/swift/rom_nums384w.swift | 73 + version3/swift/rom_nums512e.swift | 75 + version3/swift/rom_nums512w.swift | 72 + version3/swift/rom_secp256k1.swift | 70 + version3/swift/rsa.swift | 390 ++++ version3/swift/sha3.swift | 264 +++ version3/wasm/config.py | 669 ++++++ version3/wasm/readme.txt | 72 + windows.md | 70 - 1158 files changed, 297899 insertions(+), 106873 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/blob/70e3a3a3/AMCL.pdf ---------------------------------------------------------------------- diff --git a/AMCL.pdf b/AMCL.pdf deleted file mode 100644 index 9d9ab9a..0000000 Binary files a/AMCL.pdf and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/blob/70e3a3a3/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index a6fd195..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,184 +0,0 @@ -cmake_minimum_required (VERSION 2.8) -project (AMCL) -enable_testing() - -set(AMCL_VERSION_MAJOR "1") -set(AMCL_VERSION_MINOR "1") -set(AMCL_VERSION_PATCH "0") -set(PROJECT_VERSION "${AMCL_VERSION_MAJOR}.${AMCL_VERSION_MINOR}.${AMCL_VERSION_PATCH}") -message(STATUS "PROJECT_VERSION='${PROJECT_VERSION}'") -message(STATUS "Generator - ${CMAKE_GENERATOR}") - -# Add options for build -option (BUILD_SHARED_LIBS "Build Shared Libraries" ON) -option (BUILD_PYTHON "Build Python" ON) -option (BUILD_MPIN "Build MPIN" ON) -option (BUILD_WCC "Build WCC" OFF) -option (BUILD_DOXYGEN "Build Doxygen" ON) -option (USE_PATENTS "Use alleged patents" ON) -option (USE_ANONYMOUS "Anonymous authenticaion for M-Pin Full" OFF) - -# Allow the developer to select if Dynamic or Static libraries are built -# Set the default LIB_TYPE variable to STATIC -SET (LIB_TYPE STATIC) -IF (BUILD_SHARED_LIBS) - # User wants to build Dynamic Libraries, so change the LIB_TYPE variable to CMake keyword 'SHARED' - SET (LIB_TYPE SHARED) -ENDIF (BUILD_SHARED_LIBS) - -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - # Mac OS X specific code - set(OS "Mac OS X") - # MACOSX_RPATH - cmake_policy(SET CMP0042 NEW) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - # Linux specific code - set(OS "Linux") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - -if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - # Windows specific code - set(OS "Windows") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - -# Select word length -set(WORD_LENGTH "32" CACHE STRING "Word length. See amcl.h.in for explanation") -set(Word_Length_Values "16;32;64") -set_property(CACHE WORD_LENGTH PROPERTY STRINGS ${Word_Length_Values}) -message(STATUS "WORD_LENGTH='${WORD_LENGTH}'") - -# Select Field -set(FIELD_CHOICE "BNCX" CACHE STRING "Choice of Field. See amcl.h.in for explanation") -set(Field_Values "BN;BNCX;BNT;BNT2;NIST;C25519;BRAINPOOL;ANSSI;MF254;MS255;MF256;MS256") -set_property(CACHE FIELD_CHOICE PROPERTY STRINGS ${Field_Values}) -message(STATUS "FIELD_CHOICE='${FIELD_CHOICE}'") - -# Select Curve type -set(CURVE_TYPE "WEIERSTRASS" CACHE STRING "Choice of Curve. See amcl.h.in for explanation") -set(Curve_Values "WEIERSTRASS;EDWARDS;MONTGOMERY") -set_property(CACHE CURVE_TYPE PROPERTY STRINGS ${Curve_Values}) -message(STATUS "CURVE_TYPE='${CURVE_TYPE}'") - -# configure amcl header file to pass CMake settings -# to the source code -configure_file ( - "${PROJECT_SOURCE_DIR}/c/amcl.h.in" - "${PROJECT_BINARY_DIR}/c/amcl.h" - ) - -if(NOT(FIELD_CHOICE MATCHES "BN")) - message(STATUS "Field choice prevents MPIN being built") - set(BUILD_MPIN OFF) - set(BUILD_WSS OFF) -endif(NOT(FIELD_CHOICE MATCHES "BN")) - -# test configuration -if(BUILD_MPIN OR BUILD_WCC) - set(MPIN_TIME_PERMIT_TESTS 10 CACHE STRING "Number of days in the future to test M-PIN time permits") - set(MPIN_RANDOM_TESTS 10 CACHE STRING "Number of random M-PIN tests") - message(STATUS "MPIN_TIME_PERMIT_TESTS=${MPIN_TIME_PERMIT_TESTS}") - message(STATUS "MPIN_RANDOM_TESTS=${MPIN_RANDOM_TESTS}") - # Configure test variables - configure_file ( - "${PROJECT_SOURCE_DIR}/c/tests/config.h.in" - "${PROJECT_BINARY_DIR}/c/tests/config.h" - ) -endif(BUILD_MPIN OR BUILD_WCC) - -# Set a default build type if none was specified -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - message(STATUS "Setting build type to 'Release' as none was specified.") - set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) - # Set the possible values of build type for cmake-gui - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") -endif() - -# Add subdirectories -add_subdirectory (c) - -# Only build Python for shared libs -if (NOT BUILD_SHARED_LIBS) - set(BUILD_PYTHON OFF) -endif (NOT BUILD_SHARED_LIBS) - -if (BUILD_PYTHON) - message(STATUS "Build Python CFFI") - execute_process (COMMAND python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process (COMMAND python -c "from distutils.sysconfig import get_python_lib; from os.path import dirname; print dirname(get_python_lib())" OUTPUT_VARIABLE PYTHON_SITE_LIB OUTPUT_STRIP_TRAILING_WHITESPACE) - - if((FIELD_CHOICE STREQUAL "BNCX") AND BUILD_MPIN) - file(COPY "${PROJECT_SOURCE_DIR}/testVectors/mpin/BNCX.json" DESTINATION "${PROJECT_BINARY_DIR}/pythonCFFI") - file(RENAME "${PROJECT_BINARY_DIR}/pythonCFFI/BNCX.json" "${PROJECT_BINARY_DIR}/pythonCFFI/MPINTestVectors.json") - endif((FIELD_CHOICE STREQUAL "BNCX") AND BUILD_MPIN) - add_subdirectory (pythonCFFI) -endif (BUILD_PYTHON) - -# Build Documentation -if (BUILD_DOXYGEN) - find_package(Doxygen QUIET) - if(DOXYGEN_FOUND) - add_subdirectory (docs) - else(DOXYGEN_FOUND) - message(STATUS "Doxygen not found. Documentation will not be built.") - endif(DOXYGEN_FOUND) -endif (BUILD_DOXYGEN) - -message(STATUS "Install ${CMAKE_INSTALL_PREFIX}") - -# uninstall target -configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) - -add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) - -# Build a CPack driven installer package -include (InstallRequiredSystemLibraries) -set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") -set(CPACK_PACKAGE_VERSION "${AMCL_VERSION_MAJOR}.${AMCL_VERSION_MINOR}.${AMCL_VERSION_PATCH}") -set(CPACK_PACKAGE_NAME "AMCL") -set(CPACK_PACKAGE_RELEASE 1) -set(CPACK_PACKAGE_CONTACT "[email protected]") -set(CPACK_PACKAGE_VENDOR "MIRACL") -if (BUILD_PYTHON) - set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.7.0") -endif (BUILD_PYTHON) -set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}") - -if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - # Linux specific code - set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) - # Prevents CPack from generating file conflicts - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX}") - list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX}/bin") - list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX}/include") - list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX}/lib") - list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${PYTHON_SITE_LIB}") - list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${PYTHON_SITE_PACKAGES}") - set(CPACK_GENERATOR "RPM") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - -if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - # Windows specific code - set(CPACK_PACKAGE_INSTALL_DIRECTORY "AMCL") - set(CPACK_NSIS_MODIFY_PATH ON) - set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/data\\\\icon.bmp") - set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/data\\\\icon.ico") - set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/data\\\\icon.ico") - set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.miracl.com") - set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.miracl.com") - set(CPACK_NSIS_CONTACT "[email protected]") -endif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - # Mac OS X specific code -endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - -include (CPack) - http://git-wip-us.apache.org/repos/asf/incubator-milagro-crypto/blob/70e3a3a3/LICENSE ---------------------------------------------------------------------- diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 19efef5..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 MIRACL UK Ltd - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License.
