From ffacf61e8a6855c009bb180a444e498d5de22b42 Mon Sep 17 00:00:00 2001 From: Mamy Ratsimbazafy Date: Sun, 27 Feb 2022 01:49:08 +0100 Subject: [PATCH] Don't dump all in "backend" (#184) * backend -> math * towers -> extension fields * move ISA and compiler specific code out of math/ * fix export --- README.md | 4 +- benchmarks/bench_blueprint.nim | 2 +- benchmarks/bench_ec_g1.nim | 8 +- benchmarks/bench_ec_g2.nim | 10 +- benchmarks/bench_elliptic_template.nim | 11 +- benchmarks/bench_fields_template.nim | 9 +- benchmarks/bench_fp.nim | 10 +- benchmarks/bench_fp12.nim | 4 +- benchmarks/bench_fp2.nim | 4 +- benchmarks/bench_fp4.nim | 4 +- benchmarks/bench_fp6.nim | 4 +- benchmarks/bench_fp_double_precision.nim | 7 +- benchmarks/bench_hash_to_curve.nim | 12 +- benchmarks/bench_pairing_bls12_377.nim | 6 +- benchmarks/bench_pairing_bls12_381.nim | 6 +- benchmarks/bench_pairing_bn254_nogami.nim | 6 +- benchmarks/bench_pairing_bn254_snarks.nim | 6 +- benchmarks/bench_pairing_template.nim | 15 +- benchmarks/bench_sha256.nim | 2 +- benchmarks/bench_summary_bls12_377.nim | 6 +- benchmarks/bench_summary_bls12_381.nim | 6 +- benchmarks/bench_summary_bn254_nogami.nim | 6 +- benchmarks/bench_summary_bn254_snarks.nim | 6 +- benchmarks/bench_summary_template.nim | 16 +- constantine.nimble | 246 +++++++++--------- constantine/backend/primitives/static_for.nim | 36 --- constantine/blssig_pop_on_bls12381_g2.nim | 21 +- constantine/ethereum_evm_precompiles.nim | 15 +- .../{backend => }/hash_to_curve/README.md | 0 .../hash_to_curve/h2c_hash_to_field.nim | 9 +- .../h2c_isogeny_maps.nim | 9 +- .../hash_to_curve/h2c_map_to_isocurve_swu.nim | 7 +- .../hash_to_curve/hash_to_curve.nim | 11 +- constantine/{backend => }/hashes.nim | 0 constantine/{backend => }/hashes/h_sha256.nim | 4 +- constantine/{backend => math}/arithmetic.nim | 0 .../{backend => math}/arithmetic/README.md | 0 .../limbs_asm_modular_dbl_prec_x86.nim | 3 +- .../assembly/limbs_asm_modular_x86.nim | 3 +- .../assembly/limbs_asm_mul_mont_x86.nim | 3 +- .../limbs_asm_mul_mont_x86_adx_bmi2.nim | 3 +- .../arithmetic/assembly/limbs_asm_mul_x86.nim | 3 +- .../assembly/limbs_asm_mul_x86_adx_bmi2.nim | 6 +- .../assembly/limbs_asm_redc_mont_x86.nim | 3 +- .../limbs_asm_redc_mont_x86_adx_bmi2.nim | 3 +- .../arithmetic/assembly/limbs_asm_x86.nim | 3 +- .../{backend => math}/arithmetic/bigints.nim | 4 +- .../arithmetic/bigints_montgomery.nim | 3 +- .../arithmetic/finite_fields.nim | 6 +- .../finite_fields_double_precision.nim | 4 +- .../arithmetic/finite_fields_square_root.nim | 4 +- .../{backend => math}/arithmetic/limbs.nim | 4 +- .../arithmetic/limbs_division.nim | 4 +- .../arithmetic/limbs_extmul.nim | 3 +- .../arithmetic/limbs_invmod.nim | 3 +- .../arithmetic/limbs_montgomery.nim | 3 +- .../arithmetic/limbs_unsaturated.nim | 4 +- .../{backend => math}/config/README.md | 0 .../{backend => math}/config/curves.nim | 0 .../config/curves_declaration.nim | 2 +- .../config/curves_derived.nim | 0 .../config/curves_parser_curve.nim | 0 .../config/curves_parser_field.nim | 0 .../config/curves_prop_curve.nim | 0 .../config/curves_prop_field_core.nim | 3 +- .../config/curves_prop_field_derived.nim | 3 +- .../{backend => math}/config/precompute.nim | 4 +- .../{backend => math}/config/type_bigint.nim | 2 +- .../{backend => math}/config/type_ff.nim | 2 +- .../{backend => math}/curves/README.md | 0 .../curves/bandersnatch_sqrt.nim | 2 +- .../curves/bls12_377_constants.nim | 2 +- .../curves/bls12_377_endomorphisms.nim | 2 +- .../curves/bls12_377_frobenius.nim | 4 +- .../curves/bls12_377_pairing.nim | 7 +- .../curves/bls12_377_sqrt.nim | 2 +- .../curves/bls12_377_subgroups.nim | 8 +- .../curves/bls12_381_constants.nim | 2 +- .../curves/bls12_381_endomorphisms.nim | 2 +- .../curves/bls12_381_frobenius.nim | 4 +- .../curves/bls12_381_g2_hash_to_curve.nim | 2 +- .../curves/bls12_381_generators.nim | 4 +- .../curves/bls12_381_pairing.nim | 7 +- .../curves/bls12_381_sqrt.nim | 0 .../curves/bls12_381_sqrt_fp2.nim | 2 +- .../curves/bls12_381_subgroups.nim | 8 +- .../curves/bn254_nogami_constants.nim | 2 +- .../curves/bn254_nogami_endomorphisms.nim | 2 +- .../curves/bn254_nogami_frobenius.nim | 4 +- .../curves/bn254_nogami_pairing.nim | 7 +- .../curves/bn254_nogami_sqrt.nim | 0 .../curves/bn254_nogami_sqrt_fp2.nim | 2 +- .../curves/bn254_nogami_subgroups.nim | 8 +- .../curves/bn254_snarks_constants.nim | 2 +- .../curves/bn254_snarks_endomorphisms.nim | 2 +- .../curves/bn254_snarks_frobenius.nim | 4 +- .../curves/bn254_snarks_pairing.nim | 7 +- .../curves/bn254_snarks_sqrt.nim | 0 .../curves/bn254_snarks_sqrt_fp2.nim | 2 +- .../curves/bn254_snarks_subgroups.nim | 8 +- .../curves/bw6_761_constants.nim | 0 .../curves/bw6_761_endomorphisms.nim | 2 +- .../curves/bw6_761_frobenius.nim | 6 +- .../curves/bw6_761_pairing.nim | 7 +- .../{backend => math}/curves/bw6_761_sqrt.nim | 0 .../curves/bw6_761_subgroups.nim | 8 +- .../curves/curve25519_sqrt.nim | 6 +- .../{backend => math}/curves/jubjub_sqrt.nim | 2 +- .../curves/zoo_constants.nim | 0 .../curves/zoo_endomorphisms.nim | 4 +- .../curves/zoo_frobenius.nim | 0 .../curves/zoo_generators.nim | 0 .../curves/zoo_hash_to_curve.nim | 0 .../{backend => math}/curves/zoo_pairings.nim | 0 .../curves/zoo_square_roots.nim | 4 +- .../curves/zoo_square_roots_fp2.nim | 0 .../curves/zoo_subgroups.nim | 0 .../{backend => math}/ec_shortweierstrass.nim | 0 .../{backend => math}/elliptic/README.md | 0 .../elliptic/ec_endomorphism_accel.nim | 8 +- .../elliptic/ec_scalar_mul.nim | 6 +- .../elliptic/ec_shortweierstrass_affine.nim | 8 +- .../elliptic/ec_shortweierstrass_jacobian.nim | 6 +- .../ec_shortweierstrass_projective.nim | 6 +- .../elliptic/ec_twistededwards_affine.nim | 8 +- .../elliptic/ec_twistededwards_projective.nim | 6 +- .../towers.nim => math/extension_fields.nim} | 6 +- .../extension_fields}/README.md | 0 .../assembly/fp2_asm_x86_adx_bmi2.nim | 4 +- .../extension_fields}/exponentiations.nim | 5 +- .../extension_fields}/square_root_fp2.nim | 6 +- .../extension_fields/towers.nim} | 6 +- constantine/{backend => math}/io/README.md | 0 .../{backend => math}/io/io_bigints.nim | 7 +- constantine/{backend => math}/io/io_ec.nim | 6 +- .../io/io_extfields.nim} | 6 +- .../{backend => math}/io/io_fields.nim | 5 +- .../isogeny => math/isogenies}/README.md | 0 .../isogeny => math/isogenies}/frobenius.nim | 4 +- .../{backend => math}/pairing/README.md | 0 .../pairing/cyclotomic_subgroup.nim | 8 +- .../{backend => math}/pairing/lines_eval.nim | 6 +- .../pairing/miller_loops.nim | 2 +- .../pairing/multi_pairing.md | 0 .../pairing/pairing_bls12.nim | 7 +- .../{backend => math}/pairing/pairing_bn.nim | 6 +- .../pairing/pairing_bw6_761.nim | 6 +- constantine/{backend => math}/pairings.nim | 2 +- .../primitives => platforms}/README.md | 0 .../common.nim => platforms/abstractions.nim} | 8 +- .../primitives => platforms}/bithacks.nim | 0 .../compilers}/addcarry_subborrow.nim | 2 +- .../compilers}/extended_precision.nim | 4 +- .../extended_precision_64bit_uint128.nim | 2 +- .../extended_precision_x86_64_gcc.nim | 2 +- .../extended_precision_x86_64_msvc.nim | 2 +- .../constant_time/ct_routines.nim} | 2 +- .../constant_time/ct_types.nim} | 0 .../constant_time}/multiplexers.nim | 2 +- .../{backend/io => platforms}/endians.nim | 2 +- .../isa}/cpuinfo_x86.nim | 0 .../isa}/macro_assembler_x86.nim | 0 .../{backend => platforms}/primitives.nim | 24 +- .../{backend => }/signatures/README.md | 0 .../signatures/bls_signatures.nim | 6 +- docs/optimizations.md | 2 +- helpers/prng_unsafe.nim | 12 +- helpers/static_for.nim | 8 + metering/m_pairings.nim | 10 +- research/kzg_poly_commit/fft_fr.nim | 9 +- research/kzg_poly_commit/fft_g1.nim | 11 +- research/kzg_poly_commit/fft_lut.nim | 7 +- .../kzg_poly_commit/kzg_single_proofs.nim | 10 +- research/kzg_poly_commit/polynomials.nim | 11 +- sage/derive_endomorphisms.sage | 2 +- sage/derive_frobenius.sage | 10 +- sage/derive_hash_to_curve.sage | 2 +- sage/derive_pairing.sage | 2 +- sage/derive_square_root.sage | 2 +- sage/g2_params.sage | 2 +- tests/{backend => math}/support/canaries.nim | 7 +- .../support/ec_reference_scalar_mult.nim | 4 +- tests/{backend => math}/t_bigints.nim | 7 +- .../t_bigints_mod_vs_gmp.nim | 8 +- .../t_bigints_mul_high_words_vs_gmp.nim | 7 +- .../t_bigints_mul_vs_gmp.nim | 7 +- .../{backend => math}/t_bigints_multimod.nim | 7 +- tests/{backend => math}/t_ec_conversion.nim | 6 +- tests/{backend => math}/t_ec_frobenius.nim | 11 +- .../{backend => math}/t_ec_sage_bls12_377.nim | 8 +- .../{backend => math}/t_ec_sage_bls12_381.nim | 8 +- .../t_ec_sage_bn254_nogami.nim | 8 +- .../t_ec_sage_bn254_snarks.nim | 8 +- .../t_ec_sage_bw6_761_g1.nim | 6 +- .../t_ec_sage_bw6_761_g2.nim | 6 +- .../{backend => math}/t_ec_sage_template.nim | 13 +- .../t_ec_shortw_jac_g1_add_double.nim | 4 +- .../t_ec_shortw_jac_g1_mixed_add.nim | 6 +- .../t_ec_shortw_jac_g1_mul_distri.nim | 4 +- .../t_ec_shortw_jac_g1_mul_sanity.nim | 8 +- .../t_ec_shortw_jac_g1_mul_vs_ref.nim | 4 +- ..._ec_shortw_jac_g2_add_double_bls12_377.nim | 6 +- ..._ec_shortw_jac_g2_add_double_bls12_381.nim | 6 +- ..._shortw_jac_g2_add_double_bn254_snarks.nim | 6 +- .../t_ec_shortw_jac_g2_add_double_bw6_761.nim | 4 +- ...t_ec_shortw_jac_g2_mixed_add_bls12_377.nim | 6 +- ...t_ec_shortw_jac_g2_mixed_add_bls12_381.nim | 6 +- ...c_shortw_jac_g2_mixed_add_bn254_snarks.nim | 6 +- .../t_ec_shortw_jac_g2_mixed_add_bw6_761.nim | 4 +- ..._ec_shortw_jac_g2_mul_distri_bls12_377.nim | 6 +- ..._ec_shortw_jac_g2_mul_distri_bls12_381.nim | 6 +- ..._shortw_jac_g2_mul_distri_bn254_snarks.nim | 6 +- .../t_ec_shortw_jac_g2_mul_distri_bw6_761.nim | 4 +- ..._ec_shortw_jac_g2_mul_sanity_bls12_377.nim | 6 +- ..._ec_shortw_jac_g2_mul_sanity_bls12_381.nim | 6 +- ..._shortw_jac_g2_mul_sanity_bn254_snarks.nim | 6 +- .../t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim | 4 +- ..._ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim | 6 +- ..._ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim | 6 +- ..._shortw_jac_g2_mul_vs_ref_bn254_snarks.nim | 6 +- .../t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim | 4 +- .../t_ec_shortw_prj_edge_cases.nim | 11 +- .../t_ec_shortw_prj_g1_add_double.nim | 4 +- .../t_ec_shortw_prj_g1_mixed_add.nim | 6 +- .../t_ec_shortw_prj_g1_mul_distri.nim | 4 +- .../t_ec_shortw_prj_g1_mul_sanity.nim | 8 +- .../t_ec_shortw_prj_g1_mul_vs_ref.nim | 4 +- ..._ec_shortw_prj_g2_add_double_bls12_377.nim | 6 +- ..._ec_shortw_prj_g2_add_double_bls12_381.nim | 6 +- ..._shortw_prj_g2_add_double_bn254_snarks.nim | 6 +- .../t_ec_shortw_prj_g2_add_double_bw6_761.nim | 4 +- ...t_ec_shortw_prj_g2_mixed_add_bls12_377.nim | 6 +- ...t_ec_shortw_prj_g2_mixed_add_bls12_381.nim | 6 +- ...c_shortw_prj_g2_mixed_add_bn254_snarks.nim | 6 +- .../t_ec_shortw_prj_g2_mixed_add_bw6_761.nim | 4 +- ..._ec_shortw_prj_g2_mul_distri_bls12_377.nim | 6 +- ..._ec_shortw_prj_g2_mul_distri_bls12_381.nim | 6 +- ..._shortw_prj_g2_mul_distri_bn254_snarks.nim | 6 +- .../t_ec_shortw_prj_g2_mul_distri_bw6_761.nim | 4 +- ..._ec_shortw_prj_g2_mul_sanity_bls12_377.nim | 6 +- ..._ec_shortw_prj_g2_mul_sanity_bls12_381.nim | 6 +- ..._shortw_prj_g2_mul_sanity_bn254_snarks.nim | 6 +- .../t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim | 4 +- ..._ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim | 6 +- ..._ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim | 6 +- ..._shortw_prj_g2_mul_vs_ref_bn254_snarks.nim | 6 +- .../t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim | 4 +- .../t_ec_subgroups_bls12_377.nim | 6 +- .../t_ec_subgroups_bls12_381.nim | 6 +- .../t_ec_subgroups_bn254_nogami.nim | 6 +- .../t_ec_subgroups_bn254_snarks.nim | 6 +- tests/{backend => math}/t_ec_template.nim | 15 +- .../t_ec_twedwards_prj_add_double.nim | 8 +- .../t_ec_twedwards_prj_mul_distri.nim | 8 +- .../t_ec_twedwards_prj_mul_sanity.nim | 8 +- .../t_ec_twedwards_prj_mul_vs_ref.nim | 8 +- tests/{backend => math}/t_finite_fields.nim | 18 +- .../{backend => math}/t_finite_fields.nim.cfg | 0 ...t_finite_fields_conditional_arithmetic.nim | 7 +- .../t_finite_fields_double_precision.nim | 31 +-- .../t_finite_fields_double_precision.nim.cfg | 0 .../t_finite_fields_mulsquare.nim | 17 +- .../t_finite_fields_mulsquare.nim.cfg | 0 .../t_finite_fields_powinv.nim | 12 +- .../t_finite_fields_powinv.nim.cfg | 0 .../t_finite_fields_sqrt.nim | 11 +- .../t_finite_fields_sqrt.nim.cfg | 0 .../t_finite_fields_vs_gmp.nim | 10 +- .../t_fp12_anti_regression.nim | 10 +- tests/{backend => math}/t_fp12_bls12_377.nim | 4 +- tests/{backend => math}/t_fp12_bls12_381.nim | 4 +- .../{backend => math}/t_fp12_bn254_snarks.nim | 4 +- .../t_fp12_exponentiation.nim | 10 +- tests/{backend => math}/t_fp12_frobenius.nim | 6 +- tests/{backend => math}/t_fp2.nim | 3 +- tests/{backend => math}/t_fp2_frobenius.nim | 6 +- tests/{backend => math}/t_fp2_sqrt.nim | 10 +- tests/{backend => math}/t_fp4.nim | 6 +- tests/{backend => math}/t_fp4_frobenius.nim | 6 +- tests/{backend => math}/t_fp6_bls12_377.nim | 4 +- tests/{backend => math}/t_fp6_bls12_381.nim | 4 +- .../{backend => math}/t_fp6_bn254_snarks.nim | 4 +- tests/{backend => math}/t_fp6_bw6_761.nim | 4 +- tests/{backend => math}/t_fp6_frobenius.nim | 6 +- tests/{backend => math}/t_fp_cubic_root.nim | 8 +- .../t_fp_tower_frobenius_template.nim | 11 +- .../{backend => math}/t_fp_tower_template.nim | 11 +- tests/{backend => math}/t_fr.nim | 7 +- tests/{backend => math}/t_hash_to_curve.nim | 14 +- tests/{backend => math}/t_hash_to_field.nim | 10 +- tests/{backend => math}/t_io_bigints.nim | 6 +- tests/{backend => math}/t_io_fields.nim | 8 +- tests/{backend => math}/t_io_fields.nim.cfg | 0 tests/{backend => math}/t_io_unsaturated.nim | 17 +- .../t_pairing_bls12_377_gt_subgroup.nim | 4 +- .../t_pairing_bls12_377_line_functions.nim | 14 +- .../t_pairing_bls12_377_optate.nim | 4 +- .../t_pairing_bls12_381_gt_subgroup.nim | 4 +- .../t_pairing_bls12_381_line_functions.nim | 14 +- .../t_pairing_bls12_381_multi.nim | 13 +- .../t_pairing_bls12_381_optate.nim | 4 +- .../t_pairing_bn254_nogami_gt_subgroup.nim | 4 +- .../t_pairing_bn254_nogami_optate.nim | 4 +- .../t_pairing_bn254_snarks_gt_subgroup.nim | 4 +- .../t_pairing_bn254_snarks_optate.nim | 4 +- .../t_pairing_bw6_761_gt_subgroup.nim | 4 +- .../t_pairing_bw6_761_optate.nim | 4 +- .../t_pairing_cyclotomic_subgroup.nim | 14 +- .../t_pairing_mul_fp12_by_lines.nim | 12 +- .../{backend => math}/t_pairing_template.nim | 23 +- tests/{backend => math}/t_primitives.nim | 3 +- .../t_primitives_extended_precision.nim | 3 +- .../vectors/tv_BLS12_377_scalar_mul_G1.json | 0 .../vectors/tv_BLS12_377_scalar_mul_G2.json | 0 .../vectors/tv_BLS12_381_scalar_mul_G1.json | 0 .../vectors/tv_BLS12_381_scalar_mul_G2.json | 0 .../tv_BN254_Nogami_scalar_mul_G1.json | 0 .../tv_BN254_Nogami_scalar_mul_G2.json | 0 .../tv_BN254_Snarks_scalar_mul_G1.json | 0 .../tv_BN254_Snarks_scalar_mul_G2.json | 0 .../vectors/tv_BW6_761_scalar_mul_G1.json | 0 .../vectors/tv_BW6_761_scalar_mul_G2.json | 0 ...7_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json | 0 ...8_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json | 0 .../README.md | 0 ...0000000000000000000000000000000000000.json | 0 ...6565656565656565656565656565656565656.json | 0 ...babababababababababababababababababab.json | 0 .../aggregate_infinity_signature.json | 0 .../aggregate/aggregate_na_signatures.json | 0 .../aggregate/aggregate_single_signature.json | 0 .../aggregate_verify_infinity_pubkey.json | 0 ...ify_na_pubkeys_and_infinity_signature.json | 0 ...te_verify_na_pubkeys_and_na_signature.json | 0 .../aggregate_verify_tampered_signature.json | 0 .../aggregate_verify_valid.json | 0 ...h_verify_invalid_forged_signature_set.json | 0 ...tch_verify_valid_simple_signature_set.json | 0 ...tion_fails_infinity_with_false_b_flag.json | 0 ...ation_fails_infinity_with_true_b_flag.json | 0 .../deserialization_fails_not_in_G1.json | 0 .../deserialization_fails_not_in_curve.json | 0 .../deserialization_fails_too_few_bytes.json | 0 .../deserialization_fails_too_many_bytes.json | 0 ...ion_fails_with_b_flag_and_a_flag_true.json | 0 ...ation_fails_with_b_flag_and_x_nonzero.json | 0 ...serialization_fails_with_wrong_c_flag.json | 0 ...erialization_fails_x_equal_to_modulus.json | 0 ...lization_fails_x_greater_than_modulus.json | 0 ...eserialization_succeeds_correct_point.json | 0 ...on_succeeds_infinity_with_true_b_flag.json | 0 ...tion_fails_infinity_with_false_b_flag.json | 0 ...ation_fails_infinity_with_true_b_flag.json | 0 .../deserialization_fails_not_in_G2.json | 0 .../deserialization_fails_not_in_curve.json | 0 .../deserialization_fails_too_few_bytes.json | 0 .../deserialization_fails_too_many_bytes.json | 0 ...ion_fails_with_b_flag_and_a_flag_true.json | 0 ...ation_fails_with_b_flag_and_x_nonzero.json | 0 ...serialization_fails_with_wrong_c_flag.json | 0 ...ialization_fails_xim_equal_to_modulus.json | 0 ...zation_fails_xim_greater_than_modulus.json | 0 ...ialization_fails_xre_equal_to_modulus.json | 0 ...zation_fails_xre_greater_than_modulus.json | 0 ...eserialization_succeeds_correct_point.json | 0 ...on_succeeds_infinity_with_true_b_flag.json | 0 ..._verify_extra_pubkey_4f079f946446fabf.json | 0 ..._verify_extra_pubkey_5a38e6b4017fe4dd.json | 0 ..._verify_extra_pubkey_a698ea45b109f303.json | 0 ...fast_aggregate_verify_infinity_pubkey.json | 0 ...ify_na_pubkeys_and_infinity_signature.json | 0 ...te_verify_na_pubkeys_and_na_signature.json | 0 ...y_tampered_signature_3d7576f3c0e3570a.json | 0 ...y_tampered_signature_5e745ad0c6199a6c.json | 0 ...y_tampered_signature_652ce62f09290811.json | 0 ...gregate_verify_valid_3d7576f3c0e3570a.json | 0 ...gregate_verify_valid_5e745ad0c6199a6c.json | 0 ...gregate_verify_valid_652ce62f09290811.json | 0 .../hash_to_G2__2782afaa8406d038.json | 0 .../hash_to_G2__7590bd067999bbfb.json | 0 .../hash_to_G2__a54942c8e365f378.json | 0 .../hash_to_G2__c938b486cf69e8f7.json | 0 .../sign/sign_case_11b8c7cad5238946.json | 0 .../sign/sign_case_142f678a8d05fcd1.json | 0 .../sign/sign_case_37286e1a6d1f6eb3.json | 0 .../sign/sign_case_7055381f640f2c1d.json | 0 .../sign/sign_case_84d45c9c7cca6b92.json | 0 .../sign/sign_case_8cd3d4d0d9a5b265.json | 0 .../sign/sign_case_c82df61aa3ee60fb.json | 0 .../sign/sign_case_d0e28d7e76eb6e9c.json | 0 .../sign/sign_case_f2ae1097e7d0e18b.json | 0 .../sign/sign_case_zero_privkey.json | 0 ...nfinity_pubkey_and_infinity_signature.json | 0 ...pered_signature_case_195246ee3bd3b6ec.json | 0 ...pered_signature_case_2ea479adf8c40300.json | 0 ...pered_signature_case_2f09d443ab8a3ac2.json | 0 ...pered_signature_case_3208262581c8fc09.json | 0 ...pered_signature_case_6b3b17f6962a490c.json | 0 ...pered_signature_case_6eeb7c52dfd9baf0.json | 0 ...pered_signature_case_8761a0b7e920c323.json | 0 ...pered_signature_case_d34885d766d5f705.json | 0 ...pered_signature_case_e8a50c445c855360.json | 0 .../verify_valid_case_195246ee3bd3b6ec.json | 0 .../verify_valid_case_2ea479adf8c40300.json | 0 .../verify_valid_case_2f09d443ab8a3ac2.json | 0 .../verify_valid_case_3208262581c8fc09.json | 0 .../verify_valid_case_6b3b17f6962a490c.json | 0 .../verify_valid_case_6eeb7c52dfd9baf0.json | 0 .../verify_valid_case_8761a0b7e920c323.json | 0 .../verify_valid_case_d34885d766d5f705.json | 0 .../verify_valid_case_e8a50c445c855360.json | 0 ...fy_wrong_pubkey_case_195246ee3bd3b6ec.json | 0 ...fy_wrong_pubkey_case_2ea479adf8c40300.json | 0 ...fy_wrong_pubkey_case_2f09d443ab8a3ac2.json | 0 ...fy_wrong_pubkey_case_3208262581c8fc09.json | 0 ...fy_wrong_pubkey_case_6b3b17f6962a490c.json | 0 ...fy_wrong_pubkey_case_6eeb7c52dfd9baf0.json | 0 ...fy_wrong_pubkey_case_8761a0b7e920c323.json | 0 ...fy_wrong_pubkey_case_d34885d766d5f705.json | 0 ...fy_wrong_pubkey_case_e8a50c445c855360.json | 0 ...rifycase_one_privkey_47117849458281be.json | 0 tests/t_blssig_pop_on_bls12381_g2.nim | 4 +- tests/t_ethereum_evm_precompiles.nim | 6 +- tests/t_hash_sha256_vs_openssl.nim | 2 +- 424 files changed, 971 insertions(+), 1000 deletions(-) delete mode 100644 constantine/backend/primitives/static_for.nim rename constantine/{backend => }/hash_to_curve/README.md (100%) rename constantine/{backend => }/hash_to_curve/h2c_hash_to_field.nim (97%) rename constantine/{backend/isogeny => hash_to_curve}/h2c_isogeny_maps.nim (97%) rename constantine/{backend => }/hash_to_curve/h2c_map_to_isocurve_swu.nim (98%) rename constantine/{backend => }/hash_to_curve/hash_to_curve.nim (97%) rename constantine/{backend => }/hashes.nim (100%) rename constantine/{backend => }/hashes/h_sha256.nim (99%) rename constantine/{backend => math}/arithmetic.nim (100%) rename constantine/{backend => math}/arithmetic/README.md (100%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_modular_x86.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_mul_mont_x86.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_mul_x86.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_redc_mont_x86.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim (99%) rename constantine/{backend => math}/arithmetic/assembly/limbs_asm_x86.nim (99%) rename constantine/{backend => math}/arithmetic/bigints.nim (99%) rename constantine/{backend => math}/arithmetic/bigints_montgomery.nim (99%) rename constantine/{backend => math}/arithmetic/finite_fields.nim (99%) rename constantine/{backend => math}/arithmetic/finite_fields_double_precision.nim (99%) rename constantine/{backend => math}/arithmetic/finite_fields_square_root.nim (99%) rename constantine/{backend => math}/arithmetic/limbs.nim (99%) rename constantine/{backend => math}/arithmetic/limbs_division.nim (99%) rename constantine/{backend => math}/arithmetic/limbs_extmul.nim (99%) rename constantine/{backend => math}/arithmetic/limbs_invmod.nim (99%) rename constantine/{backend => math}/arithmetic/limbs_montgomery.nim (99%) rename constantine/{backend => math}/arithmetic/limbs_unsaturated.nim (99%) rename constantine/{backend => math}/config/README.md (100%) rename constantine/{backend => math}/config/curves.nim (100%) rename constantine/{backend => math}/config/curves_declaration.nim (99%) rename constantine/{backend => math}/config/curves_derived.nim (100%) rename constantine/{backend => math}/config/curves_parser_curve.nim (100%) rename constantine/{backend => math}/config/curves_parser_field.nim (100%) rename constantine/{backend => math}/config/curves_prop_curve.nim (100%) rename constantine/{backend => math}/config/curves_prop_field_core.nim (96%) rename constantine/{backend => math}/config/curves_prop_field_derived.nim (98%) rename constantine/{backend => math}/config/precompute.nim (99%) rename constantine/{backend => math}/config/type_bigint.nim (98%) rename constantine/{backend => math}/config/type_ff.nim (98%) rename constantine/{backend => math}/curves/README.md (100%) rename constantine/{backend => math}/curves/bandersnatch_sqrt.nim (95%) rename constantine/{backend => math}/curves/bls12_377_constants.nim (97%) rename constantine/{backend => math}/curves/bls12_377_endomorphisms.nim (98%) rename constantine/{backend => math}/curves/bls12_377_frobenius.nim (99%) rename constantine/{backend => math}/curves/bls12_377_pairing.nim (98%) rename constantine/{backend => math}/curves/bls12_377_sqrt.nim (99%) rename constantine/{backend => math}/curves/bls12_377_subgroups.nim (98%) rename constantine/{backend => math}/curves/bls12_381_constants.nim (97%) rename constantine/{backend => math}/curves/bls12_381_endomorphisms.nim (98%) rename constantine/{backend => math}/curves/bls12_381_frobenius.nim (99%) rename constantine/{backend => math}/curves/bls12_381_g2_hash_to_curve.nim (99%) rename constantine/{backend => math}/curves/bls12_381_generators.nim (96%) rename constantine/{backend => math}/curves/bls12_381_pairing.nim (98%) rename constantine/{backend => math}/curves/bls12_381_sqrt.nim (100%) rename constantine/{backend => math}/curves/bls12_381_sqrt_fp2.nim (98%) rename constantine/{backend => math}/curves/bls12_381_subgroups.nim (98%) rename constantine/{backend => math}/curves/bn254_nogami_constants.nim (97%) rename constantine/{backend => math}/curves/bn254_nogami_endomorphisms.nim (98%) rename constantine/{backend => math}/curves/bn254_nogami_frobenius.nim (99%) rename constantine/{backend => math}/curves/bn254_nogami_pairing.nim (97%) rename constantine/{backend => math}/curves/bn254_nogami_sqrt.nim (100%) rename constantine/{backend => math}/curves/bn254_nogami_sqrt_fp2.nim (98%) rename constantine/{backend => math}/curves/bn254_nogami_subgroups.nim (98%) rename constantine/{backend => math}/curves/bn254_snarks_constants.nim (97%) rename constantine/{backend => math}/curves/bn254_snarks_endomorphisms.nim (98%) rename constantine/{backend => math}/curves/bn254_snarks_frobenius.nim (99%) rename constantine/{backend => math}/curves/bn254_snarks_pairing.nim (97%) rename constantine/{backend => math}/curves/bn254_snarks_sqrt.nim (100%) rename constantine/{backend => math}/curves/bn254_snarks_sqrt_fp2.nim (98%) rename constantine/{backend => math}/curves/bn254_snarks_subgroups.nim (98%) rename constantine/{backend => math}/curves/bw6_761_constants.nim (100%) rename constantine/{backend => math}/curves/bw6_761_endomorphisms.nim (98%) rename constantine/{backend => math}/curves/bw6_761_frobenius.nim (98%) rename constantine/{backend => math}/curves/bw6_761_pairing.nim (98%) rename constantine/{backend => math}/curves/bw6_761_sqrt.nim (100%) rename constantine/{backend => math}/curves/bw6_761_subgroups.nim (94%) rename constantine/{backend => math}/curves/curve25519_sqrt.nim (89%) rename constantine/{backend => math}/curves/jubjub_sqrt.nim (95%) rename constantine/{backend => math}/curves/zoo_constants.nim (100%) rename constantine/{backend => math}/curves/zoo_endomorphisms.nim (97%) rename constantine/{backend => math}/curves/zoo_frobenius.nim (100%) rename constantine/{backend => math}/curves/zoo_generators.nim (100%) rename constantine/{backend => math}/curves/zoo_hash_to_curve.nim (100%) rename constantine/{backend => math}/curves/zoo_pairings.nim (100%) rename constantine/{backend => math}/curves/zoo_square_roots.nim (91%) rename constantine/{backend => math}/curves/zoo_square_roots_fp2.nim (100%) rename constantine/{backend => math}/curves/zoo_subgroups.nim (100%) rename constantine/{backend => math}/ec_shortweierstrass.nim (100%) rename constantine/{backend => math}/elliptic/README.md (100%) rename constantine/{backend => math}/elliptic/ec_endomorphism_accel.nim (99%) rename constantine/{backend => math}/elliptic/ec_scalar_mul.nim (99%) rename constantine/{backend => math}/elliptic/ec_shortweierstrass_affine.nim (97%) rename constantine/{backend => math}/elliptic/ec_shortweierstrass_jacobian.nim (99%) rename constantine/{backend => math}/elliptic/ec_shortweierstrass_projective.nim (99%) rename constantine/{backend => math}/elliptic/ec_twistededwards_affine.nim (97%) rename constantine/{backend => math}/elliptic/ec_twistededwards_projective.nim (99%) rename constantine/{backend/towers.nim => math/extension_fields.nim} (83%) rename constantine/{backend/tower_field_extensions => math/extension_fields}/README.md (100%) rename constantine/{backend/tower_field_extensions => math/extension_fields}/assembly/fp2_asm_x86_adx_bmi2.nim (98%) rename constantine/{backend/tower_field_extensions => math/extension_fields}/exponentiations.nim (99%) rename constantine/{backend/tower_field_extensions => math/extension_fields}/square_root_fp2.nim (98%) rename constantine/{backend/tower_field_extensions/extension_fields.nim => math/extension_fields/towers.nim} (99%) rename constantine/{backend => math}/io/README.md (100%) rename constantine/{backend => math}/io/io_bigints.nim (99%) rename constantine/{backend => math}/io/io_ec.nim (97%) rename constantine/{backend/io/io_towers.nim => math/io/io_extfields.nim} (98%) rename constantine/{backend => math}/io/io_fields.nim (98%) rename constantine/{backend/isogeny => math/isogenies}/README.md (100%) rename constantine/{backend/isogeny => math/isogenies}/frobenius.nim (98%) rename constantine/{backend => math}/pairing/README.md (100%) rename constantine/{backend => math}/pairing/cyclotomic_subgroup.nim (99%) rename constantine/{backend => math}/pairing/lines_eval.nim (99%) rename constantine/{backend => math}/pairing/miller_loops.nim (99%) rename constantine/{backend => math}/pairing/multi_pairing.md (100%) rename constantine/{backend => math}/pairing/pairing_bls12.nim (98%) rename constantine/{backend => math}/pairing/pairing_bn.nim (98%) rename constantine/{backend => math}/pairing/pairing_bw6_761.nim (98%) rename constantine/{backend => math}/pairings.nim (97%) rename constantine/{backend/primitives => platforms}/README.md (100%) rename constantine/{backend/config/common.nim => platforms/abstractions.nim} (94%) rename constantine/{backend/primitives => platforms}/bithacks.nim (100%) rename constantine/{backend/primitives => platforms/compilers}/addcarry_subborrow.nim (99%) rename constantine/{backend/primitives => platforms/compilers}/extended_precision.nim (99%) rename constantine/{backend/primitives => platforms/compilers}/extended_precision_64bit_uint128.nim (99%) rename constantine/{backend/primitives => platforms/compilers}/extended_precision_x86_64_gcc.nim (98%) rename constantine/{backend/primitives => platforms/compilers}/extended_precision_x86_64_msvc.nim (99%) rename constantine/{backend/primitives/constant_time.nim => platforms/constant_time/ct_routines.nim} (99%) rename constantine/{backend/primitives/constant_time_types.nim => platforms/constant_time/ct_types.nim} (100%) rename constantine/{backend/primitives => platforms/constant_time}/multiplexers.nim (99%) rename constantine/{backend/io => platforms}/endians.nim (99%) rename constantine/{backend/primitives => platforms/isa}/cpuinfo_x86.nim (100%) rename constantine/{backend/primitives => platforms/isa}/macro_assembler_x86.nim (100%) rename constantine/{backend => platforms}/primitives.nim (69%) rename constantine/{backend => }/signatures/README.md (100%) rename constantine/{backend => }/signatures/bls_signatures.nim (98%) rename tests/{backend => math}/support/canaries.nim (80%) rename tests/{backend => math}/support/ec_reference_scalar_mult.nim (95%) rename tests/{backend => math}/t_bigints.nim (99%) rename tests/{backend => math}/t_bigints_mod_vs_gmp.nim (97%) rename tests/{backend => math}/t_bigints_mul_high_words_vs_gmp.nim (97%) rename tests/{backend => math}/t_bigints_mul_vs_gmp.nim (96%) rename tests/{backend => math}/t_bigints_multimod.nim (98%) rename tests/{backend => math}/t_ec_conversion.nim (91%) rename tests/{backend => math}/t_ec_frobenius.nim (98%) rename tests/{backend => math}/t_ec_sage_bls12_377.nim (81%) rename tests/{backend => math}/t_ec_sage_bls12_381.nim (81%) rename tests/{backend => math}/t_ec_sage_bn254_nogami.nim (81%) rename tests/{backend => math}/t_ec_sage_bn254_snarks.nim (81%) rename tests/{backend => math}/t_ec_sage_bw6_761_g1.nim (86%) rename tests/{backend => math}/t_ec_sage_bw6_761_g2.nim (86%) rename tests/{backend => math}/t_ec_sage_template.nim (96%) rename tests/{backend => math}/t_ec_shortw_jac_g1_add_double.nim (91%) rename tests/{backend => math}/t_ec_shortw_jac_g1_mixed_add.nim (89%) rename tests/{backend => math}/t_ec_shortw_jac_g1_mul_distri.nim (91%) rename tests/{backend => math}/t_ec_shortw_jac_g1_mul_sanity.nim (91%) rename tests/{backend => math}/t_ec_shortw_jac_g1_mul_vs_ref.nim (91%) rename tests/{backend => math}/t_ec_shortw_jac_g2_add_double_bls12_377.nim (83%) rename tests/{backend => math}/t_ec_shortw_jac_g2_add_double_bls12_381.nim (83%) rename tests/{backend => math}/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim (83%) rename tests/{backend => math}/t_ec_shortw_jac_g2_add_double_bw6_761.nim (85%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim (83%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim (83%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim (83%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim (85%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim (84%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim (84%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim (84%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim (86%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim (92%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim (92%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim (92%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim (86%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim (84%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim (84%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim (84%) rename tests/{backend => math}/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim (86%) rename tests/{backend => math}/t_ec_shortw_prj_edge_cases.nim (95%) rename tests/{backend => math}/t_ec_shortw_prj_g1_add_double.nim (91%) rename tests/{backend => math}/t_ec_shortw_prj_g1_mixed_add.nim (89%) rename tests/{backend => math}/t_ec_shortw_prj_g1_mul_distri.nim (91%) rename tests/{backend => math}/t_ec_shortw_prj_g1_mul_sanity.nim (91%) rename tests/{backend => math}/t_ec_shortw_prj_g1_mul_vs_ref.nim (91%) rename tests/{backend => math}/t_ec_shortw_prj_g2_add_double_bls12_377.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_add_double_bls12_381.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_add_double_bw6_761.nim (85%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim (85%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim (84%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim (84%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim (84%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim (86%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim (92%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim (92%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim (92%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim (86%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim (83%) rename tests/{backend => math}/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim (86%) rename tests/{backend => math}/t_ec_subgroups_bls12_377.nim (85%) rename tests/{backend => math}/t_ec_subgroups_bls12_381.nim (85%) rename tests/{backend => math}/t_ec_subgroups_bn254_nogami.nim (85%) rename tests/{backend => math}/t_ec_subgroups_bn254_snarks.nim (85%) rename tests/{backend => math}/t_ec_template.nim (98%) rename tests/{backend => math}/t_ec_twedwards_prj_add_double.nim (84%) rename tests/{backend => math}/t_ec_twedwards_prj_mul_distri.nim (85%) rename tests/{backend => math}/t_ec_twedwards_prj_mul_sanity.nim (85%) rename tests/{backend => math}/t_ec_twedwards_prj_mul_vs_ref.nim (85%) rename tests/{backend => math}/t_finite_fields.nim (95%) rename tests/{backend => math}/t_finite_fields.nim.cfg (100%) rename tests/{backend => math}/t_finite_fields_conditional_arithmetic.nim (87%) rename tests/{backend => math}/t_finite_fields_double_precision.nim (92%) rename tests/{backend => math}/t_finite_fields_double_precision.nim.cfg (100%) rename tests/{backend => math}/t_finite_fields_mulsquare.nim (94%) rename tests/{backend => math}/t_finite_fields_mulsquare.nim.cfg (100%) rename tests/{backend => math}/t_finite_fields_powinv.nim (97%) rename tests/{backend => math}/t_finite_fields_powinv.nim.cfg (100%) rename tests/{backend => math}/t_finite_fields_sqrt.nim (96%) rename tests/{backend => math}/t_finite_fields_sqrt.nim.cfg (100%) rename tests/{backend => math}/t_finite_fields_vs_gmp.nim (97%) rename tests/{backend => math}/t_fp12_anti_regression.nim (97%) rename tests/{backend => math}/t_fp12_bls12_377.nim (90%) rename tests/{backend => math}/t_fp12_bls12_381.nim (90%) rename tests/{backend => math}/t_fp12_bn254_snarks.nim (90%) rename tests/{backend => math}/t_fp12_exponentiation.nim (96%) rename tests/{backend => math}/t_fp12_frobenius.nim (89%) rename tests/{backend => math}/t_fp2.nim (92%) rename tests/{backend => math}/t_fp2_frobenius.nim (89%) rename tests/{backend => math}/t_fp2_sqrt.nim (94%) rename tests/{backend => math}/t_fp4.nim (95%) rename tests/{backend => math}/t_fp4_frobenius.nim (89%) rename tests/{backend => math}/t_fp6_bls12_377.nim (90%) rename tests/{backend => math}/t_fp6_bls12_381.nim (90%) rename tests/{backend => math}/t_fp6_bn254_snarks.nim (90%) rename tests/{backend => math}/t_fp6_bw6_761.nim (90%) rename tests/{backend => math}/t_fp6_frobenius.nim (89%) rename tests/{backend => math}/t_fp_cubic_root.nim (83%) rename tests/{backend => math}/t_fp_tower_frobenius_template.nim (94%) rename tests/{backend => math}/t_fp_tower_template.nim (98%) rename tests/{backend => math}/t_fr.nim (95%) rename tests/{backend => math}/t_hash_to_curve.nim (93%) rename tests/{backend => math}/t_hash_to_field.nim (96%) rename tests/{backend => math}/t_io_bigints.nim (97%) rename tests/{backend => math}/t_io_fields.nim (96%) rename tests/{backend => math}/t_io_fields.nim.cfg (100%) rename tests/{backend => math}/t_io_unsaturated.nim (86%) rename tests/{backend => math}/t_pairing_bls12_377_gt_subgroup.nim (81%) rename tests/{backend => math}/t_pairing_bls12_377_line_functions.nim (92%) rename tests/{backend => math}/t_pairing_bls12_377_optate.nim (83%) rename tests/{backend => math}/t_pairing_bls12_381_gt_subgroup.nim (81%) rename tests/{backend => math}/t_pairing_bls12_381_line_functions.nim (92%) rename tests/{backend => math}/t_pairing_bls12_381_multi.nim (87%) rename tests/{backend => math}/t_pairing_bls12_381_optate.nim (83%) rename tests/{backend => math}/t_pairing_bn254_nogami_gt_subgroup.nim (82%) rename tests/{backend => math}/t_pairing_bn254_nogami_optate.nim (84%) rename tests/{backend => math}/t_pairing_bn254_snarks_gt_subgroup.nim (82%) rename tests/{backend => math}/t_pairing_bn254_snarks_optate.nim (84%) rename tests/{backend => math}/t_pairing_bw6_761_gt_subgroup.nim (81%) rename tests/{backend => math}/t_pairing_bw6_761_optate.nim (83%) rename tests/{backend => math}/t_pairing_cyclotomic_subgroup.nim (93%) rename tests/{backend => math}/t_pairing_mul_fp12_by_lines.nim (97%) rename tests/{backend => math}/t_pairing_template.nim (89%) rename tests/{backend => math}/t_primitives.nim (98%) rename tests/{backend => math}/t_primitives_extended_precision.nim (95%) rename tests/{backend => math}/vectors/tv_BLS12_377_scalar_mul_G1.json (100%) rename tests/{backend => math}/vectors/tv_BLS12_377_scalar_mul_G2.json (100%) rename tests/{backend => math}/vectors/tv_BLS12_381_scalar_mul_G1.json (100%) rename tests/{backend => math}/vectors/tv_BLS12_381_scalar_mul_G2.json (100%) rename tests/{backend => math}/vectors/tv_BN254_Nogami_scalar_mul_G1.json (100%) rename tests/{backend => math}/vectors/tv_BN254_Nogami_scalar_mul_G2.json (100%) rename tests/{backend => math}/vectors/tv_BN254_Snarks_scalar_mul_G1.json (100%) rename tests/{backend => math}/vectors/tv_BN254_Snarks_scalar_mul_G2.json (100%) rename tests/{backend => math}/vectors/tv_BW6_761_scalar_mul_G1.json (100%) rename tests/{backend => math}/vectors/tv_BW6_761_scalar_mul_G2.json (100%) rename tests/{backend => math}/vectors/tv_h2c_v7_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json (100%) rename tests/{backend => math}/vectors/tv_h2c_v8_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/README.md (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate/aggregate_0x0000000000000000000000000000000000000000000000000000000000000000.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate/aggregate_0x5656565656565656565656565656565656565656565656565656565656565656.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate/aggregate_0xabababababababababababababababababababababababababababababababab.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate/aggregate_infinity_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate/aggregate_na_signatures.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate/aggregate_single_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate_verify/aggregate_verify_infinity_pubkey.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate_verify/aggregate_verify_na_pubkeys_and_infinity_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate_verify/aggregate_verify_na_pubkeys_and_na_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate_verify/aggregate_verify_tampered_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/aggregate_verify/aggregate_verify_valid.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/batch_verify/batch_verify_invalid_forged_signature_set.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/batch_verify/batch_verify_valid_simple_signature_set.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_infinity_with_false_b_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_infinity_with_true_b_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_not_in_G1.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_not_in_curve.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_too_few_bytes.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_too_many_bytes.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_with_b_flag_and_a_flag_true.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_with_b_flag_and_x_nonzero.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_with_wrong_c_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_x_equal_to_modulus.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_fails_x_greater_than_modulus.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_succeeds_correct_point.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G1/deserialization_succeeds_infinity_with_true_b_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_infinity_with_false_b_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_infinity_with_true_b_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_not_in_G2.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_not_in_curve.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_too_few_bytes.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_too_many_bytes.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_with_b_flag_and_a_flag_true.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_with_b_flag_and_x_nonzero.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_with_wrong_c_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_xim_equal_to_modulus.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_xim_greater_than_modulus.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_xre_equal_to_modulus.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_fails_xre_greater_than_modulus.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_succeeds_correct_point.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/deserialization_G2/deserialization_succeeds_infinity_with_true_b_flag.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_4f079f946446fabf.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_5a38e6b4017fe4dd.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_a698ea45b109f303.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_infinity_pubkey.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_infinity_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_na_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_3d7576f3c0e3570a.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_5e745ad0c6199a6c.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_652ce62f09290811.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_valid_3d7576f3c0e3570a.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_valid_5e745ad0c6199a6c.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/fast_aggregate_verify/fast_aggregate_verify_valid_652ce62f09290811.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/hash_to_G2/hash_to_G2__2782afaa8406d038.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/hash_to_G2/hash_to_G2__7590bd067999bbfb.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/hash_to_G2/hash_to_G2__a54942c8e365f378.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/hash_to_G2/hash_to_G2__c938b486cf69e8f7.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_11b8c7cad5238946.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_142f678a8d05fcd1.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_37286e1a6d1f6eb3.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_7055381f640f2c1d.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_84d45c9c7cca6b92.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_8cd3d4d0d9a5b265.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_c82df61aa3ee60fb.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_d0e28d7e76eb6e9c.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_f2ae1097e7d0e18b.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/sign/sign_case_zero_privkey.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_infinity_pubkey_and_infinity_signature.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_195246ee3bd3b6ec.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_2ea479adf8c40300.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_2f09d443ab8a3ac2.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_3208262581c8fc09.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_6b3b17f6962a490c.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_6eeb7c52dfd9baf0.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_8761a0b7e920c323.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_d34885d766d5f705.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_tampered_signature_case_e8a50c445c855360.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_195246ee3bd3b6ec.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_2ea479adf8c40300.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_2f09d443ab8a3ac2.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_3208262581c8fc09.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_6b3b17f6962a490c.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_6eeb7c52dfd9baf0.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_8761a0b7e920c323.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_d34885d766d5f705.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_valid_case_e8a50c445c855360.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_195246ee3bd3b6ec.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_2ea479adf8c40300.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_2f09d443ab8a3ac2.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_3208262581c8fc09.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_6b3b17f6962a490c.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_6eeb7c52dfd9baf0.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_8761a0b7e920c323.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_d34885d766d5f705.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verify_wrong_pubkey_case_e8a50c445c855360.json (100%) rename tests/{blssig_pop_on_bls12381_g2_test_vectors_v0.1.1 => protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1}/verify/verifycase_one_privkey_47117849458281be.json (100%) diff --git a/README.md b/README.md index 2be6e97..1a74d3a 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ After [installation](#installation), the available high-level protocols are: _The backend, unlike protocols, is not public. Here be dragons._ At the moment the following curves are implemented, adding a new curve only requires adding the prime modulus -and its bitsize in [constantine/config/curves.nim](constantine/backend/config/curves_declaration.nim). +and its bitsize in [constantine/config/curves.nim](constantine/math/config/curves_declaration.nim). The following curves are configured: @@ -81,7 +81,7 @@ The following curves are configured: - Jubjub, a curve embedded in BLS12-381 scalar field to be used in zk-SNARKS circuits. - Bandersnatch, a more efficient curve embedded in BLS12-381 scalar field to be used in zk-SNARKS circuits. - Other curves - - Curve25519, used in ed25519 and X25519 from TLS 1.3 protocol and the Signal protocol. + - Edwards25519, used in ed25519 and X25519 from TLS 1.3 protocol and the Signal protocol. With Ristretto, it can be used in bulletproofs. ## Installation diff --git a/benchmarks/bench_blueprint.nim b/benchmarks/bench_blueprint.nim index b11ad0c..e6c0999 100644 --- a/benchmarks/bench_blueprint.nim +++ b/benchmarks/bench_blueprint.nim @@ -14,7 +14,7 @@ import # Internal - ../constantine/backend/config/common, + ../constantine/platforms/abstractions, # Helpers ../helpers/prng_unsafe, ./platforms, diff --git a/benchmarks/bench_ec_g1.nim b/benchmarks/bench_ec_g1.nim index 79a3eb5..ca23181 100644 --- a/benchmarks/bench_ec_g1.nim +++ b/benchmarks/bench_ec_g1.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/elliptic/[ + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/elliptic/[ ec_shortweierstrass_projective, ec_shortweierstrass_jacobian], # Helpers @@ -34,7 +34,7 @@ const AvailableCurves = [ # P224, BN254_Nogami, BN254_Snarks, - # Curve25519, + # Edwards25519, # P256, # Secp256k1, BLS12_377, diff --git a/benchmarks/bench_ec_g2.nim b/benchmarks/bench_ec_g2.nim index 5290b18..00cd37f 100644 --- a/benchmarks/bench_ec_g2.nim +++ b/benchmarks/bench_ec_g2.nim @@ -8,10 +8,10 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, - ../constantine/backend/elliptic/[ + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, + ../constantine/math/elliptic/[ ec_shortweierstrass_projective, ec_shortweierstrass_jacobian], # Helpers @@ -35,7 +35,7 @@ const AvailableCurves = [ # P224, BN254_Nogami, BN254_Snarks, - # Curve25519, + # Edwards25519, # P256, # Secp256k1, BLS12_377, diff --git a/benchmarks/bench_elliptic_template.nim b/benchmarks/bench_elliptic_template.nim index 68b2702..b2ed489 100644 --- a/benchmarks/bench_elliptic_template.nim +++ b/benchmarks/bench_elliptic_template.nim @@ -14,10 +14,11 @@ import # Internals - ../constantine/backend/config/[curves, common], - ../constantine/backend/arithmetic, - ../constantine/backend/io/io_bigints, - ../constantine/backend/elliptic/[ + ../constantine/platforms/abstractions, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/io/io_bigints, + ../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_shortweierstrass_jacobian, @@ -27,7 +28,7 @@ import ./platforms, ./bench_blueprint, # Reference unsafe scalar multiplication - ../tests/backend/support/ec_reference_scalar_mult + ../tests/math/support/ec_reference_scalar_mult export notes proc separator*() = separator(177) diff --git a/benchmarks/bench_fields_template.nim b/benchmarks/bench_fields_template.nim index b6ec393..e1527a4 100644 --- a/benchmarks/bench_fields_template.nim +++ b/benchmarks/bench_fields_template.nim @@ -14,10 +14,11 @@ import # Internals - ../constantine/backend/config/[common, curves], - ../constantine/backend/arithmetic, - ../constantine/backend/towers, - ../constantine/backend/curves/zoo_square_roots, + ../constantine/platforms/abstractions, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, + ../constantine/math/curves/zoo_square_roots, # Helpers ../helpers/prng_unsafe, ./bench_blueprint diff --git a/benchmarks/bench_fp.nim b/benchmarks/bench_fp.nim index 8566024..18eae36 100644 --- a/benchmarks/bench_fp.nim +++ b/benchmarks/bench_fp.nim @@ -8,10 +8,10 @@ import # Internals - ../constantine/backend/config/[curves, common], - ../constantine/backend/arithmetic, - ../constantine/backend/io/io_bigints, - ../constantine/backend/curves/zoo_square_roots, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/io/io_bigints, + ../constantine/math/curves/zoo_square_roots, # Helpers ../helpers/static_for, ./bench_fields_template @@ -29,7 +29,7 @@ const AvailableCurves = [ # P224, BN254_Nogami, BN254_Snarks, - Curve25519, + Edwards25519, Bandersnatch, P256, Secp256k1, diff --git a/benchmarks/bench_fp12.nim b/benchmarks/bench_fp12.nim index 8fd3b7f..381e20d 100644 --- a/benchmarks/bench_fp12.nim +++ b/benchmarks/bench_fp12.nim @@ -8,8 +8,8 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_fields_template, diff --git a/benchmarks/bench_fp2.nim b/benchmarks/bench_fp2.nim index 71ba783..69447fd 100644 --- a/benchmarks/bench_fp2.nim +++ b/benchmarks/bench_fp2.nim @@ -8,8 +8,8 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_fields_template, diff --git a/benchmarks/bench_fp4.nim b/benchmarks/bench_fp4.nim index 089cca8..2250bb5 100644 --- a/benchmarks/bench_fp4.nim +++ b/benchmarks/bench_fp4.nim @@ -8,8 +8,8 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_fields_template, diff --git a/benchmarks/bench_fp6.nim b/benchmarks/bench_fp6.nim index 1d0a892..28327b5 100644 --- a/benchmarks/bench_fp6.nim +++ b/benchmarks/bench_fp6.nim @@ -8,8 +8,8 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_fields_template, diff --git a/benchmarks/bench_fp_double_precision.nim b/benchmarks/bench_fp_double_precision.nim index eef7e3c..f03e109 100644 --- a/benchmarks/bench_fp_double_precision.nim +++ b/benchmarks/bench_fp_double_precision.nim @@ -14,9 +14,10 @@ import # Internals - ../constantine/backend/config/[curves, common], - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/platforms/abstractions, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/[prng_unsafe, static_for], ./platforms, diff --git a/benchmarks/bench_hash_to_curve.nim b/benchmarks/bench_hash_to_curve.nim index 541f8ce..e574072 100644 --- a/benchmarks/bench_hash_to_curve.nim +++ b/benchmarks/bench_hash_to_curve.nim @@ -8,13 +8,15 @@ import # Internals - ../constantine/backend/config/[common, curves, type_bigint, type_ff], - ../constantine/backend/[towers, hashes], - ../constantine/backend/io/[io_bigints, io_ec], - ../constantine/backend/elliptic/[ + ../constantine/platforms/abstractions, + ../constantine/math/config/curves, + ../constantine/math/extension_fields, + ../constantine/math/io/[io_bigints, io_ec], + ../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective], - ../constantine/backend/hash_to_curve/hash_to_curve, + ../constantine/hash_to_curve/hash_to_curve, + ../constantine/hashes, # Helpers ../helpers/prng_unsafe, ./bench_blueprint diff --git a/benchmarks/bench_pairing_bls12_377.nim b/benchmarks/bench_pairing_bls12_377.nim index fc5594e..b7ce8b1 100644 --- a/benchmarks/bench_pairing_bls12_377.nim +++ b/benchmarks/bench_pairing_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_pairing_template, diff --git a/benchmarks/bench_pairing_bls12_381.nim b/benchmarks/bench_pairing_bls12_381.nim index a280e0c..2854b9d 100644 --- a/benchmarks/bench_pairing_bls12_381.nim +++ b/benchmarks/bench_pairing_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_pairing_template, diff --git a/benchmarks/bench_pairing_bn254_nogami.nim b/benchmarks/bench_pairing_bn254_nogami.nim index 0152133..ffd0653 100644 --- a/benchmarks/bench_pairing_bn254_nogami.nim +++ b/benchmarks/bench_pairing_bn254_nogami.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_pairing_template, diff --git a/benchmarks/bench_pairing_bn254_snarks.nim b/benchmarks/bench_pairing_bn254_snarks.nim index 9b1330c..1625029 100644 --- a/benchmarks/bench_pairing_bn254_snarks.nim +++ b/benchmarks/bench_pairing_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_pairing_template, diff --git a/benchmarks/bench_pairing_template.nim b/benchmarks/bench_pairing_template.nim index 4ea6f21..ee03345 100644 --- a/benchmarks/bench_pairing_template.nim +++ b/benchmarks/bench_pairing_template.nim @@ -14,18 +14,19 @@ import # Internals - ../constantine/backend/config/[curves, common], - ../constantine/backend/arithmetic, - ../constantine/backend/towers, - ../constantine/backend/ec_shortweierstrass, - ../constantine/backend/curves/zoo_subgroups, - ../constantine/backend/pairing/[ + ../constantine/platforms/abstractions, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, + ../constantine/math/ec_shortweierstrass, + ../constantine/math/curves/zoo_subgroups, + ../constantine/math/pairing/[ cyclotomic_subgroup, lines_eval, pairing_bls12, pairing_bn ], - ../constantine/backend/curves/zoo_pairings, + ../constantine/math/curves/zoo_pairings, # Helpers ../helpers/prng_unsafe, ./bench_blueprint diff --git a/benchmarks/bench_sha256.nim b/benchmarks/bench_sha256.nim index 98882e9..b10d6da 100644 --- a/benchmarks/bench_sha256.nim +++ b/benchmarks/bench_sha256.nim @@ -1,6 +1,6 @@ import # Internals - ../constantine/backend/hashes, + ../constantine/hashes, # Helpers ../helpers/prng_unsafe, ./bench_blueprint diff --git a/benchmarks/bench_summary_bls12_377.nim b/benchmarks/bench_summary_bls12_377.nim index 2759b32..107e01b 100644 --- a/benchmarks/bench_summary_bls12_377.nim +++ b/benchmarks/bench_summary_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_summary_template, diff --git a/benchmarks/bench_summary_bls12_381.nim b/benchmarks/bench_summary_bls12_381.nim index 788bbb2..7e7abf6 100644 --- a/benchmarks/bench_summary_bls12_381.nim +++ b/benchmarks/bench_summary_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_summary_template, diff --git a/benchmarks/bench_summary_bn254_nogami.nim b/benchmarks/bench_summary_bn254_nogami.nim index 129c098..2703b92 100644 --- a/benchmarks/bench_summary_bn254_nogami.nim +++ b/benchmarks/bench_summary_bn254_nogami.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_summary_template, diff --git a/benchmarks/bench_summary_bn254_snarks.nim b/benchmarks/bench_summary_bn254_snarks.nim index 6450095..8582b30 100644 --- a/benchmarks/bench_summary_bn254_snarks.nim +++ b/benchmarks/bench_summary_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../constantine/backend/config/curves, - ../constantine/backend/arithmetic, - ../constantine/backend/towers, + ../constantine/math/config/curves, + ../constantine/math/arithmetic, + ../constantine/math/extension_fields, # Helpers ../helpers/static_for, ./bench_summary_template, diff --git a/benchmarks/bench_summary_template.nim b/benchmarks/bench_summary_template.nim index 99cf85c..6d13176 100644 --- a/benchmarks/bench_summary_template.nim +++ b/benchmarks/bench_summary_template.nim @@ -14,21 +14,23 @@ import # Internals - ../constantine/backend/config/[curves, common], - ../constantine/backend/[arithmetic, hashes, towers], - ../constantine/backend/elliptic/[ + ../constantine/platforms/abstractions, + ../constantine/math/config/curves, + ../constantine/math/[arithmetic, extension_fields], + ../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_shortweierstrass_jacobian, ec_scalar_mul, ec_endomorphism_accel], - ../constantine/backend/curves/zoo_subgroups, - ../constantine/backend/hash_to_curve/hash_to_curve, - ../constantine/backend/pairing/[ + ../constantine/math/curves/zoo_subgroups, + ../constantine/math/pairing/[ cyclotomic_subgroup, pairing_bls12, pairing_bn ], - ../constantine/backend/curves/zoo_pairings, + ../constantine/math/curves/zoo_pairings, + ../constantine/hashes, + ../constantine/hash_to_curve/hash_to_curve, # Helpers ../helpers/[prng_unsafe, static_for], ./bench_blueprint diff --git a/constantine.nimble b/constantine.nimble index 58e60f9..786b3eb 100644 --- a/constantine.nimble +++ b/constantine.nimble @@ -1,7 +1,7 @@ packageName = "constantine" version = "0.0.1" author = "Status Research & Development GmbH" -description = "This library provides constant time big int primitives." +description = "This library provides thoroughly tested and highly-optimized implementations of cryptography protocols." license = "MIT or Apache License 2.0" # Dependencies @@ -23,166 +23,166 @@ const buildParallel = "test_parallel.txt" const testDesc: seq[tuple[path: string, useGMP: bool]] = @[ # Primitives # ---------------------------------------------------------- - ("tests/backend/t_primitives.nim", false), - ("tests/backend/t_primitives_extended_precision.nim", false), + ("tests/math/t_primitives.nim", false), + ("tests/math/t_primitives_extended_precision.nim", false), # Big ints # ---------------------------------------------------------- - ("tests/backend/t_io_bigints.nim", false), - ("tests/backend/t_io_unsaturated.nim", false), - ("tests/backend/t_bigints.nim", false), - ("tests/backend/t_bigints_multimod.nim", false), - ("tests/backend/t_bigints_mod_vs_gmp.nim", true), - ("tests/backend/t_bigints_mul_vs_gmp.nim", true), - ("tests/backend/t_bigints_mul_high_words_vs_gmp.nim", true), + ("tests/math/t_io_bigints.nim", false), + ("tests/math/t_io_unsaturated.nim", false), + ("tests/math/t_bigints.nim", false), + ("tests/math/t_bigints_multimod.nim", false), + ("tests/math/t_bigints_mod_vs_gmp.nim", true), + ("tests/math/t_bigints_mul_vs_gmp.nim", true), + ("tests/math/t_bigints_mul_high_words_vs_gmp.nim", true), # Field # ---------------------------------------------------------- - ("tests/backend/t_io_fields", false), - ("tests/backend/t_finite_fields.nim", false), - ("tests/backend/t_finite_fields_conditional_arithmetic.nim", false), - ("tests/backend/t_finite_fields_mulsquare.nim", false), - ("tests/backend/t_finite_fields_sqrt.nim", false), - ("tests/backend/t_finite_fields_powinv.nim", false), - ("tests/backend/t_finite_fields_vs_gmp.nim", true), - ("tests/backend/t_fp_cubic_root.nim", false), + ("tests/math/t_io_fields", false), + ("tests/math/t_finite_fields.nim", false), + ("tests/math/t_finite_fields_conditional_arithmetic.nim", false), + ("tests/math/t_finite_fields_mulsquare.nim", false), + ("tests/math/t_finite_fields_sqrt.nim", false), + ("tests/math/t_finite_fields_powinv.nim", false), + ("tests/math/t_finite_fields_vs_gmp.nim", true), + ("tests/math/t_fp_cubic_root.nim", false), # Double-precision finite fields # ---------------------------------------------------------- - ("tests/backend/t_finite_fields_double_precision.nim", false), + ("tests/math/t_finite_fields_double_precision.nim", false), # Towers of extension fields # ---------------------------------------------------------- - ("tests/backend/t_fp2.nim", false), - ("tests/backend/t_fp2_sqrt.nim", false), - ("tests/backend/t_fp4.nim", false), - ("tests/backend/t_fp6_bn254_snarks.nim", false), - ("tests/backend/t_fp6_bls12_377.nim", false), - ("tests/backend/t_fp6_bls12_381.nim", false), - ("tests/backend/t_fp6_bw6_761.nim", false), - ("tests/backend/t_fp12_bn254_snarks.nim", false), - ("tests/backend/t_fp12_bls12_377.nim", false), - ("tests/backend/t_fp12_bls12_381.nim", false), - ("tests/backend/t_fp12_exponentiation.nim", false), - ("tests/backend/t_fp12_anti_regression.nim", false), + ("tests/math/t_fp2.nim", false), + ("tests/math/t_fp2_sqrt.nim", false), + ("tests/math/t_fp4.nim", false), + ("tests/math/t_fp6_bn254_snarks.nim", false), + ("tests/math/t_fp6_bls12_377.nim", false), + ("tests/math/t_fp6_bls12_381.nim", false), + ("tests/math/t_fp6_bw6_761.nim", false), + ("tests/math/t_fp12_bn254_snarks.nim", false), + ("tests/math/t_fp12_bls12_377.nim", false), + ("tests/math/t_fp12_bls12_381.nim", false), + ("tests/math/t_fp12_exponentiation.nim", false), + ("tests/math/t_fp12_anti_regression.nim", false), - ("tests/backend/t_fp4_frobenius.nim", false), - ("tests/backend/t_fp6_frobenius.nim", false), - ("tests/backend/t_fp12_frobenius.nim", false), + ("tests/math/t_fp4_frobenius.nim", false), + ("tests/math/t_fp6_frobenius.nim", false), + ("tests/math/t_fp12_frobenius.nim", false), # Elliptic curve arithmetic # ---------------------------------------------------------- - ("tests/backend/t_ec_conversion.nim", false), + ("tests/math/t_ec_conversion.nim", false), # Elliptic curve arithmetic G1 # ---------------------------------------------------------- - # ("tests/backend/t_ec_shortw_prj_g1_add_double.nim", false), - # ("tests/backend/t_ec_shortw_prj_g1_mul_sanity.nim", false), - # ("tests/backend/t_ec_shortw_prj_g1_mul_distri.nim", false), - ("tests/backend/t_ec_shortw_prj_g1_mul_vs_ref.nim", false), - ("tests/backend/t_ec_shortw_prj_g1_mixed_add.nim", false), + # ("tests/math/t_ec_shortw_prj_g1_add_double.nim", false), + # ("tests/math/t_ec_shortw_prj_g1_mul_sanity.nim", false), + # ("tests/math/t_ec_shortw_prj_g1_mul_distri.nim", false), + ("tests/math/t_ec_shortw_prj_g1_mul_vs_ref.nim", false), + ("tests/math/t_ec_shortw_prj_g1_mixed_add.nim", false), - # ("tests/backend/t_ec_shortw_jac_g1_add_double.nim", false), - # ("tests/backend/t_ec_shortw_jac_g1_mul_sanity.nim", false), - # ("tests/backend/t_ec_shortw_jac_g1_mul_distri.nim", false), - ("tests/backend/t_ec_shortw_jac_g1_mul_vs_ref.nim", false), - ("tests/backend/t_ec_shortw_jac_g1_mixed_add.nim", false), + # ("tests/math/t_ec_shortw_jac_g1_add_double.nim", false), + # ("tests/math/t_ec_shortw_jac_g1_mul_sanity.nim", false), + # ("tests/math/t_ec_shortw_jac_g1_mul_distri.nim", false), + ("tests/math/t_ec_shortw_jac_g1_mul_vs_ref.nim", false), + ("tests/math/t_ec_shortw_jac_g1_mixed_add.nim", false), - ("tests/backend/t_ec_twedwards_prj_add_double", false), - ("tests/backend/t_ec_twedwards_prj_mul_sanity", false), - ("tests/backend/t_ec_twedwards_prj_mul_distri", false), + ("tests/math/t_ec_twedwards_prj_add_double", false), + ("tests/math/t_ec_twedwards_prj_mul_sanity", false), + ("tests/math/t_ec_twedwards_prj_mul_distri", false), # Elliptic curve arithmetic G2 # ---------------------------------------------------------- - # ("tests/backend/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_add_double_bls12_381.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_add_double_bls12_381.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_add_double_bls12_377.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_add_double_bls12_377.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_add_double_bw6_761.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim", false), - # ("tests/backend/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim", false), - ("tests/backend/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_add_double_bw6_761.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim", false), + # ("tests/math/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim", false), + ("tests/math/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_add_double_bls12_381.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_add_double_bls12_381.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_add_double_bls12_377.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_add_double_bls12_377.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_add_double_bw6_761.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim", false), - # ("tests/backend/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim", false), - ("tests/backend/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_add_double_bw6_761.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim", false), + # ("tests/math/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim", false), + ("tests/math/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim", false), # Elliptic curve arithmetic vs Sagemath # ---------------------------------------------------------- - ("tests/backend/t_ec_frobenius.nim", false), - ("tests/backend/t_ec_sage_bn254_nogami.nim", false), - ("tests/backend/t_ec_sage_bn254_snarks.nim", false), - ("tests/backend/t_ec_sage_bls12_377.nim", false), - ("tests/backend/t_ec_sage_bls12_381.nim", false), + ("tests/math/t_ec_frobenius.nim", false), + ("tests/math/t_ec_sage_bn254_nogami.nim", false), + ("tests/math/t_ec_sage_bn254_snarks.nim", false), + ("tests/math/t_ec_sage_bls12_377.nim", false), + ("tests/math/t_ec_sage_bls12_381.nim", false), # Edge cases highlighted by past bugs # ---------------------------------------------------------- - ("tests/backend/t_ec_shortw_prj_edge_cases.nim", false), + ("tests/math/t_ec_shortw_prj_edge_cases.nim", false), # Subgroups and cofactors # ---------------------------------------------------------- - ("tests/backend/t_ec_subgroups_bn254_nogami.nim", false), - ("tests/backend/t_ec_subgroups_bn254_snarks.nim", false), - ("tests/backend/t_ec_subgroups_bls12_377.nim", false), - ("tests/backend/t_ec_subgroups_bls12_381.nim", false), + ("tests/math/t_ec_subgroups_bn254_nogami.nim", false), + ("tests/math/t_ec_subgroups_bn254_snarks.nim", false), + ("tests/math/t_ec_subgroups_bls12_377.nim", false), + ("tests/math/t_ec_subgroups_bls12_381.nim", false), - ("tests/backend/t_pairing_bn254_nogami_gt_subgroup.nim", false), - ("tests/backend/t_pairing_bn254_snarks_gt_subgroup.nim", false), - ("tests/backend/t_pairing_bls12_377_gt_subgroup.nim", false), - ("tests/backend/t_pairing_bls12_381_gt_subgroup.nim", false), - ("tests/backend/t_pairing_bw6_761_gt_subgroup.nim", false), + ("tests/math/t_pairing_bn254_nogami_gt_subgroup.nim", false), + ("tests/math/t_pairing_bn254_snarks_gt_subgroup.nim", false), + ("tests/math/t_pairing_bls12_377_gt_subgroup.nim", false), + ("tests/math/t_pairing_bls12_381_gt_subgroup.nim", false), + ("tests/math/t_pairing_bw6_761_gt_subgroup.nim", false), # Pairing # ---------------------------------------------------------- - # ("tests/backend/t_pairing_bls12_377_line_functions.nim", false), - # ("tests/backend/t_pairing_bls12_381_line_functions.nim", false), - ("tests/backend/t_pairing_mul_fp12_by_lines.nim", false), - ("tests/backend/t_pairing_cyclotomic_subgroup.nim", false), - ("tests/backend/t_pairing_bn254_nogami_optate.nim", false), - ("tests/backend/t_pairing_bn254_snarks_optate.nim", false), - ("tests/backend/t_pairing_bls12_377_optate.nim", false), - ("tests/backend/t_pairing_bls12_381_optate.nim", false), - ("tests/backend/t_pairing_bls12_381_multi.nim", false), + # ("tests/math/t_pairing_bls12_377_line_functions.nim", false), + # ("tests/math/t_pairing_bls12_381_line_functions.nim", false), + ("tests/math/t_pairing_mul_fp12_by_lines.nim", false), + ("tests/math/t_pairing_cyclotomic_subgroup.nim", false), + ("tests/math/t_pairing_bn254_nogami_optate.nim", false), + ("tests/math/t_pairing_bn254_snarks_optate.nim", false), + ("tests/math/t_pairing_bls12_377_optate.nim", false), + ("tests/math/t_pairing_bls12_381_optate.nim", false), + ("tests/math/t_pairing_bls12_381_multi.nim", false), # Hashing to elliptic curves # ---------------------------------------------------------- - ("tests/backend/t_hash_to_field.nim", false), - ("tests/backend/t_hash_to_curve.nim", false), + ("tests/math/t_hash_to_field.nim", false), + ("tests/math/t_hash_to_curve.nim", false), # Prime order fields # ---------------------------------------------------------- - ("tests/backend/t_fr.nim", false), + ("tests/math/t_fr.nim", false), # Hashing vs OpenSSL # ---------------------------------------------------------- @@ -196,20 +196,20 @@ const testDesc: seq[tuple[path: string, useGMP: bool]] = @[ # For temporary (hopefully) investigation that can only be reproduced in CI const useDebug = [ - "tests/backend/t_bigints.nim", - "tests/backend/t_hash_sha256_vs_openssl.nim", + "tests/math/t_bigints.nim", + "tests/math/t_hash_sha256_vs_openssl.nim", ] # Tests that uses sequences require Nim GC, stack scanning and nil pointer passed to openarray # In particular the tests that uses the json test vectors, don't sanitize them. # we do use gc:none to help const skipSanitizers = [ - "tests/backend/t_ec_sage_bn254_nogami.nim", - "tests/backend/t_ec_sage_bn254_snarks.nim", - "tests/backend/t_ec_sage_bls12_377.nim", - "tests/backend/t_ec_sage_bls12_381.nim", - "tests/backend/t_hash_to_field.nim", - "tests/backend/t_hash_to_curve.nim" + "tests/math/t_ec_sage_bn254_nogami.nim", + "tests/math/t_ec_sage_bn254_snarks.nim", + "tests/math/t_ec_sage_bls12_377.nim", + "tests/math/t_ec_sage_bls12_381.nim", + "tests/math/t_hash_to_field.nim", + "tests/math/t_hash_to_curve.nim" ] when defined(windows): diff --git a/constantine/backend/primitives/static_for.nim b/constantine/backend/primitives/static_for.nim deleted file mode 100644 index af531ee..0000000 --- a/constantine/backend/primitives/static_for.nim +++ /dev/null @@ -1,36 +0,0 @@ -# Constantine -# Copyright (c) 2018-2019 Status Research & Development GmbH -# Copyright (c) 2020-Present Mamy André-Ratsimbazafy -# Licensed and distributed under either of -# * MIT license (license terms in the root directory or at http://opensource.org/licenses/MIT). -# * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). -# at your option. This file may not be copied, modified, or distributed except according to those terms. - -import std/macros - -proc replaceNodes(ast: NimNode, what: NimNode, by: NimNode): NimNode = - # Replace "what" ident node by "by" - proc inspect(node: NimNode): NimNode = - case node.kind: - of {nnkIdent, nnkSym}: - if node.eqIdent(what): - return by - return node - of nnkEmpty: - return node - of nnkLiterals: - return node - else: - var rTree = node.kind.newTree() - for child in node: - rTree.add inspect(child) - return rTree - result = inspect(ast) - -macro staticFor*(idx: untyped{nkIdent}, start, stopEx: static int, body: untyped): untyped = - result = newStmtList() - for i in start ..< stopEx: - result.add nnkBlockStmt.newTree( - ident("unrolledIter_" & $idx & $i), - body.replaceNodes(idx, newLit i) - ) diff --git a/constantine/blssig_pop_on_bls12381_g2.nim b/constantine/blssig_pop_on_bls12381_g2.nim index 5856b97..07074fe 100644 --- a/constantine/blssig_pop_on_bls12381_g2.nim +++ b/constantine/blssig_pop_on_bls12381_g2.nim @@ -7,24 +7,21 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./backend/config/[ - common, curves, type_bigint, type_ff - ], - ./backend/[ + ./platforms/abstractions, + ./math/config/curves, + ./math/[ ec_shortweierstrass, - hash_to_curve/hash_to_curve, - hashes, - towers, + extension_fields, arithmetic, - signatures/bls_signatures, - curves/zoo_subgroups, - primitives + curves/zoo_subgroups ], - ./backend/io/[io_bigints, io_fields] + ./math/io/[io_bigints, io_fields], + hashes, + signatures/bls_signatures export curves, # generic sandwich on matchingBigInt - towers, # generic sandwich on extension field access + extension_fields, # generic sandwich on extension field access hashes, # generic sandwich on sha256 ec_shortweierstrass # generic sandwich on affine diff --git a/constantine/ethereum_evm_precompiles.nim b/constantine/ethereum_evm_precompiles.nim index d75f483..30d1772 100644 --- a/constantine/ethereum_evm_precompiles.nim +++ b/constantine/ethereum_evm_precompiles.nim @@ -7,13 +7,14 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./backend/config/[common, curves], - ./backend/[arithmetic, towers], - ./backend/arithmetic/limbs_montgomery, - ./backend/ec_shortweierstrass, - ./backend/pairing/[pairing_bn, miller_loops, cyclotomic_subgroup], - ./backend/curves/zoo_subgroups, - ./backend/io/[io_bigints, io_fields] + ./platforms/abstractions, + ./math/config/curves, + ./math/[arithmetic, extension_fields], + ./math/arithmetic/limbs_montgomery, + ./math/ec_shortweierstrass, + ./math/pairing/[pairing_bn, miller_loops, cyclotomic_subgroup], + ./math/curves/zoo_subgroups, + ./math/io/[io_bigints, io_fields] # ############################################################ # diff --git a/constantine/backend/hash_to_curve/README.md b/constantine/hash_to_curve/README.md similarity index 100% rename from constantine/backend/hash_to_curve/README.md rename to constantine/hash_to_curve/README.md diff --git a/constantine/backend/hash_to_curve/h2c_hash_to_field.nim b/constantine/hash_to_curve/h2c_hash_to_field.nim similarity index 97% rename from constantine/backend/hash_to_curve/h2c_hash_to_field.nim rename to constantine/hash_to_curve/h2c_hash_to_field.nim index 1cfde96..0632f8c 100644 --- a/constantine/backend/hash_to_curve/h2c_hash_to_field.nim +++ b/constantine/hash_to_curve/h2c_hash_to_field.nim @@ -8,11 +8,12 @@ import # Internals + ../platforms/[abstractions, endians], ../hashes, - ../io/[endians, io_bigints, io_fields], - ../config/[common, curves, type_bigint, type_ff], - ../arithmetic/limbs_montgomery, - ../tower_field_extensions/extension_fields + ../math/io/[io_bigints, io_fields], + ../math/config/curves, + ../math/arithmetic/limbs_montgomery, + ../math/extension_fields/towers # ############################################################ # diff --git a/constantine/backend/isogeny/h2c_isogeny_maps.nim b/constantine/hash_to_curve/h2c_isogeny_maps.nim similarity index 97% rename from constantine/backend/isogeny/h2c_isogeny_maps.nim rename to constantine/hash_to_curve/h2c_isogeny_maps.nim index 83c1522..46bf59a 100644 --- a/constantine/backend/isogeny/h2c_isogeny_maps.nim +++ b/constantine/hash_to_curve/h2c_isogeny_maps.nim @@ -8,9 +8,10 @@ import # Internals - ../primitives, ../arithmetic, ../towers, - ../curves/zoo_hash_to_curve, - ../elliptic/[ + ../platforms/abstractions, + ../math/[arithmetic, extension_fields], + ../math/curves/zoo_hash_to_curve, + ../math/elliptic/[ ec_shortweierstrass_projective, ec_shortweierstrass_jacobian, ] @@ -194,7 +195,7 @@ func h2c_isogeny_map*[F; G: static Subgroup]( r.x.prod(rxn, ryd) # X = xn * yd r.x *= r.z # X = xn * xd * yd² r.y.square(r.z) # Y = xd² * yd² - r.y *= rdx # Y = yd² * xd³ + r.y *= rxd # Y = yd² * xd³ r.y *= ryn # Y = yn * yd² * xd³ func h2c_isogeny_map*[F; G: static Subgroup]( diff --git a/constantine/backend/hash_to_curve/h2c_map_to_isocurve_swu.nim b/constantine/hash_to_curve/h2c_map_to_isocurve_swu.nim similarity index 98% rename from constantine/backend/hash_to_curve/h2c_map_to_isocurve_swu.nim rename to constantine/hash_to_curve/h2c_map_to_isocurve_swu.nim index 9506242..931620d 100644 --- a/constantine/backend/hash_to_curve/h2c_map_to_isocurve_swu.nim +++ b/constantine/hash_to_curve/h2c_map_to_isocurve_swu.nim @@ -8,9 +8,10 @@ import # Internals - ../config/[common, curves], - ../primitives, ../arithmetic, ../towers, - ../curves/zoo_hash_to_curve + ../platforms/abstractions, + ../math/config/curves, + ../math/[arithmetic, extension_fields], + ../math/curves/zoo_hash_to_curve # ############################################################ # diff --git a/constantine/backend/hash_to_curve/hash_to_curve.nim b/constantine/hash_to_curve/hash_to_curve.nim similarity index 97% rename from constantine/backend/hash_to_curve/hash_to_curve.nim rename to constantine/hash_to_curve/hash_to_curve.nim index f11e131..50698b4 100644 --- a/constantine/backend/hash_to_curve/hash_to_curve.nim +++ b/constantine/hash_to_curve/hash_to_curve.nim @@ -8,13 +8,14 @@ import # Internals - ../config/[common, curves], - ../primitives, ../arithmetic, ../towers, - ../curves/[zoo_hash_to_curve, zoo_subgroups], - ../ec_shortweierstrass, + ../platforms/abstractions, + ../math/config/curves, + ../math/[arithmetic, extension_fields], + ../math/curves/[zoo_hash_to_curve, zoo_subgroups], + ../math/ec_shortweierstrass, ./h2c_hash_to_field, ./h2c_map_to_isocurve_swu, - ../isogeny/h2c_isogeny_maps, + ./h2c_isogeny_maps, ../hashes # ############################################################ diff --git a/constantine/backend/hashes.nim b/constantine/hashes.nim similarity index 100% rename from constantine/backend/hashes.nim rename to constantine/hashes.nim diff --git a/constantine/backend/hashes/h_sha256.nim b/constantine/hashes/h_sha256.nim similarity index 99% rename from constantine/backend/hashes/h_sha256.nim rename to constantine/hashes/h_sha256.nim index 873a4fd..76ea41d 100644 --- a/constantine/backend/hashes/h_sha256.nim +++ b/constantine/hashes/h_sha256.nim @@ -8,9 +8,7 @@ import std/macros, - ../config/common, - ../io/endians, - ../primitives/static_for + ../platforms/[abstractions, endians] # SHA256, a hash function from the SHA2 family # -------------------------------------------------------------------------------- diff --git a/constantine/backend/arithmetic.nim b/constantine/math/arithmetic.nim similarity index 100% rename from constantine/backend/arithmetic.nim rename to constantine/math/arithmetic.nim diff --git a/constantine/backend/arithmetic/README.md b/constantine/math/arithmetic/README.md similarity index 100% rename from constantine/backend/arithmetic/README.md rename to constantine/math/arithmetic/README.md diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim b/constantine/math/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim rename to constantine/math/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim index c19d4e9..dff0d80 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_modular_dbl_prec_x86.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives + ../../../platforms/abstractions # ############################################################ # # diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_modular_x86.nim b/constantine/math/arithmetic/assembly/limbs_asm_modular_x86.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_modular_x86.nim rename to constantine/math/arithmetic/assembly/limbs_asm_modular_x86.nim index 1cffb0d..a752ea6 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_modular_x86.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_modular_x86.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives + ../../../platforms/abstractions # ############################################################ # diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_mul_mont_x86.nim b/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_x86.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_mul_mont_x86.nim rename to constantine/math/arithmetic/assembly/limbs_asm_mul_mont_x86.nim index 46b8947..e290503 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_mul_mont_x86.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_x86.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives, + ../../../platforms/abstractions, ./limbs_asm_modular_x86, ./limbs_asm_redc_mont_x86, ./limbs_asm_mul_x86 diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim b/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim rename to constantine/math/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim index b845500..e72bea0 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_x86_adx_bmi2.nim @@ -10,8 +10,7 @@ import # Standard library std/[macros, algorithm], # Internal - ../../config/common, - ../../primitives, + ../../../platforms/abstractions, ./limbs_asm_modular_x86, ./limbs_asm_redc_mont_x86_adx_bmi2, ./limbs_asm_mul_x86_adx_bmi2 diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_mul_x86.nim b/constantine/math/arithmetic/assembly/limbs_asm_mul_x86.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_mul_x86.nim rename to constantine/math/arithmetic/assembly/limbs_asm_mul_x86.nim index 28d3def..4a88557 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_mul_x86.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_mul_x86.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives + ../../../platforms/abstractions # ############################################################ # diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim b/constantine/math/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim rename to constantine/math/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim index 6077684..9c8c693 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_mul_x86_adx_bmi2.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives + ../../../platforms/abstractions # ############################################################ # @@ -620,7 +619,8 @@ func square_asm_adx*[rLen, aLen: static int](r: var Limbs[rLen], a: Limbs[aLen]) when isMainModule: import - ../../config/[type_bigint, common], + ../../../platforms/abstractions, + ../../config/type_bigint, ../../arithmetic/limbs type SW = SecretWord diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_redc_mont_x86.nim b/constantine/math/arithmetic/assembly/limbs_asm_redc_mont_x86.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_redc_mont_x86.nim rename to constantine/math/arithmetic/assembly/limbs_asm_redc_mont_x86.nim index 866df62..3730e13 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_redc_mont_x86.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_redc_mont_x86.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives, + ../../../platforms/abstractions, ./limbs_asm_modular_x86 # ############################################################ diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim b/constantine/math/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim rename to constantine/math/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim index 0be05af..c0628ef 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_redc_mont_x86_adx_bmi2.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives, + ../../../platforms/abstractions, ./limbs_asm_modular_x86 # ############################################################ diff --git a/constantine/backend/arithmetic/assembly/limbs_asm_x86.nim b/constantine/math/arithmetic/assembly/limbs_asm_x86.nim similarity index 99% rename from constantine/backend/arithmetic/assembly/limbs_asm_x86.nim rename to constantine/math/arithmetic/assembly/limbs_asm_x86.nim index 105bd2e..091cbb2 100644 --- a/constantine/backend/arithmetic/assembly/limbs_asm_x86.nim +++ b/constantine/math/arithmetic/assembly/limbs_asm_x86.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../../config/common, - ../../primitives + ../../../platforms/abstractions # ############################################################ # diff --git a/constantine/backend/arithmetic/bigints.nim b/constantine/math/arithmetic/bigints.nim similarity index 99% rename from constantine/backend/arithmetic/bigints.nim rename to constantine/math/arithmetic/bigints.nim index 183e15d..0dae80c 100644 --- a/constantine/backend/arithmetic/bigints.nim +++ b/constantine/math/arithmetic/bigints.nim @@ -7,8 +7,8 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, type_bigint], - ../primitives, + ../../platforms/abstractions, + ../config/type_bigint, ./limbs, ./limbs_extmul, ./limbs_invmod, diff --git a/constantine/backend/arithmetic/bigints_montgomery.nim b/constantine/math/arithmetic/bigints_montgomery.nim similarity index 99% rename from constantine/backend/arithmetic/bigints_montgomery.nim rename to constantine/math/arithmetic/bigints_montgomery.nim index 39abc21..31a316a 100644 --- a/constantine/backend/arithmetic/bigints_montgomery.nim +++ b/constantine/math/arithmetic/bigints_montgomery.nim @@ -7,8 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, type_bigint], - ../primitives, + ../../platforms/abstractions, ../io/io_bigints, ./limbs, ./limbs_montgomery, diff --git a/constantine/backend/arithmetic/finite_fields.nim b/constantine/math/arithmetic/finite_fields.nim similarity index 99% rename from constantine/backend/arithmetic/finite_fields.nim rename to constantine/math/arithmetic/finite_fields.nim index fb3fac7..aea31d0 100644 --- a/constantine/backend/arithmetic/finite_fields.nim +++ b/constantine/math/arithmetic/finite_fields.nim @@ -27,8 +27,8 @@ # which requires a prime import - ../primitives, - ../config/[common, type_ff, curves_prop_field_core, curves_prop_field_derived], + ../../platforms/abstractions, + ../config/[type_ff, curves_prop_field_core, curves_prop_field_derived], ./bigints, ./bigints_montgomery when UseASM_X86_64: @@ -100,7 +100,7 @@ func cswap*(a, b: var FF, ctl: CTBool) {.meter.} = # Routines for special field modulus form: # - Mersenne Prime (2ᵏ - 1), # - Generalized Mersenne Prime (NIST Prime P256: 2^256 - 2^224 + 2^192 + 2^96 - 1) -# - Pseudo-Mersenne Prime (2^m - k for example Curve25519: 2^255 - 19) +# - Pseudo-Mersenne Prime (2^m - k for example Edwards25519: 2^255 - 19) # - Golden Primes (φ^2 - φ - 1 with φ = 2ᵏ for example Ed448-Goldilocks: 2^448 - 2^224 - 1) # exist and can be implemented with compile-time specialization. diff --git a/constantine/backend/arithmetic/finite_fields_double_precision.nim b/constantine/math/arithmetic/finite_fields_double_precision.nim similarity index 99% rename from constantine/backend/arithmetic/finite_fields_double_precision.nim rename to constantine/math/arithmetic/finite_fields_double_precision.nim index f5cb81a..e41cfe3 100644 --- a/constantine/backend/arithmetic/finite_fields_double_precision.nim +++ b/constantine/math/arithmetic/finite_fields_double_precision.nim @@ -7,8 +7,8 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_ff], - ../primitives, + ../../platforms/abstractions, + ../config/curves, ./bigints, ./finite_fields, ./limbs, diff --git a/constantine/backend/arithmetic/finite_fields_square_root.nim b/constantine/math/arithmetic/finite_fields_square_root.nim similarity index 99% rename from constantine/backend/arithmetic/finite_fields_square_root.nim rename to constantine/math/arithmetic/finite_fields_square_root.nim index 5943a9a..9347f68 100644 --- a/constantine/backend/arithmetic/finite_fields_square_root.nim +++ b/constantine/math/arithmetic/finite_fields_square_root.nim @@ -7,8 +7,8 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, type_ff, curves], + ../../platforms/abstractions, + ../config/curves, ../curves/zoo_square_roots, ./bigints, ./finite_fields diff --git a/constantine/backend/arithmetic/limbs.nim b/constantine/math/arithmetic/limbs.nim similarity index 99% rename from constantine/backend/arithmetic/limbs.nim rename to constantine/math/arithmetic/limbs.nim index a10cdf0..55fefce 100644 --- a/constantine/backend/arithmetic/limbs.nim +++ b/constantine/math/arithmetic/limbs.nim @@ -6,9 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import - ../config/common, - ../primitives +import ../../platforms/abstractions when UseASM_X86_32: import ./assembly/limbs_asm_x86 diff --git a/constantine/backend/arithmetic/limbs_division.nim b/constantine/math/arithmetic/limbs_division.nim similarity index 99% rename from constantine/backend/arithmetic/limbs_division.nim rename to constantine/math/arithmetic/limbs_division.nim index 4e0e6ec..44240c0 100644 --- a/constantine/backend/arithmetic/limbs_division.nim +++ b/constantine/math/arithmetic/limbs_division.nim @@ -6,9 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import - ../config/common, - ../primitives +import ../../platforms/abstractions # No exceptions allowed {.push raises: [].} diff --git a/constantine/backend/arithmetic/limbs_extmul.nim b/constantine/math/arithmetic/limbs_extmul.nim similarity index 99% rename from constantine/backend/arithmetic/limbs_extmul.nim rename to constantine/math/arithmetic/limbs_extmul.nim index 49ec322..807d3a3 100644 --- a/constantine/backend/arithmetic/limbs_extmul.nim +++ b/constantine/math/arithmetic/limbs_extmul.nim @@ -7,8 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/common, - ../primitives, + ../../platforms/abstractions, ./limbs when UseASM_X86_64: diff --git a/constantine/backend/arithmetic/limbs_invmod.nim b/constantine/math/arithmetic/limbs_invmod.nim similarity index 99% rename from constantine/backend/arithmetic/limbs_invmod.nim rename to constantine/math/arithmetic/limbs_invmod.nim index c128fb2..8fddcdc 100644 --- a/constantine/backend/arithmetic/limbs_invmod.nim +++ b/constantine/math/arithmetic/limbs_invmod.nim @@ -7,8 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/common, - ../primitives, + ../../platforms/abstractions, ./limbs, ./limbs_unsaturated # No exceptions allowed diff --git a/constantine/backend/arithmetic/limbs_montgomery.nim b/constantine/math/arithmetic/limbs_montgomery.nim similarity index 99% rename from constantine/backend/arithmetic/limbs_montgomery.nim rename to constantine/math/arithmetic/limbs_montgomery.nim index b8d2018..9e2be6d 100644 --- a/constantine/backend/arithmetic/limbs_montgomery.nim +++ b/constantine/math/arithmetic/limbs_montgomery.nim @@ -10,8 +10,7 @@ import # Standard library std/macros, # Internal - ../config/common, - ../primitives, + ../../platforms/abstractions, ./limbs, ./limbs_extmul when UseASM_X86_32: diff --git a/constantine/backend/arithmetic/limbs_unsaturated.nim b/constantine/math/arithmetic/limbs_unsaturated.nim similarity index 99% rename from constantine/backend/arithmetic/limbs_unsaturated.nim rename to constantine/math/arithmetic/limbs_unsaturated.nim index 3920545..d2ff772 100644 --- a/constantine/backend/arithmetic/limbs_unsaturated.nim +++ b/constantine/math/arithmetic/limbs_unsaturated.nim @@ -6,9 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import - ../config/common, - ../primitives +import ../../platforms/abstractions type SignedSecretWord* = distinct SecretWord diff --git a/constantine/backend/config/README.md b/constantine/math/config/README.md similarity index 100% rename from constantine/backend/config/README.md rename to constantine/math/config/README.md diff --git a/constantine/backend/config/curves.nim b/constantine/math/config/curves.nim similarity index 100% rename from constantine/backend/config/curves.nim rename to constantine/math/config/curves.nim diff --git a/constantine/backend/config/curves_declaration.nim b/constantine/math/config/curves_declaration.nim similarity index 99% rename from constantine/backend/config/curves_declaration.nim rename to constantine/math/config/curves_declaration.nim index 2b5be17..4836b5b 100644 --- a/constantine/backend/config/curves_declaration.nim +++ b/constantine/math/config/curves_declaration.nim @@ -152,7 +152,7 @@ declareCurves: coef_a: -5 coef_d: "6389c12633c267cbc66e3bf86be3b6d8cb66677177e54f92b369f2f5188d58e7" - curve Curve25519: # Bernstein curve + curve Edwards25519: # Bernstein curve bitwidth: 255 modulus: "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed" diff --git a/constantine/backend/config/curves_derived.nim b/constantine/math/config/curves_derived.nim similarity index 100% rename from constantine/backend/config/curves_derived.nim rename to constantine/math/config/curves_derived.nim diff --git a/constantine/backend/config/curves_parser_curve.nim b/constantine/math/config/curves_parser_curve.nim similarity index 100% rename from constantine/backend/config/curves_parser_curve.nim rename to constantine/math/config/curves_parser_curve.nim diff --git a/constantine/backend/config/curves_parser_field.nim b/constantine/math/config/curves_parser_field.nim similarity index 100% rename from constantine/backend/config/curves_parser_field.nim rename to constantine/math/config/curves_parser_field.nim diff --git a/constantine/backend/config/curves_prop_curve.nim b/constantine/math/config/curves_prop_curve.nim similarity index 100% rename from constantine/backend/config/curves_prop_curve.nim rename to constantine/math/config/curves_prop_curve.nim diff --git a/constantine/backend/config/curves_prop_field_core.nim b/constantine/math/config/curves_prop_field_core.nim similarity index 96% rename from constantine/backend/config/curves_prop_field_core.nim rename to constantine/math/config/curves_prop_field_core.nim index 16cd86e..23155a4 100644 --- a/constantine/backend/config/curves_prop_field_core.nim +++ b/constantine/math/config/curves_prop_field_core.nim @@ -9,7 +9,8 @@ import # Standard library std/macros, # Internal - ./type_bigint, ./common, + ../../platforms/abstractions, + ./type_bigint, ./curves_declaration export Curve diff --git a/constantine/backend/config/curves_prop_field_derived.nim b/constantine/math/config/curves_prop_field_derived.nim similarity index 98% rename from constantine/backend/config/curves_prop_field_derived.nim rename to constantine/math/config/curves_prop_field_derived.nim index dc41b54..dc7d5c8 100644 --- a/constantine/backend/config/curves_prop_field_derived.nim +++ b/constantine/math/config/curves_prop_field_derived.nim @@ -10,7 +10,8 @@ import # Standard library std/macros, # Internal - ./type_bigint, ./type_ff, ./common, + ../../platforms/abstractions, + ./type_bigint, ./type_ff, ./curves_declaration, ./curves_prop_field_core, ./curves_derived # ############################################################ diff --git a/constantine/backend/config/precompute.nim b/constantine/math/config/precompute.nim similarity index 99% rename from constantine/backend/config/precompute.nim rename to constantine/math/config/precompute.nim index 00d10aa..18b065e 100644 --- a/constantine/backend/config/precompute.nim +++ b/constantine/math/config/precompute.nim @@ -7,8 +7,8 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./type_bigint, ./common, - ../primitives, + ../../platforms/abstractions, + ./type_bigint, ../io/io_bigints # Precomputed constants diff --git a/constantine/backend/config/type_bigint.nim b/constantine/math/config/type_bigint.nim similarity index 98% rename from constantine/backend/config/type_bigint.nim rename to constantine/math/config/type_bigint.nim index 4579545..15de197 100644 --- a/constantine/backend/config/type_bigint.nim +++ b/constantine/math/config/type_bigint.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ./common +import ../../platforms/abstractions func wordsRequired*(bits: int): int {.compileTime.} = ## Compute the number of limbs required diff --git a/constantine/backend/config/type_ff.nim b/constantine/math/config/type_ff.nim similarity index 98% rename from constantine/backend/config/type_ff.nim rename to constantine/math/config/type_ff.nim index 50a465d..d2d10a2 100644 --- a/constantine/backend/config/type_ff.nim +++ b/constantine/math/config/type_ff.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./common, + ../../platforms/abstractions, ./curves_declaration, ./curves_prop_field_core diff --git a/constantine/backend/curves/README.md b/constantine/math/curves/README.md similarity index 100% rename from constantine/backend/curves/README.md rename to constantine/math/curves/README.md diff --git a/constantine/backend/curves/bandersnatch_sqrt.nim b/constantine/math/curves/bandersnatch_sqrt.nim similarity index 95% rename from constantine/backend/curves/bandersnatch_sqrt.nim rename to constantine/math/curves/bandersnatch_sqrt.nim index 92a1e25..1f7d406 100644 --- a/constantine/backend/curves/bandersnatch_sqrt.nim +++ b/constantine/math/curves/bandersnatch_sqrt.nim @@ -5,7 +5,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields], ../arithmetic/finite_fields diff --git a/constantine/backend/curves/bls12_377_constants.nim b/constantine/math/curves/bls12_377_constants.nim similarity index 97% rename from constantine/backend/curves/bls12_377_constants.nim rename to constantine/math/curves/bls12_377_constants.nim index b30f016..9f95ea1 100644 --- a/constantine/backend/curves/bls12_377_constants.nim +++ b/constantine/math/curves/bls12_377_constants.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Curve precomputed parameters # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_377_endomorphisms.nim b/constantine/math/curves/bls12_377_endomorphisms.nim similarity index 98% rename from constantine/backend/curves/bls12_377_endomorphisms.nim rename to constantine/math/curves/bls12_377_endomorphisms.nim index 0f55f69..d6b2582 100644 --- a/constantine/backend/curves/bls12_377_endomorphisms.nim +++ b/constantine/math/curves/bls12_377_endomorphisms.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields] # BLS12_377 G1 diff --git a/constantine/backend/curves/bls12_377_frobenius.nim b/constantine/math/curves/bls12_377_frobenius.nim similarity index 99% rename from constantine/backend/curves/bls12_377_frobenius.nim rename to constantine/math/curves/bls12_377_frobenius.nim index fd039b1..408d66c 100644 --- a/constantine/backend/curves/bls12_377_frobenius.nim +++ b/constantine/math/curves/bls12_377_frobenius.nim @@ -8,8 +8,8 @@ import ../config/curves, - ../towers, - ../io/io_towers + ../extension_fields, + ../io/io_extfields # Frobenius map - on extension fields # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_377_pairing.nim b/constantine/math/curves/bls12_377_pairing.nim similarity index 98% rename from constantine/backend/curves/bls12_377_pairing.nim rename to constantine/math/curves/bls12_377_pairing.nim index 0430619..d59b000 100644 --- a/constantine/backend/curves/bls12_377_pairing.nim +++ b/constantine/math/curves/bls12_377_pairing.nim @@ -7,12 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_bigint, type_ff], + ../../platforms/abstractions, + ../config/curves, ../io/io_bigints, - ../towers, + ../extension_fields, ../elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective], ../pairing/[cyclotomic_subgroup, miller_loops], - ../isogeny/frobenius + ../isogenies/frobenius # Slow generic implementation # ------------------------------------------------------------ diff --git a/constantine/backend/curves/bls12_377_sqrt.nim b/constantine/math/curves/bls12_377_sqrt.nim similarity index 99% rename from constantine/backend/curves/bls12_377_sqrt.nim rename to constantine/math/curves/bls12_377_sqrt.nim index 3af0f4b..d0fe528 100644 --- a/constantine/backend/curves/bls12_377_sqrt.nim +++ b/constantine/math/curves/bls12_377_sqrt.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields], ../arithmetic/finite_fields diff --git a/constantine/backend/curves/bls12_377_subgroups.nim b/constantine/math/curves/bls12_377_subgroups.nim similarity index 98% rename from constantine/backend/curves/bls12_377_subgroups.nim rename to constantine/math/curves/bls12_377_subgroups.nim index d543ff3..cf34c6c 100644 --- a/constantine/backend/curves/bls12_377_subgroups.nim +++ b/constantine/math/curves/bls12_377_subgroups.nim @@ -8,13 +8,13 @@ import # Internals - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../primitives, - ../towers, + ../extension_fields, ../ec_shortweierstrass, ../io/io_bigints, - ../isogeny/frobenius, + ../isogenies/frobenius, ../curves/zoo_endomorphisms func pow_bls12_377_abs_x[ECP: ECP_ShortW[Fp[BLS12_377], G1] or diff --git a/constantine/backend/curves/bls12_381_constants.nim b/constantine/math/curves/bls12_381_constants.nim similarity index 97% rename from constantine/backend/curves/bls12_381_constants.nim rename to constantine/math/curves/bls12_381_constants.nim index f8fb016..ab8ca64 100644 --- a/constantine/backend/curves/bls12_381_constants.nim +++ b/constantine/math/curves/bls12_381_constants.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Curve precomputed parameters # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_381_endomorphisms.nim b/constantine/math/curves/bls12_381_endomorphisms.nim similarity index 98% rename from constantine/backend/curves/bls12_381_endomorphisms.nim rename to constantine/math/curves/bls12_381_endomorphisms.nim index 9085d95..bec9d39 100644 --- a/constantine/backend/curves/bls12_381_endomorphisms.nim +++ b/constantine/math/curves/bls12_381_endomorphisms.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields] # BLS12_381 G1 diff --git a/constantine/backend/curves/bls12_381_frobenius.nim b/constantine/math/curves/bls12_381_frobenius.nim similarity index 99% rename from constantine/backend/curves/bls12_381_frobenius.nim rename to constantine/math/curves/bls12_381_frobenius.nim index 761ae96..ca1e5fb 100644 --- a/constantine/backend/curves/bls12_381_frobenius.nim +++ b/constantine/math/curves/bls12_381_frobenius.nim @@ -8,8 +8,8 @@ import ../config/curves, - ../towers, - ../io/io_towers + ../extension_fields, + ../io/io_extfields # Frobenius map - on extension fields # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_381_g2_hash_to_curve.nim b/constantine/math/curves/bls12_381_g2_hash_to_curve.nim similarity index 99% rename from constantine/backend/curves/bls12_381_g2_hash_to_curve.nim rename to constantine/math/curves/bls12_381_g2_hash_to_curve.nim index 0ffec6c..ab10ad9 100644 --- a/constantine/backend/curves/bls12_381_g2_hash_to_curve.nim +++ b/constantine/math/curves/bls12_381_g2_hash_to_curve.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/[io_fields, io_towers] + ../io/[io_fields, io_extfields] # Hash-to-Curve map to isogenous BLS12-381 E'2 constants # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_381_generators.nim b/constantine/math/curves/bls12_381_generators.nim similarity index 96% rename from constantine/backend/curves/bls12_381_generators.nim rename to constantine/math/curves/bls12_381_generators.nim index d1eb747..59051fa 100644 --- a/constantine/backend/curves/bls12_381_generators.nim +++ b/constantine/math/curves/bls12_381_generators.nim @@ -7,9 +7,9 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_ff], + ../config/curves, ../elliptic/ec_shortweierstrass_affine, - ../io/[io_fields, io_towers] + ../io/[io_fields, io_extfields] # Generators # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_381_pairing.nim b/constantine/math/curves/bls12_381_pairing.nim similarity index 98% rename from constantine/backend/curves/bls12_381_pairing.nim rename to constantine/math/curves/bls12_381_pairing.nim index 4f22cb5..0f02b43 100644 --- a/constantine/backend/curves/bls12_381_pairing.nim +++ b/constantine/math/curves/bls12_381_pairing.nim @@ -7,12 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_bigint, type_ff], + ../../platforms/abstractions, + ../config/curves, ../io/io_bigints, - ../towers, + ../extension_fields, ../elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective], ../pairing/[cyclotomic_subgroup, miller_loops], - ../isogeny/frobenius + ../isogenies/frobenius # Slow generic implementation # ------------------------------------------------------------ diff --git a/constantine/backend/curves/bls12_381_sqrt.nim b/constantine/math/curves/bls12_381_sqrt.nim similarity index 100% rename from constantine/backend/curves/bls12_381_sqrt.nim rename to constantine/math/curves/bls12_381_sqrt.nim diff --git a/constantine/backend/curves/bls12_381_sqrt_fp2.nim b/constantine/math/curves/bls12_381_sqrt_fp2.nim similarity index 98% rename from constantine/backend/curves/bls12_381_sqrt_fp2.nim rename to constantine/math/curves/bls12_381_sqrt_fp2.nim index ceb52ea..7dcdd7d 100644 --- a/constantine/backend/curves/bls12_381_sqrt_fp2.nim +++ b/constantine/math/curves/bls12_381_sqrt_fp2.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Square Root Fp2 constants # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bls12_381_subgroups.nim b/constantine/math/curves/bls12_381_subgroups.nim similarity index 98% rename from constantine/backend/curves/bls12_381_subgroups.nim rename to constantine/math/curves/bls12_381_subgroups.nim index 7aeaf21..8216f53 100644 --- a/constantine/backend/curves/bls12_381_subgroups.nim +++ b/constantine/math/curves/bls12_381_subgroups.nim @@ -8,13 +8,13 @@ import # Internals - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../primitives, - ../towers, + ../extension_fields, ../ec_shortweierstrass, ../io/io_bigints, - ../isogeny/frobenius, + ../isogenies/frobenius, ../curves/zoo_endomorphisms func pow_bls12_381_abs_x[ECP: ECP_ShortW[Fp[BLS12_381], G1] or diff --git a/constantine/backend/curves/bn254_nogami_constants.nim b/constantine/math/curves/bn254_nogami_constants.nim similarity index 97% rename from constantine/backend/curves/bn254_nogami_constants.nim rename to constantine/math/curves/bn254_nogami_constants.nim index 948933c..8c2ba96 100644 --- a/constantine/backend/curves/bn254_nogami_constants.nim +++ b/constantine/math/curves/bn254_nogami_constants.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Curve precomputed parameters # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bn254_nogami_endomorphisms.nim b/constantine/math/curves/bn254_nogami_endomorphisms.nim similarity index 98% rename from constantine/backend/curves/bn254_nogami_endomorphisms.nim rename to constantine/math/curves/bn254_nogami_endomorphisms.nim index 302fa63..00fc212 100644 --- a/constantine/backend/curves/bn254_nogami_endomorphisms.nim +++ b/constantine/math/curves/bn254_nogami_endomorphisms.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields] # BN254_Nogami G1 diff --git a/constantine/backend/curves/bn254_nogami_frobenius.nim b/constantine/math/curves/bn254_nogami_frobenius.nim similarity index 99% rename from constantine/backend/curves/bn254_nogami_frobenius.nim rename to constantine/math/curves/bn254_nogami_frobenius.nim index 69535c9..2adfac8 100644 --- a/constantine/backend/curves/bn254_nogami_frobenius.nim +++ b/constantine/math/curves/bn254_nogami_frobenius.nim @@ -8,8 +8,8 @@ import ../config/curves, - ../towers, - ../io/io_towers + ../extension_fields, + ../io/io_extfields # Frobenius map - on extension fields # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bn254_nogami_pairing.nim b/constantine/math/curves/bn254_nogami_pairing.nim similarity index 97% rename from constantine/backend/curves/bn254_nogami_pairing.nim rename to constantine/math/curves/bn254_nogami_pairing.nim index ae21841..986de67 100644 --- a/constantine/backend/curves/bn254_nogami_pairing.nim +++ b/constantine/math/curves/bn254_nogami_pairing.nim @@ -7,12 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_bigint, type_ff], + ../../platforms/abstractions, + ../config/curves, ../io/io_bigints, - ../towers, + ../extension_fields, ../elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective], ../pairing/[cyclotomic_subgroup, miller_loops], - ../isogeny/frobenius + ../isogenies/frobenius # Slow generic implementation # ------------------------------------------------------------ diff --git a/constantine/backend/curves/bn254_nogami_sqrt.nim b/constantine/math/curves/bn254_nogami_sqrt.nim similarity index 100% rename from constantine/backend/curves/bn254_nogami_sqrt.nim rename to constantine/math/curves/bn254_nogami_sqrt.nim diff --git a/constantine/backend/curves/bn254_nogami_sqrt_fp2.nim b/constantine/math/curves/bn254_nogami_sqrt_fp2.nim similarity index 98% rename from constantine/backend/curves/bn254_nogami_sqrt_fp2.nim rename to constantine/math/curves/bn254_nogami_sqrt_fp2.nim index 37e995d..c976bd5 100644 --- a/constantine/backend/curves/bn254_nogami_sqrt_fp2.nim +++ b/constantine/math/curves/bn254_nogami_sqrt_fp2.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Square Root Fp2 constants # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bn254_nogami_subgroups.nim b/constantine/math/curves/bn254_nogami_subgroups.nim similarity index 98% rename from constantine/backend/curves/bn254_nogami_subgroups.nim rename to constantine/math/curves/bn254_nogami_subgroups.nim index d724e91..346c291 100644 --- a/constantine/backend/curves/bn254_nogami_subgroups.nim +++ b/constantine/math/curves/bn254_nogami_subgroups.nim @@ -8,13 +8,13 @@ import # Internals - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../primitives, - ../towers, + ../extension_fields, ../ec_shortweierstrass, ../io/io_bigints, - ../isogeny/frobenius + ../isogenies/frobenius func pow_BN254_Nogami_abs_u*[ECP: ECP_ShortW[Fp[BN254_Nogami], G1] or ECP_ShortW[Fp2[BN254_Nogami], G2]]( diff --git a/constantine/backend/curves/bn254_snarks_constants.nim b/constantine/math/curves/bn254_snarks_constants.nim similarity index 97% rename from constantine/backend/curves/bn254_snarks_constants.nim rename to constantine/math/curves/bn254_snarks_constants.nim index c49bcac..0f53b95 100644 --- a/constantine/backend/curves/bn254_snarks_constants.nim +++ b/constantine/math/curves/bn254_snarks_constants.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Curve precomputed parameters # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bn254_snarks_endomorphisms.nim b/constantine/math/curves/bn254_snarks_endomorphisms.nim similarity index 98% rename from constantine/backend/curves/bn254_snarks_endomorphisms.nim rename to constantine/math/curves/bn254_snarks_endomorphisms.nim index 5955d85..6243e7a 100644 --- a/constantine/backend/curves/bn254_snarks_endomorphisms.nim +++ b/constantine/math/curves/bn254_snarks_endomorphisms.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields] # BN254_Snarks G1 diff --git a/constantine/backend/curves/bn254_snarks_frobenius.nim b/constantine/math/curves/bn254_snarks_frobenius.nim similarity index 99% rename from constantine/backend/curves/bn254_snarks_frobenius.nim rename to constantine/math/curves/bn254_snarks_frobenius.nim index 0dd6c91..b70ded7 100644 --- a/constantine/backend/curves/bn254_snarks_frobenius.nim +++ b/constantine/math/curves/bn254_snarks_frobenius.nim @@ -8,8 +8,8 @@ import ../config/curves, - ../towers, - ../io/io_towers + ../extension_fields, + ../io/io_extfields # Frobenius map - on extension fields # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bn254_snarks_pairing.nim b/constantine/math/curves/bn254_snarks_pairing.nim similarity index 97% rename from constantine/backend/curves/bn254_snarks_pairing.nim rename to constantine/math/curves/bn254_snarks_pairing.nim index 3f99510..34807c1 100644 --- a/constantine/backend/curves/bn254_snarks_pairing.nim +++ b/constantine/math/curves/bn254_snarks_pairing.nim @@ -7,12 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_bigint, type_ff], + ../../platforms/abstractions, + ../config/curves, ../io/io_bigints, - ../towers, + ../extension_fields, ../elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective], ../pairing/[cyclotomic_subgroup, miller_loops], - ../isogeny/frobenius + ../isogenies/frobenius # Slow generic implementation # ------------------------------------------------------------ diff --git a/constantine/backend/curves/bn254_snarks_sqrt.nim b/constantine/math/curves/bn254_snarks_sqrt.nim similarity index 100% rename from constantine/backend/curves/bn254_snarks_sqrt.nim rename to constantine/math/curves/bn254_snarks_sqrt.nim diff --git a/constantine/backend/curves/bn254_snarks_sqrt_fp2.nim b/constantine/math/curves/bn254_snarks_sqrt_fp2.nim similarity index 98% rename from constantine/backend/curves/bn254_snarks_sqrt_fp2.nim rename to constantine/math/curves/bn254_snarks_sqrt_fp2.nim index 70e0c21..c03101c 100644 --- a/constantine/backend/curves/bn254_snarks_sqrt_fp2.nim +++ b/constantine/math/curves/bn254_snarks_sqrt_fp2.nim @@ -8,7 +8,7 @@ import ../config/curves, - ../io/io_towers + ../io/io_extfields # Square Root Fp2 constants # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bn254_snarks_subgroups.nim b/constantine/math/curves/bn254_snarks_subgroups.nim similarity index 98% rename from constantine/backend/curves/bn254_snarks_subgroups.nim rename to constantine/math/curves/bn254_snarks_subgroups.nim index fcff531..60fdd4c 100644 --- a/constantine/backend/curves/bn254_snarks_subgroups.nim +++ b/constantine/math/curves/bn254_snarks_subgroups.nim @@ -8,13 +8,13 @@ import # Internals - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../primitives, - ../towers, + ../extension_fields, ../ec_shortweierstrass, ../io/io_bigints, - ../isogeny/frobenius + ../isogenies/frobenius func pow_bn254_snarks_abs_u*[ECP: ECP_ShortW[Fp[BN254_Snarks], G1] or ECP_ShortW[Fp2[BN254_Snarks], G2]]( diff --git a/constantine/backend/curves/bw6_761_constants.nim b/constantine/math/curves/bw6_761_constants.nim similarity index 100% rename from constantine/backend/curves/bw6_761_constants.nim rename to constantine/math/curves/bw6_761_constants.nim diff --git a/constantine/backend/curves/bw6_761_endomorphisms.nim b/constantine/math/curves/bw6_761_endomorphisms.nim similarity index 98% rename from constantine/backend/curves/bw6_761_endomorphisms.nim rename to constantine/math/curves/bw6_761_endomorphisms.nim index 344c2c7..0887a93 100644 --- a/constantine/backend/curves/bw6_761_endomorphisms.nim +++ b/constantine/math/curves/bw6_761_endomorphisms.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields] # BW6_761 G1 diff --git a/constantine/backend/curves/bw6_761_frobenius.nim b/constantine/math/curves/bw6_761_frobenius.nim similarity index 98% rename from constantine/backend/curves/bw6_761_frobenius.nim rename to constantine/math/curves/bw6_761_frobenius.nim index 19b7cc0..1d542ec 100644 --- a/constantine/backend/curves/bw6_761_frobenius.nim +++ b/constantine/math/curves/bw6_761_frobenius.nim @@ -7,9 +7,9 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_ff], - ../towers, - ../io/[io_fields, io_towers] + ../config/curves, + ../extension_fields, + ../io/[io_fields, io_extfields] # Frobenius map - on extension fields # ----------------------------------------------------------------- diff --git a/constantine/backend/curves/bw6_761_pairing.nim b/constantine/math/curves/bw6_761_pairing.nim similarity index 98% rename from constantine/backend/curves/bw6_761_pairing.nim rename to constantine/math/curves/bw6_761_pairing.nim index 989ecba..03824fb 100644 --- a/constantine/backend/curves/bw6_761_pairing.nim +++ b/constantine/math/curves/bw6_761_pairing.nim @@ -7,11 +7,12 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_bigint], + ../../platforms/abstractions, + ../config/curves, ../io/io_bigints, - ../towers, + ../extension_fields, ../pairing/cyclotomic_subgroup, - ../isogeny/frobenius + ../isogenies/frobenius # Slow generic implementation # ------------------------------------------------------------ diff --git a/constantine/backend/curves/bw6_761_sqrt.nim b/constantine/math/curves/bw6_761_sqrt.nim similarity index 100% rename from constantine/backend/curves/bw6_761_sqrt.nim rename to constantine/math/curves/bw6_761_sqrt.nim diff --git a/constantine/backend/curves/bw6_761_subgroups.nim b/constantine/math/curves/bw6_761_subgroups.nim similarity index 94% rename from constantine/backend/curves/bw6_761_subgroups.nim rename to constantine/math/curves/bw6_761_subgroups.nim index baa72c3..7271c57 100644 --- a/constantine/backend/curves/bw6_761_subgroups.nim +++ b/constantine/math/curves/bw6_761_subgroups.nim @@ -8,13 +8,13 @@ import # Internals - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../primitives, - ../towers, + ../extension_fields, ../ec_shortweierstrass, ../io/io_bigints, - ../isogeny/frobenius + ../isogenies/frobenius # ############################################################ # diff --git a/constantine/backend/curves/curve25519_sqrt.nim b/constantine/math/curves/curve25519_sqrt.nim similarity index 89% rename from constantine/backend/curves/curve25519_sqrt.nim rename to constantine/math/curves/curve25519_sqrt.nim index 322eb4a..eb4419b 100644 --- a/constantine/backend/curves/curve25519_sqrt.nim +++ b/constantine/math/curves/curve25519_sqrt.nim @@ -7,13 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_ff], + ../config/curves, ../arithmetic/finite_fields -func invsqrt_addchain_pminus5over8*(r: var Fp[Curve25519], a: Fp[Curve25519]) = +func invsqrt_addchain_pminus5over8*(r: var Fp[Edwards25519], a: Fp[Edwards25519]) = ## Returns a^((p-5)/8) = 2²⁵²-3 for inverse square root computation - var t{.noInit.}, u{.noInit.}, v{.noinit.}: Fp[Curve25519] + var t{.noInit.}, u{.noInit.}, v{.noinit.}: Fp[Edwards25519] u.square(a) # 2 v.square_repeated(u, 2) # 8 v *= a # 9 diff --git a/constantine/backend/curves/jubjub_sqrt.nim b/constantine/math/curves/jubjub_sqrt.nim similarity index 95% rename from constantine/backend/curves/jubjub_sqrt.nim rename to constantine/math/curves/jubjub_sqrt.nim index 066a709..523fcd7 100644 --- a/constantine/backend/curves/jubjub_sqrt.nim +++ b/constantine/math/curves/jubjub_sqrt.nim @@ -5,7 +5,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_bigint, type_ff], + ../config/curves, ../io/[io_bigints, io_fields], ../arithmetic/finite_fields diff --git a/constantine/backend/curves/zoo_constants.nim b/constantine/math/curves/zoo_constants.nim similarity index 100% rename from constantine/backend/curves/zoo_constants.nim rename to constantine/math/curves/zoo_constants.nim diff --git a/constantine/backend/curves/zoo_endomorphisms.nim b/constantine/math/curves/zoo_endomorphisms.nim similarity index 97% rename from constantine/backend/curves/zoo_endomorphisms.nim rename to constantine/math/curves/zoo_endomorphisms.nim index c9dd5a3..4c0179c 100644 --- a/constantine/backend/curves/zoo_endomorphisms.nim +++ b/constantine/math/curves/zoo_endomorphisms.nim @@ -8,8 +8,8 @@ import std/macros, - ../config/[curves, type_ff], - ../towers, + ../config/curves, + ../extension_fields, ./bls12_377_endomorphisms, ./bls12_381_endomorphisms, ./bn254_nogami_endomorphisms, diff --git a/constantine/backend/curves/zoo_frobenius.nim b/constantine/math/curves/zoo_frobenius.nim similarity index 100% rename from constantine/backend/curves/zoo_frobenius.nim rename to constantine/math/curves/zoo_frobenius.nim diff --git a/constantine/backend/curves/zoo_generators.nim b/constantine/math/curves/zoo_generators.nim similarity index 100% rename from constantine/backend/curves/zoo_generators.nim rename to constantine/math/curves/zoo_generators.nim diff --git a/constantine/backend/curves/zoo_hash_to_curve.nim b/constantine/math/curves/zoo_hash_to_curve.nim similarity index 100% rename from constantine/backend/curves/zoo_hash_to_curve.nim rename to constantine/math/curves/zoo_hash_to_curve.nim diff --git a/constantine/backend/curves/zoo_pairings.nim b/constantine/math/curves/zoo_pairings.nim similarity index 100% rename from constantine/backend/curves/zoo_pairings.nim rename to constantine/math/curves/zoo_pairings.nim diff --git a/constantine/backend/curves/zoo_square_roots.nim b/constantine/math/curves/zoo_square_roots.nim similarity index 91% rename from constantine/backend/curves/zoo_square_roots.nim rename to constantine/math/curves/zoo_square_roots.nim index 9683dbb..286206a 100644 --- a/constantine/backend/curves/zoo_square_roots.nim +++ b/constantine/math/curves/zoo_square_roots.nim @@ -8,7 +8,7 @@ import std/macros, - ../config/[curves, type_ff], + ../config/curves, ./bls12_377_sqrt, ./bls12_381_sqrt, ./bn254_nogami_sqrt, @@ -27,7 +27,7 @@ export curve25519_sqrt func hasSqrtAddchain*(C: static Curve): static bool = - when C in {BLS12_381, BN254_Nogami, BN254_Snarks, BW6_761, Curve25519}: + when C in {BLS12_381, BN254_Nogami, BN254_Snarks, BW6_761, Edwards25519}: true else: false diff --git a/constantine/backend/curves/zoo_square_roots_fp2.nim b/constantine/math/curves/zoo_square_roots_fp2.nim similarity index 100% rename from constantine/backend/curves/zoo_square_roots_fp2.nim rename to constantine/math/curves/zoo_square_roots_fp2.nim diff --git a/constantine/backend/curves/zoo_subgroups.nim b/constantine/math/curves/zoo_subgroups.nim similarity index 100% rename from constantine/backend/curves/zoo_subgroups.nim rename to constantine/math/curves/zoo_subgroups.nim diff --git a/constantine/backend/ec_shortweierstrass.nim b/constantine/math/ec_shortweierstrass.nim similarity index 100% rename from constantine/backend/ec_shortweierstrass.nim rename to constantine/math/ec_shortweierstrass.nim diff --git a/constantine/backend/elliptic/README.md b/constantine/math/elliptic/README.md similarity index 100% rename from constantine/backend/elliptic/README.md rename to constantine/math/elliptic/README.md diff --git a/constantine/backend/elliptic/ec_endomorphism_accel.nim b/constantine/math/elliptic/ec_endomorphism_accel.nim similarity index 99% rename from constantine/backend/elliptic/ec_endomorphism_accel.nim rename to constantine/math/elliptic/ec_endomorphism_accel.nim index fe3523c..170c191 100644 --- a/constantine/backend/elliptic/ec_endomorphism_accel.nim +++ b/constantine/math/elliptic/ec_endomorphism_accel.nim @@ -10,12 +10,12 @@ import # Standard Library std/typetraits, # Internal - ../primitives, - ../config/[common, curves, type_bigint], + ../../platforms/abstractions, + ../config/[curves, type_bigint], ../curves/zoo_endomorphisms, ../arithmetic, - ../towers, - ../isogeny/frobenius, + ../extension_fields, + ../isogenies/frobenius, ./ec_shortweierstrass_affine # ############################################################ diff --git a/constantine/backend/elliptic/ec_scalar_mul.nim b/constantine/math/elliptic/ec_scalar_mul.nim similarity index 99% rename from constantine/backend/elliptic/ec_scalar_mul.nim rename to constantine/math/elliptic/ec_scalar_mul.nim index 0b900f2..260b7f4 100644 --- a/constantine/backend/elliptic/ec_scalar_mul.nim +++ b/constantine/math/elliptic/ec_scalar_mul.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, + ../extension_fields, ../io/io_bigints, ../curves/zoo_endomorphisms, ./ec_endomorphism_accel diff --git a/constantine/backend/elliptic/ec_shortweierstrass_affine.nim b/constantine/math/elliptic/ec_shortweierstrass_affine.nim similarity index 97% rename from constantine/backend/elliptic/ec_shortweierstrass_affine.nim rename to constantine/math/elliptic/ec_shortweierstrass_affine.nim index b968003..155498c 100644 --- a/constantine/backend/elliptic/ec_shortweierstrass_affine.nim +++ b/constantine/math/elliptic/ec_shortweierstrass_affine.nim @@ -7,11 +7,11 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, - ../io/[io_fields, io_towers], + ../extension_fields, + ../io/[io_fields, io_extfields], ../curves/zoo_constants # ############################################################ diff --git a/constantine/backend/elliptic/ec_shortweierstrass_jacobian.nim b/constantine/math/elliptic/ec_shortweierstrass_jacobian.nim similarity index 99% rename from constantine/backend/elliptic/ec_shortweierstrass_jacobian.nim rename to constantine/math/elliptic/ec_shortweierstrass_jacobian.nim index 682163f..71694a8 100644 --- a/constantine/backend/elliptic/ec_shortweierstrass_jacobian.nim +++ b/constantine/math/elliptic/ec_shortweierstrass_jacobian.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, + ../extension_fields, ./ec_shortweierstrass_affine export Subgroup diff --git a/constantine/backend/elliptic/ec_shortweierstrass_projective.nim b/constantine/math/elliptic/ec_shortweierstrass_projective.nim similarity index 99% rename from constantine/backend/elliptic/ec_shortweierstrass_projective.nim rename to constantine/math/elliptic/ec_shortweierstrass_projective.nim index 5980fc4..7a20006 100644 --- a/constantine/backend/elliptic/ec_shortweierstrass_projective.nim +++ b/constantine/math/elliptic/ec_shortweierstrass_projective.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, + ../extension_fields, ./ec_shortweierstrass_affine export Subgroup diff --git a/constantine/backend/elliptic/ec_twistededwards_affine.nim b/constantine/math/elliptic/ec_twistededwards_affine.nim similarity index 97% rename from constantine/backend/elliptic/ec_twistededwards_affine.nim rename to constantine/math/elliptic/ec_twistededwards_affine.nim index 139b816..4644915 100644 --- a/constantine/backend/elliptic/ec_twistededwards_affine.nim +++ b/constantine/math/elliptic/ec_twistededwards_affine.nim @@ -7,11 +7,11 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, - ../io/[io_fields, io_towers] + ../extension_fields, + ../io/[io_fields, io_extfields] # ############################################################ # diff --git a/constantine/backend/elliptic/ec_twistededwards_projective.nim b/constantine/math/elliptic/ec_twistededwards_projective.nim similarity index 99% rename from constantine/backend/elliptic/ec_twistededwards_projective.nim rename to constantine/math/elliptic/ec_twistededwards_projective.nim index 45f6b4f..1398948 100644 --- a/constantine/backend/elliptic/ec_twistededwards_projective.nim +++ b/constantine/math/elliptic/ec_twistededwards_projective.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, + ../extension_fields, ./ec_twistededwards_affine # ############################################################ diff --git a/constantine/backend/towers.nim b/constantine/math/extension_fields.nim similarity index 83% rename from constantine/backend/towers.nim rename to constantine/math/extension_fields.nim index f07ff89..4d6a572 100644 --- a/constantine/backend/towers.nim +++ b/constantine/math/extension_fields.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - tower_field_extensions/[ + extension_fields/[ square_root_fp2, exponentiations, - extension_fields + towers ] -export extension_fields, square_root_fp2, exponentiations +export towers, square_root_fp2, exponentiations diff --git a/constantine/backend/tower_field_extensions/README.md b/constantine/math/extension_fields/README.md similarity index 100% rename from constantine/backend/tower_field_extensions/README.md rename to constantine/math/extension_fields/README.md diff --git a/constantine/backend/tower_field_extensions/assembly/fp2_asm_x86_adx_bmi2.nim b/constantine/math/extension_fields/assembly/fp2_asm_x86_adx_bmi2.nim similarity index 98% rename from constantine/backend/tower_field_extensions/assembly/fp2_asm_x86_adx_bmi2.nim rename to constantine/math/extension_fields/assembly/fp2_asm_x86_adx_bmi2.nim index 9965b71..04f5811 100644 --- a/constantine/backend/tower_field_extensions/assembly/fp2_asm_x86_adx_bmi2.nim +++ b/constantine/math/extension_fields/assembly/fp2_asm_x86_adx_bmi2.nim @@ -8,8 +8,8 @@ import # Internal - ../../config/[common, curves], - ../../primitives, + ../../../platforms/abstractions, + ../../config/curves, ../../arithmetic, ../../arithmetic/assembly/[ limbs_asm_mul_x86_adx_bmi2, diff --git a/constantine/backend/tower_field_extensions/exponentiations.nim b/constantine/math/extension_fields/exponentiations.nim similarity index 99% rename from constantine/backend/tower_field_extensions/exponentiations.nim rename to constantine/math/extension_fields/exponentiations.nim index 8a60d5c..46d7539 100644 --- a/constantine/backend/tower_field_extensions/exponentiations.nim +++ b/constantine/math/extension_fields/exponentiations.nim @@ -8,11 +8,10 @@ import + ../../platforms/abstractions, ../arithmetic, - ../config/common, - ../primitives, ../io/io_bigints, - ./extension_fields + ./towers # ############################################################ # diff --git a/constantine/backend/tower_field_extensions/square_root_fp2.nim b/constantine/math/extension_fields/square_root_fp2.nim similarity index 98% rename from constantine/backend/tower_field_extensions/square_root_fp2.nim rename to constantine/math/extension_fields/square_root_fp2.nim index d67c35d..88e1984 100644 --- a/constantine/backend/tower_field_extensions/square_root_fp2.nim +++ b/constantine/math/extension_fields/square_root_fp2.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./extension_fields, + ../../platforms/abstractions, + ./towers, ../arithmetic, - ../primitives, - ../config/[common, curves], + ../config/curves, ../curves/zoo_square_roots_fp2 # Square root diff --git a/constantine/backend/tower_field_extensions/extension_fields.nim b/constantine/math/extension_fields/towers.nim similarity index 99% rename from constantine/backend/tower_field_extensions/extension_fields.nim rename to constantine/math/extension_fields/towers.nim index a68502f..8c4ac22 100644 --- a/constantine/backend/tower_field_extensions/extension_fields.nim +++ b/constantine/math/extension_fields/towers.nim @@ -7,11 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves], - ../primitives, + ../../platforms/abstractions, + ../config/curves, ../arithmetic, ../io/io_fields +export Fp + when UseASM_X86_64: import ./assembly/fp2_asm_x86_adx_bmi2 diff --git a/constantine/backend/io/README.md b/constantine/math/io/README.md similarity index 100% rename from constantine/backend/io/README.md rename to constantine/math/io/README.md diff --git a/constantine/backend/io/io_bigints.nim b/constantine/math/io/io_bigints.nim similarity index 99% rename from constantine/backend/io/io_bigints.nim rename to constantine/math/io/io_bigints.nim index d6b59df..66b1140 100644 --- a/constantine/backend/io/io_bigints.nim +++ b/constantine/math/io/io_bigints.nim @@ -11,10 +11,11 @@ # - Burning memory to ensure secrets are not left after dealloc. import - ../primitives, + ../../platforms/[abstractions, endians], ../arithmetic/bigints, - ../config/[common, type_bigint], - ./endians + ../config/type_bigint + +export BigInt, wordsRequired # ############################################################ # diff --git a/constantine/backend/io/io_ec.nim b/constantine/math/io/io_ec.nim similarity index 97% rename from constantine/backend/io/io_ec.nim rename to constantine/math/io/io_ec.nim index 8203056..e247a9d 100644 --- a/constantine/backend/io/io_ec.nim +++ b/constantine/math/io/io_ec.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./io_bigints, ./io_fields, ./io_towers, + ../../platforms/primitives, + ./io_bigints, ./io_fields, ./io_extfields, ../arithmetic, - ../towers, - ../primitives, + ../extension_fields, ../elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, diff --git a/constantine/backend/io/io_towers.nim b/constantine/math/io/io_extfields.nim similarity index 98% rename from constantine/backend/io/io_towers.nim rename to constantine/math/io/io_extfields.nim index 280f1d0..c02b309 100644 --- a/constantine/backend/io/io_towers.nim +++ b/constantine/math/io/io_extfields.nim @@ -12,11 +12,11 @@ import std/typetraits, # Internal ./io_bigints, ./io_fields, - ../primitives, + ../../platforms/primitives, ../arithmetic/finite_fields, - ../tower_field_extensions/extension_fields + ../extension_fields/towers -export extension_fields +export towers # No exceptions allowed {.push raises: [].} diff --git a/constantine/backend/io/io_fields.nim b/constantine/math/io/io_fields.nim similarity index 98% rename from constantine/backend/io/io_fields.nim rename to constantine/math/io/io_fields.nim index 69bcb5f..16147a2 100644 --- a/constantine/backend/io/io_fields.nim +++ b/constantine/math/io/io_fields.nim @@ -8,9 +8,8 @@ import ./io_bigints, - ../config/[common, type_ff], - ../arithmetic/finite_fields, - ../primitives + ../../platforms/abstractions, + ../arithmetic/finite_fields export Fp diff --git a/constantine/backend/isogeny/README.md b/constantine/math/isogenies/README.md similarity index 100% rename from constantine/backend/isogeny/README.md rename to constantine/math/isogenies/README.md diff --git a/constantine/backend/isogeny/frobenius.nim b/constantine/math/isogenies/frobenius.nim similarity index 98% rename from constantine/backend/isogeny/frobenius.nim rename to constantine/math/isogenies/frobenius.nim index 5b5cb7e..6b932f6 100644 --- a/constantine/backend/isogeny/frobenius.nim +++ b/constantine/math/isogenies/frobenius.nim @@ -8,9 +8,9 @@ import std/macros, + ../../platforms/primitives, ../arithmetic, - ../towers, - ../primitives, + ../extension_fields, ../curves/zoo_frobenius # Frobenius Map diff --git a/constantine/backend/pairing/README.md b/constantine/math/pairing/README.md similarity index 100% rename from constantine/backend/pairing/README.md rename to constantine/math/pairing/README.md diff --git a/constantine/backend/pairing/cyclotomic_subgroup.nim b/constantine/math/pairing/cyclotomic_subgroup.nim similarity index 99% rename from constantine/backend/pairing/cyclotomic_subgroup.nim rename to constantine/math/pairing/cyclotomic_subgroup.nim index fed9b05..dd2f310 100644 --- a/constantine/backend/pairing/cyclotomic_subgroup.nim +++ b/constantine/math/pairing/cyclotomic_subgroup.nim @@ -7,11 +7,11 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../primitives, - ../config/[common, curves], + ../../platforms/abstractions, + ../config/curves, ../arithmetic, - ../towers, - ../isogeny/frobenius + ../extension_fields, + ../isogenies/frobenius # No exceptions allowed {.push raises: [].} diff --git a/constantine/backend/pairing/lines_eval.nim b/constantine/math/pairing/lines_eval.nim similarity index 99% rename from constantine/backend/pairing/lines_eval.nim rename to constantine/math/pairing/lines_eval.nim index 243b9e3..f81a4d1 100644 --- a/constantine/backend/pairing/lines_eval.nim +++ b/constantine/math/pairing/lines_eval.nim @@ -9,14 +9,14 @@ import std/typetraits, ../config/curves, - ../primitives, + ../../platforms/primitives, ../arithmetic, - ../towers, + ../extension_fields, ../elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective ], - ../io/io_towers + ../io/io_extfields # No exceptions allowed {.push raises: [].} diff --git a/constantine/backend/pairing/miller_loops.nim b/constantine/math/pairing/miller_loops.nim similarity index 99% rename from constantine/backend/pairing/miller_loops.nim rename to constantine/math/pairing/miller_loops.nim index 0d2cef0..12a4306 100644 --- a/constantine/backend/pairing/miller_loops.nim +++ b/constantine/math/pairing/miller_loops.nim @@ -11,7 +11,7 @@ import ec_shortweierstrass_affine, ec_shortweierstrass_projective ], - ../isogeny/frobenius, + ../isogenies/frobenius, ./lines_eval # No exceptions allowed diff --git a/constantine/backend/pairing/multi_pairing.md b/constantine/math/pairing/multi_pairing.md similarity index 100% rename from constantine/backend/pairing/multi_pairing.md rename to constantine/math/pairing/multi_pairing.md diff --git a/constantine/backend/pairing/pairing_bls12.nim b/constantine/math/pairing/pairing_bls12.nim similarity index 98% rename from constantine/backend/pairing/pairing_bls12.nim rename to constantine/math/pairing/pairing_bls12.nim index fc09f18..63e903a 100644 --- a/constantine/backend/pairing/pairing_bls12.nim +++ b/constantine/math/pairing/pairing_bls12.nim @@ -7,13 +7,14 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[common, curves, type_ff], - ../towers, + ../../platforms/abstractions, + ../config/curves, + ../extension_fields, ../elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective ], - ../isogeny/frobenius, + ../isogenies/frobenius, ../curves/zoo_pairings, ../arithmetic, ./cyclotomic_subgroup, diff --git a/constantine/backend/pairing/pairing_bn.nim b/constantine/math/pairing/pairing_bn.nim similarity index 98% rename from constantine/backend/pairing/pairing_bn.nim rename to constantine/math/pairing/pairing_bn.nim index 4e65779..f64c325 100644 --- a/constantine/backend/pairing/pairing_bn.nim +++ b/constantine/math/pairing/pairing_bn.nim @@ -7,13 +7,13 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_ff], - ../towers, + ../config/curves, + ../extension_fields, ../elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective ], - ../isogeny/frobenius, + ../isogenies/frobenius, ../curves/zoo_pairings, ./lines_eval, ./cyclotomic_subgroup, diff --git a/constantine/backend/pairing/pairing_bw6_761.nim b/constantine/math/pairing/pairing_bw6_761.nim similarity index 98% rename from constantine/backend/pairing/pairing_bw6_761.nim rename to constantine/math/pairing/pairing_bw6_761.nim index 47a6c1d..d5b1a05 100644 --- a/constantine/backend/pairing/pairing_bw6_761.nim +++ b/constantine/math/pairing/pairing_bw6_761.nim @@ -7,14 +7,14 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../config/[curves, type_ff], + ../config/curves, ../arithmetic, - ../towers, + ../extension_fields, ../elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective ], - ../isogeny/frobenius, + ../isogenies/frobenius, ../curves/zoo_pairings, ./lines_eval, ./miller_loops diff --git a/constantine/backend/pairings.nim b/constantine/math/pairings.nim similarity index 97% rename from constantine/backend/pairings.nim rename to constantine/math/pairings.nim index 1633d0d..e143fd1 100644 --- a/constantine/backend/pairings.nim +++ b/constantine/math/pairings.nim @@ -9,7 +9,7 @@ import ./config/curves, ./pairing/[pairing_bn, pairing_bls12], - ./towers + ./extension_fields template pairing*[C](gt: var Fp12[C], P, Q: typed) = when family(C) == BarretoNaehrig: diff --git a/constantine/backend/primitives/README.md b/constantine/platforms/README.md similarity index 100% rename from constantine/backend/primitives/README.md rename to constantine/platforms/README.md diff --git a/constantine/backend/config/common.nim b/constantine/platforms/abstractions.nim similarity index 94% rename from constantine/backend/config/common.nim rename to constantine/platforms/abstractions.nim index a7b46b2..c5a9c50 100644 --- a/constantine/backend/config/common.nim +++ b/constantine/platforms/abstractions.nim @@ -8,14 +8,14 @@ # ############################################################ # -# Common configuration +# Platforms abstractions # # ############################################################ -import ../primitives -import ../../../metering/tracer +import ./primitives +import ../../metering/tracer -export tracer +export primitives, tracer when sizeof(int) == 8 and not defined(Constantine32): type diff --git a/constantine/backend/primitives/bithacks.nim b/constantine/platforms/bithacks.nim similarity index 100% rename from constantine/backend/primitives/bithacks.nim rename to constantine/platforms/bithacks.nim diff --git a/constantine/backend/primitives/addcarry_subborrow.nim b/constantine/platforms/compilers/addcarry_subborrow.nim similarity index 99% rename from constantine/backend/primitives/addcarry_subborrow.nim rename to constantine/platforms/compilers/addcarry_subborrow.nim index 03bec55..01b6ea9 100644 --- a/constantine/backend/primitives/addcarry_subborrow.nim +++ b/constantine/platforms/compilers/addcarry_subborrow.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ./constant_time_types +import ../constant_time/ct_types # ############################################################ # diff --git a/constantine/backend/primitives/extended_precision.nim b/constantine/platforms/compilers/extended_precision.nim similarity index 99% rename from constantine/backend/primitives/extended_precision.nim rename to constantine/platforms/compilers/extended_precision.nim index b81e6cd..f3eb103 100644 --- a/constantine/backend/primitives/extended_precision.nim +++ b/constantine/platforms/compilers/extended_precision.nim @@ -13,9 +13,9 @@ # ############################################################ import - ./constant_time_types, ./addcarry_subborrow, - ./constant_time + ../constant_time/ct_types, + ../constant_time/ct_routines # ############################################################ # diff --git a/constantine/backend/primitives/extended_precision_64bit_uint128.nim b/constantine/platforms/compilers/extended_precision_64bit_uint128.nim similarity index 99% rename from constantine/backend/primitives/extended_precision_64bit_uint128.nim rename to constantine/platforms/compilers/extended_precision_64bit_uint128.nim index 045df87..1eceb13 100644 --- a/constantine/backend/primitives/extended_precision_64bit_uint128.nim +++ b/constantine/platforms/compilers/extended_precision_64bit_uint128.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ./constant_time_types +import ../constant_time/ct_types # ############################################################ # diff --git a/constantine/backend/primitives/extended_precision_x86_64_gcc.nim b/constantine/platforms/compilers/extended_precision_x86_64_gcc.nim similarity index 98% rename from constantine/backend/primitives/extended_precision_x86_64_gcc.nim rename to constantine/platforms/compilers/extended_precision_x86_64_gcc.nim index 3a4ec61..3fb1d7e 100644 --- a/constantine/backend/primitives/extended_precision_x86_64_gcc.nim +++ b/constantine/platforms/compilers/extended_precision_x86_64_gcc.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ./constant_time_types +import ../constant_time/ct_types # ############################################################ # diff --git a/constantine/backend/primitives/extended_precision_x86_64_msvc.nim b/constantine/platforms/compilers/extended_precision_x86_64_msvc.nim similarity index 99% rename from constantine/backend/primitives/extended_precision_x86_64_msvc.nim rename to constantine/platforms/compilers/extended_precision_x86_64_msvc.nim index 774cd05..960dc14 100644 --- a/constantine/backend/primitives/extended_precision_x86_64_msvc.nim +++ b/constantine/platforms/compilers/extended_precision_x86_64_msvc.nim @@ -7,7 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ./constant_time_types, + ./ct_types, ./addcarry_subborrow # ############################################################ diff --git a/constantine/backend/primitives/constant_time.nim b/constantine/platforms/constant_time/ct_routines.nim similarity index 99% rename from constantine/backend/primitives/constant_time.nim rename to constantine/platforms/constant_time/ct_routines.nim index b542cff..93bbb4c 100644 --- a/constantine/backend/primitives/constant_time.nim +++ b/constantine/platforms/constant_time/ct_routines.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ./constant_time_types +import ./ct_types # ############################################################ # diff --git a/constantine/backend/primitives/constant_time_types.nim b/constantine/platforms/constant_time/ct_types.nim similarity index 100% rename from constantine/backend/primitives/constant_time_types.nim rename to constantine/platforms/constant_time/ct_types.nim diff --git a/constantine/backend/primitives/multiplexers.nim b/constantine/platforms/constant_time/multiplexers.nim similarity index 99% rename from constantine/backend/primitives/multiplexers.nim rename to constantine/platforms/constant_time/multiplexers.nim index 955482d..2fed158 100644 --- a/constantine/backend/primitives/multiplexers.nim +++ b/constantine/platforms/constant_time/multiplexers.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ./constant_time_types +import ./ct_types # ############################################################ # diff --git a/constantine/backend/io/endians.nim b/constantine/platforms/endians.nim similarity index 99% rename from constantine/backend/io/endians.nim rename to constantine/platforms/endians.nim index beedd40..44ff953 100644 --- a/constantine/backend/io/endians.nim +++ b/constantine/platforms/endians.nim @@ -6,7 +6,7 @@ # * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. -import ../config/common +import ./abstractions # perf critical we don't want bound checks here # So no checks and we avoid signed int to ensur eno exceptions. diff --git a/constantine/backend/primitives/cpuinfo_x86.nim b/constantine/platforms/isa/cpuinfo_x86.nim similarity index 100% rename from constantine/backend/primitives/cpuinfo_x86.nim rename to constantine/platforms/isa/cpuinfo_x86.nim diff --git a/constantine/backend/primitives/macro_assembler_x86.nim b/constantine/platforms/isa/macro_assembler_x86.nim similarity index 100% rename from constantine/backend/primitives/macro_assembler_x86.nim rename to constantine/platforms/isa/macro_assembler_x86.nim diff --git a/constantine/backend/primitives.nim b/constantine/platforms/primitives.nim similarity index 69% rename from constantine/backend/primitives.nim rename to constantine/platforms/primitives.nim index 7bea2a9..7ec6c50 100644 --- a/constantine/backend/primitives.nim +++ b/constantine/platforms/primitives.nim @@ -7,17 +7,21 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - primitives/constant_time_types, - primitives/constant_time, - primitives/multiplexers, - primitives/addcarry_subborrow, - primitives/extended_precision, - primitives/bithacks, - primitives/static_for + constant_time/[ + ct_types, + ct_routines, + multiplexers + ], + compilers/[ + addcarry_subborrow, + extended_precision + ], + ./bithacks, + ../../helpers/static_for export - constant_time_types, - constant_time, + ct_types, + ct_routines, multiplexers, addcarry_subborrow, extended_precision, @@ -25,5 +29,5 @@ export staticFor when X86 and GCC_Compatible: - import primitives/[cpuinfo_x86, macro_assembler_x86] + import isa/[cpuinfo_x86, macro_assembler_x86] export cpuinfo_x86, macro_assembler_x86 diff --git a/constantine/backend/signatures/README.md b/constantine/signatures/README.md similarity index 100% rename from constantine/backend/signatures/README.md rename to constantine/signatures/README.md diff --git a/constantine/backend/signatures/bls_signatures.nim b/constantine/signatures/bls_signatures.nim similarity index 98% rename from constantine/backend/signatures/bls_signatures.nim rename to constantine/signatures/bls_signatures.nim index 87ba27b..3db0061 100644 --- a/constantine/backend/signatures/bls_signatures.nim +++ b/constantine/signatures/bls_signatures.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../ec_shortweierstrass, + ../math/[ec_shortweierstrass, pairings], + ../math/curves/zoo_generators, ../hash_to_curve/hash_to_curve, - ../hashes, ../pairings, - ../curves/zoo_generators + ../hashes # ############################################################ # diff --git a/docs/optimizations.md b/docs/optimizations.md index 1ce4fcc..48af6f2 100644 --- a/docs/optimizations.md +++ b/docs/optimizations.md @@ -40,7 +40,7 @@ The optimizations can be of algebraic, algorithmic or "implementation details" n - [x] Unsaturated Representation - [ ] Mersenne Prime (2ᵏ - 1), - [ ] Generalized Mersenne Prime (NIST Prime P256: 2^256 - 2^224 + 2^192 + 2^96 - 1) - - [ ] Pseudo-Mersenne Prime (2^m - k for example Curve25519: 2^255 - 19) + - [ ] Pseudo-Mersenne Prime (2^m - k for example Edwards25519: 2^255 - 19) - [ ] Golden Primes (φ^2 - φ - 1 with φ = 2ᵏ for example Ed448-Goldilocks: 2^448 - 2^224 - 1) - [ ] any prime modulus (lazy carry) diff --git a/helpers/prng_unsafe.nim b/helpers/prng_unsafe.nim index d1999a7..025b555 100644 --- a/helpers/prng_unsafe.nim +++ b/helpers/prng_unsafe.nim @@ -7,17 +7,17 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../constantine/backend/arithmetic, - ../constantine/backend/primitives, - ../constantine/backend/config/[common, curves, type_ff], - ../constantine/backend/elliptic/[ + ../constantine/platforms/abstractions, + ../constantine/math/arithmetic, + ../constantine/math/config/curves, + ../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_shortweierstrass_jacobian, ec_twistededwards_affine, ec_twistededwards_projective], - ../constantine/backend/io/io_bigints, - ../constantine/backend/tower_field_extensions/extension_fields + ../constantine/math/io/io_bigints, + ../constantine/math/extension_fields/towers # ############################################################ # diff --git a/helpers/static_for.nim b/helpers/static_for.nim index f78305b..ab988a0 100644 --- a/helpers/static_for.nim +++ b/helpers/static_for.nim @@ -1,3 +1,11 @@ +# Constantine +# Copyright (c) 2018-2019 Status Research & Development GmbH +# Copyright (c) 2020-Present Mamy André-Ratsimbazafy +# Licensed and distributed under either of +# * MIT license (license terms in the root directory or at http://opensource.org/licenses/MIT). +# * Apache v2 license (license terms in the root directory or at http://www.apache.org/licenses/LICENSE-2.0). +# at your option. This file may not be copied, modified, or distributed except according to those terms. + import std/macros proc replaceNodes(ast: NimNode, what: NimNode, by: NimNode): NimNode = diff --git a/metering/m_pairings.nim b/metering/m_pairings.nim index 15fa6c1..86c1a7c 100644 --- a/metering/m_pairings.nim +++ b/metering/m_pairings.nim @@ -9,11 +9,11 @@ import std/times, ./reports, ./tracer, - ../constantine/backend/config/[common, curves], - ../constantine/backend/[arithmetic, towers], - ../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../constantine/backend/curves/zoo_subgroups, - ../constantine/backend/pairing/pairing_bls12, + ../constantine/math/config/[common, curves], + ../constantine/math/[arithmetic, extension_fields], + ../constantine/math/elliptic/ec_shortweierstrass_projective, + ../constantine/math/curves/zoo_subgroups, + ../constantine/math/pairing/pairing_bls12, # Helpers ../helpers/prng_unsafe diff --git a/research/kzg_poly_commit/fft_fr.nim b/research/kzg_poly_commit/fft_fr.nim index bac5a5b..6ceffee 100644 --- a/research/kzg_poly_commit/fft_fr.nim +++ b/research/kzg_poly_commit/fft_fr.nim @@ -7,9 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/curves, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/io/io_fields, + ../../constantine/platforms/primitives, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/io/io_fields, # Research ./strided_views, ./fft_lut @@ -24,7 +25,7 @@ import # # Other readable FFTs includes: # - https://github.com/kwantam/fffft -# - https://github.com/ConsenSys/gnark/blob/master/internal/backend/bls381/fft/fft.go +# - https://github.com/ConsenSys/gnark/blob/master/internal/math/bls381/fft/fft.go # - https://github.com/poanetwork/threshold_crypto/blob/8820c11/src/poly_vals.rs#L332-L370 # - https://github.com/zkcrypto/bellman/blob/10c5010/src/domain.rs#L272-L315 # - Modern Computer Arithmetic, Brent and Zimmermann, p53 algorithm 2.2 diff --git a/research/kzg_poly_commit/fft_g1.nim b/research/kzg_poly_commit/fft_g1.nim index e4c7843..50b0788 100644 --- a/research/kzg_poly_commit/fft_g1.nim +++ b/research/kzg_poly_commit/fft_g1.nim @@ -7,15 +7,16 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/curves, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/primitives, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/elliptic/[ ec_scalar_mul, ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_shortweierstrass_jacobian, ], - ../../constantine/backend/io/[io_fields, io_ec], + ../../constantine/math/io/[io_fields, io_ec], # Research ./strided_views, ./fft_lut @@ -30,7 +31,7 @@ import # # Other readable FFTs includes: # - https://github.com/kwantam/fffft -# - https://github.com/ConsenSys/gnark/blob/master/internal/backend/bls381/fft/fft.go +# - https://github.com/ConsenSys/gnark/blob/master/internal/math/bls381/fft/fft.go # - https://github.com/poanetwork/threshold_crypto/blob/8820c11/src/poly_vals.rs#L332-L370 # - https://github.com/zkcrypto/bellman/blob/10c5010/src/domain.rs#L272-L315 # - Modern Computer Arithmetic, Brent and Zimmermann, p53 algorithm 2.2 diff --git a/research/kzg_poly_commit/fft_lut.nim b/research/kzg_poly_commit/fft_lut.nim index d3f2b4a..f3af753 100644 --- a/research/kzg_poly_commit/fft_lut.nim +++ b/research/kzg_poly_commit/fft_lut.nim @@ -8,9 +8,10 @@ import std/macros, - ../../constantine/backend/config/[curves, common], - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/io/io_fields + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/io/io_fields # TODO automate this # we can precompute everything in Sage diff --git a/research/kzg_poly_commit/kzg_single_proofs.nim b/research/kzg_poly_commit/kzg_single_proofs.nim index 1fe37fd..287e2d3 100644 --- a/research/kzg_poly_commit/kzg_single_proofs.nim +++ b/research/kzg_poly_commit/kzg_single_proofs.nim @@ -1,15 +1,15 @@ # https://github.com/ethereum/research/blob/master/kzg_data_availability/kzg_proofs.py import - ../../constantine/backend/config/curves, - ../../constantine/backend/[arithmetic, primitives, towers], - ../../constantine/backend/elliptic/[ + ../../constantine/math/config/curves, + ../../constantine/math/[arithmetic, primitives, extension_fields], + ../../constantine/math/elliptic/[ ec_scalar_mul, ec_shortweierstrass_affine, ec_shortweierstrass_projective, ], - ../../constantine/backend/io/[io_fields, io_ec], - ../../constantine/backend/pairing/[ + ../../constantine/math/io/[io_fields, io_ec], + ../../constantine/math/pairing/[ pairing_bls12, miller_loops ], diff --git a/research/kzg_poly_commit/polynomials.nim b/research/kzg_poly_commit/polynomials.nim index 0a623f8..214dfc3 100644 --- a/research/kzg_poly_commit/polynomials.nim +++ b/research/kzg_poly_commit/polynomials.nim @@ -1,13 +1,14 @@ import - ../../constantine/backend/config/curves, - ../../constantine/backend/[arithmetic, primitives, towers], - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/primitives, + ../../constantine/math/config/curves, + ../../constantine/math/[arithmetic, extension_fields], + ../../constantine/math/elliptic/[ ec_scalar_mul, ec_shortweierstrass_affine, ec_shortweierstrass_projective, ], - ../../constantine/backend/io/[io_fields, io_ec], - ../../constantine/backend/pairing/[ + ../../constantine/math/io/[io_fields, io_ec], + ../../constantine/math/pairing/[ pairing_bls12, miller_loops, cyclotomic_subgroup diff --git a/sage/derive_endomorphisms.sage b/sage/derive_endomorphisms.sage index 27032e1..a230fbe 100644 --- a/sage/derive_endomorphisms.sage +++ b/sage/derive_endomorphisms.sage @@ -266,7 +266,7 @@ if __name__ == "__main__": f.write('\n\n') f.write(inspect.cleandoc(f""" import - ../config/[curves, type_bigint, type_ff], + ../config/curves,, ../io/[io_bigints, io_fields] # {curve} G1 diff --git a/sage/derive_frobenius.sage b/sage/derive_frobenius.sage index 9ad614f..96ed47a 100644 --- a/sage/derive_frobenius.sage +++ b/sage/derive_frobenius.sage @@ -279,15 +279,15 @@ if __name__ == "__main__": f.write(inspect.cleandoc(""" import ../config/curves, - ../towers, - ../io/io_towers + ../extension_fields, + ../io/io_extfields """)) else: f.write(inspect.cleandoc(""" import - ../config/[curves, type_ff], - ../towers, - ../io/[io_fields, io_towers] + ../config/curves, + ../extension_fields, + ../io/[io_fields, io_extfields] """)) f.write('\n\n') f.write(FrobMap) diff --git a/sage/derive_hash_to_curve.sage b/sage/derive_hash_to_curve.sage index 1a11a07..0567386 100644 --- a/sage/derive_hash_to_curve.sage +++ b/sage/derive_hash_to_curve.sage @@ -315,7 +315,7 @@ if __name__ == "__main__": f.write(inspect.cleandoc(""" import ../config/curves, - ../io/[io_fields, io_towers] + ../io/[io_fields, io_extfields] """)) f.write('\n\n') diff --git a/sage/derive_pairing.sage b/sage/derive_pairing.sage index e4ddf9b..538be69 100644 --- a/sage/derive_pairing.sage +++ b/sage/derive_pairing.sage @@ -239,7 +239,7 @@ if __name__ == "__main__": f.write('\n\n') f.write(inspect.cleandoc(""" import - ../config/[curves, type_bigint], + ../config/curves, ../io/io_bigints # Slow generic implementation diff --git a/sage/derive_square_root.sage b/sage/derive_square_root.sage index 4c33f08..3ea7256 100644 --- a/sage/derive_square_root.sage +++ b/sage/derive_square_root.sage @@ -139,7 +139,7 @@ if __name__ == "__main__": f.write(inspect.cleandoc(""" import ../config/curves, - ../io/io_towers + ../io/io_extfields """)) f.write('\n\n') diff --git a/sage/g2_params.sage b/sage/g2_params.sage index 158a9d6..63f4201 100644 --- a/sage/g2_params.sage +++ b/sage/g2_params.sage @@ -163,7 +163,7 @@ if __name__ == "__main__": f.write(inspect.cleandoc(""" import ../config/curves, - ../io/io_towers + ../io/io_extfields """)) f.write('\n\n') diff --git a/tests/backend/support/canaries.nim b/tests/math/support/canaries.nim similarity index 80% rename from tests/backend/support/canaries.nim rename to tests/math/support/canaries.nim index a907b1f..1702032 100644 --- a/tests/backend/support/canaries.nim +++ b/tests/math/support/canaries.nim @@ -7,9 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../../constantine/backend/arithmetic/bigints, - ../../../constantine/backend/config/[common, curves], - ../../../constantine/backend/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective] + ../../../constantine/platforms/abstractions, + ../../../constantine/math/arithmetic/bigints, + ../../../constantine/math/config/curves, + ../../../constantine/math/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective] # Canaries # -------------------------------------------------------------- diff --git a/tests/backend/support/ec_reference_scalar_mult.nim b/tests/math/support/ec_reference_scalar_mult.nim similarity index 95% rename from tests/backend/support/ec_reference_scalar_mult.nim rename to tests/math/support/ec_reference_scalar_mult.nim index 2df089e..82148ca 100644 --- a/tests/backend/support/ec_reference_scalar_mult.nim +++ b/tests/math/support/ec_reference_scalar_mult.nim @@ -8,8 +8,8 @@ import # Internals - ../../../constantine/backend/arithmetic, - ../../../constantine/backend/io/io_bigints + ../../../constantine/math/arithmetic, + ../../../constantine/math/io/io_bigints # Support files for testing Elliptic Curve arithmetic # ------------------------------------------------------------------------------ diff --git a/tests/backend/t_bigints.nim b/tests/math/t_bigints.nim similarity index 99% rename from tests/backend/t_bigints.nim rename to tests/math/t_bigints.nim index 6d667b9..c0364a6 100644 --- a/tests/backend/t_bigints.nim +++ b/tests/math/t_bigints.nim @@ -10,10 +10,9 @@ import # Standard library std/unittest, # Internal - ../../constantine/backend/io/io_bigints, - ../../constantine/backend/arithmetic, - ../../constantine/backend/config/[common, type_bigint], - ../../constantine/backend/primitives, + ../../constantine/math/io/io_bigints, + ../../constantine/math/arithmetic, + ../../constantine/platforms/abstractions, # Test utilities, support/canaries diff --git a/tests/backend/t_bigints_mod_vs_gmp.nim b/tests/math/t_bigints_mod_vs_gmp.nim similarity index 97% rename from tests/backend/t_bigints_mod_vs_gmp.nim rename to tests/math/t_bigints_mod_vs_gmp.nim index b90029a..62ab73c 100644 --- a/tests/backend/t_bigints_mod_vs_gmp.nim +++ b/tests/math/t_bigints_mod_vs_gmp.nim @@ -12,9 +12,9 @@ import # Third-party gmp, stew/byteutils, # Internal - ../../constantine/backend/io/io_bigints, - ../../constantine/backend/arithmetic, - ../../constantine/backend/primitives + ../../constantine/math/io/io_bigints, + ../../constantine/math/arithmetic, + ../../constantine/platforms/primitives echo "\n------------------------------------------------------\n" # We test up to 1024-bit, more is really slow @@ -28,7 +28,7 @@ const CryptoModSizes = [ 1024, 2048, 3072, - # secp256k1, Curve25519 + # secp256k1, Edwards25519 256, # Barreto-Naehrig 254, # BN254 diff --git a/tests/backend/t_bigints_mul_high_words_vs_gmp.nim b/tests/math/t_bigints_mul_high_words_vs_gmp.nim similarity index 97% rename from tests/backend/t_bigints_mul_high_words_vs_gmp.nim rename to tests/math/t_bigints_mul_high_words_vs_gmp.nim index 13afc30..e513221 100644 --- a/tests/backend/t_bigints_mul_high_words_vs_gmp.nim +++ b/tests/math/t_bigints_mul_high_words_vs_gmp.nim @@ -12,10 +12,9 @@ import # Third-party gmp, stew/byteutils, # Internal - ../../constantine/backend/io/io_bigints, - ../../constantine/backend/arithmetic, - ../../constantine/backend/primitives, - ../../constantine/backend/config/[common, type_bigint] + ../../constantine/math/io/io_bigints, + ../../constantine/math/arithmetic, + ../../constantine/platforms/abstractions echo "\n------------------------------------------------------\n" # We test up to 1024-bit, more is really slow diff --git a/tests/backend/t_bigints_mul_vs_gmp.nim b/tests/math/t_bigints_mul_vs_gmp.nim similarity index 96% rename from tests/backend/t_bigints_mul_vs_gmp.nim rename to tests/math/t_bigints_mul_vs_gmp.nim index 855964b..79985e9 100644 --- a/tests/backend/t_bigints_mul_vs_gmp.nim +++ b/tests/math/t_bigints_mul_vs_gmp.nim @@ -12,10 +12,9 @@ import # Third-party gmp, stew/byteutils, # Internal - ../../constantine/backend/io/io_bigints, - ../../constantine/backend/arithmetic, - ../../constantine/backend/primitives, - ../../constantine/backend/config/[common, type_bigint] + ../../constantine/math/io/io_bigints, + ../../constantine/math/arithmetic, + ../../constantine/platforms/abstractions echo "\n------------------------------------------------------\n" # We test up to 1024-bit, more is really slow diff --git a/tests/backend/t_bigints_multimod.nim b/tests/math/t_bigints_multimod.nim similarity index 98% rename from tests/backend/t_bigints_multimod.nim rename to tests/math/t_bigints_multimod.nim index e7981d6..c4915f8 100644 --- a/tests/backend/t_bigints_multimod.nim +++ b/tests/math/t_bigints_multimod.nim @@ -10,10 +10,9 @@ import # Standard library std/unittest, # Third-party - ../../constantine/backend/config/common, - ../../constantine/backend/io/io_bigints, - ../../constantine/backend/arithmetic, - ../../constantine/backend/primitives + ../../constantine/platforms/abstractions, + ../../constantine/math/io/io_bigints, + ../../constantine/math/arithmetic echo "\n------------------------------------------------------\n" diff --git a/tests/backend/t_ec_conversion.nim b/tests/math/t_ec_conversion.nim similarity index 91% rename from tests/backend/t_ec_conversion.nim rename to tests/math/t_ec_conversion.nim index 141c115..0e9dcf0 100644 --- a/tests/backend/t_ec_conversion.nim +++ b/tests/math/t_ec_conversion.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/[ec_shortweierstrass_jacobian, ec_shortweierstrass_projective], - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/[ec_shortweierstrass_jacobian, ec_shortweierstrass_projective], + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_frobenius.nim b/tests/math/t_ec_frobenius.nim similarity index 98% rename from tests/backend/t_ec_frobenius.nim rename to tests/math/t_ec_frobenius.nim index 08cf6cc..7ddae52 100644 --- a/tests/backend/t_ec_frobenius.nim +++ b/tests/math/t_ec_frobenius.nim @@ -11,11 +11,12 @@ import # Standard library std/[times, unittest], # Internals - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/[arithmetic, towers], - ../../constantine/backend/io/[io_bigints, io_ec], - ../../constantine/backend/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_scalar_mul], - ../../constantine/backend/isogeny/frobenius, + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/[arithmetic, extension_fields], + ../../constantine/math/io/[io_bigints, io_ec], + ../../constantine/math/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_scalar_mul], + ../../constantine/math/isogenies/frobenius, # Tests ../../helpers/prng_unsafe, ./t_ec_template diff --git a/tests/backend/t_ec_sage_bls12_377.nim b/tests/math/t_ec_sage_bls12_377.nim similarity index 81% rename from tests/backend/t_ec_sage_bls12_377.nim rename to tests/math/t_ec_sage_bls12_377.nim index 40ed9e3..af502a0 100644 --- a/tests/backend/t_ec_sage_bls12_377.nim +++ b/tests/math/t_ec_sage_bls12_377.nim @@ -8,10 +8,10 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/towers, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_sage_template diff --git a/tests/backend/t_ec_sage_bls12_381.nim b/tests/math/t_ec_sage_bls12_381.nim similarity index 81% rename from tests/backend/t_ec_sage_bls12_381.nim rename to tests/math/t_ec_sage_bls12_381.nim index 096fc3c..ecd5326 100644 --- a/tests/backend/t_ec_sage_bls12_381.nim +++ b/tests/math/t_ec_sage_bls12_381.nim @@ -8,10 +8,10 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/towers, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_sage_template diff --git a/tests/backend/t_ec_sage_bn254_nogami.nim b/tests/math/t_ec_sage_bn254_nogami.nim similarity index 81% rename from tests/backend/t_ec_sage_bn254_nogami.nim rename to tests/math/t_ec_sage_bn254_nogami.nim index 324e55a..f4c4330 100644 --- a/tests/backend/t_ec_sage_bn254_nogami.nim +++ b/tests/math/t_ec_sage_bn254_nogami.nim @@ -8,10 +8,10 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/towers, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_sage_template diff --git a/tests/backend/t_ec_sage_bn254_snarks.nim b/tests/math/t_ec_sage_bn254_snarks.nim similarity index 81% rename from tests/backend/t_ec_sage_bn254_snarks.nim rename to tests/math/t_ec_sage_bn254_snarks.nim index a6f8944..e6be63e 100644 --- a/tests/backend/t_ec_sage_bn254_snarks.nim +++ b/tests/math/t_ec_sage_bn254_snarks.nim @@ -8,10 +8,10 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/towers, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_sage_template diff --git a/tests/backend/t_ec_sage_bw6_761_g1.nim b/tests/math/t_ec_sage_bw6_761_g1.nim similarity index 86% rename from tests/backend/t_ec_sage_bw6_761_g1.nim rename to tests/math/t_ec_sage_bw6_761_g1.nim index 7eed998..4864bbc 100644 --- a/tests/backend/t_ec_sage_bw6_761_g1.nim +++ b/tests/math/t_ec_sage_bw6_761_g1.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_sage_template diff --git a/tests/backend/t_ec_sage_bw6_761_g2.nim b/tests/math/t_ec_sage_bw6_761_g2.nim similarity index 86% rename from tests/backend/t_ec_sage_bw6_761_g2.nim rename to tests/math/t_ec_sage_bw6_761_g2.nim index 661166e..e0c37e9 100644 --- a/tests/backend/t_ec_sage_bw6_761_g2.nim +++ b/tests/math/t_ec_sage_bw6_761_g2.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_sage_template diff --git a/tests/backend/t_ec_sage_template.nim b/tests/math/t_ec_sage_template.nim similarity index 96% rename from tests/backend/t_ec_sage_template.nim rename to tests/math/t_ec_sage_template.nim index b3ccda8..27690f7 100644 --- a/tests/backend/t_ec_sage_template.nim +++ b/tests/math/t_ec_sage_template.nim @@ -10,12 +10,13 @@ import # Standard library std/[unittest, times, os, strutils, macros], # 3rd party - jsony, + pkg/jsony, # Internals - ../../constantine/backend/config/[common, curves, type_bigint, type_ff], - ../../constantine/backend/towers, - ../../constantine/backend/io/[io_bigints, io_ec], - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/io/[io_bigints, io_ec], + ../../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_shortweierstrass_jacobian, @@ -24,6 +25,8 @@ import # Test utilities ./support/ec_reference_scalar_mult +export unittest # Generic sandwich + # Serialization # -------------------------------------------------------------------------- diff --git a/tests/backend/t_ec_shortw_jac_g1_add_double.nim b/tests/math/t_ec_shortw_jac_g1_add_double.nim similarity index 91% rename from tests/backend/t_ec_shortw_jac_g1_add_double.nim rename to tests/math/t_ec_shortw_jac_g1_add_double.nim index ccf4d22..8e93350 100644 --- a/tests/backend/t_ec_shortw_jac_g1_add_double.nim +++ b/tests/math/t_ec_shortw_jac_g1_add_double.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g1_mixed_add.nim b/tests/math/t_ec_shortw_jac_g1_mixed_add.nim similarity index 89% rename from tests/backend/t_ec_shortw_jac_g1_mixed_add.nim rename to tests/math/t_ec_shortw_jac_g1_mixed_add.nim index f5d3be9..05e6c82 100644 --- a/tests/backend/t_ec_shortw_jac_g1_mixed_add.nim +++ b/tests/math/t_ec_shortw_jac_g1_mixed_add.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/arithmetic, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/arithmetic, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g1_mul_distri.nim b/tests/math/t_ec_shortw_jac_g1_mul_distri.nim similarity index 91% rename from tests/backend/t_ec_shortw_jac_g1_mul_distri.nim rename to tests/math/t_ec_shortw_jac_g1_mul_distri.nim index 762f148..8674a13 100644 --- a/tests/backend/t_ec_shortw_jac_g1_mul_distri.nim +++ b/tests/math/t_ec_shortw_jac_g1_mul_distri.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g1_mul_sanity.nim b/tests/math/t_ec_shortw_jac_g1_mul_sanity.nim similarity index 91% rename from tests/backend/t_ec_shortw_jac_g1_mul_sanity.nim rename to tests/math/t_ec_shortw_jac_g1_mul_sanity.nim index 5b5f325..8147d9f 100644 --- a/tests/backend/t_ec_shortw_jac_g1_mul_sanity.nim +++ b/tests/math/t_ec_shortw_jac_g1_mul_sanity.nim @@ -10,10 +10,10 @@ import # Standard library std/[unittest, times], # Internals - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/io/[io_bigints, io_fields, io_ec], - ../../constantine/backend/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_jacobian, ec_scalar_mul], + ../../constantine/math/config/[common, curves], + ../../constantine/math/[arithmetic, primitives], + ../../constantine/math/io/[io_bigints, io_fields, io_ec], + ../../constantine/math/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_jacobian, ec_scalar_mul], # Test utilities ../../helpers/prng_unsafe, ./support/ec_reference_scalar_mult, diff --git a/tests/backend/t_ec_shortw_jac_g1_mul_vs_ref.nim b/tests/math/t_ec_shortw_jac_g1_mul_vs_ref.nim similarity index 91% rename from tests/backend/t_ec_shortw_jac_g1_mul_vs_ref.nim rename to tests/math/t_ec_shortw_jac_g1_mul_vs_ref.nim index cf4a8d6..1a39096 100644 --- a/tests/backend/t_ec_shortw_jac_g1_mul_vs_ref.nim +++ b/tests/math/t_ec_shortw_jac_g1_mul_vs_ref.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_add_double_bls12_377.nim b/tests/math/t_ec_shortw_jac_g2_add_double_bls12_377.nim similarity index 83% rename from tests/backend/t_ec_shortw_jac_g2_add_double_bls12_377.nim rename to tests/math/t_ec_shortw_jac_g2_add_double_bls12_377.nim index 13c431e..3c25bb4 100644 --- a/tests/backend/t_ec_shortw_jac_g2_add_double_bls12_377.nim +++ b/tests/math/t_ec_shortw_jac_g2_add_double_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_add_double_bls12_381.nim b/tests/math/t_ec_shortw_jac_g2_add_double_bls12_381.nim similarity index 83% rename from tests/backend/t_ec_shortw_jac_g2_add_double_bls12_381.nim rename to tests/math/t_ec_shortw_jac_g2_add_double_bls12_381.nim index 00f79ac..fe6c0c8 100644 --- a/tests/backend/t_ec_shortw_jac_g2_add_double_bls12_381.nim +++ b/tests/math/t_ec_shortw_jac_g2_add_double_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim b/tests/math/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim similarity index 83% rename from tests/backend/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim rename to tests/math/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim index 1960486..e7bef55 100644 --- a/tests/backend/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_jac_g2_add_double_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_add_double_bw6_761.nim b/tests/math/t_ec_shortw_jac_g2_add_double_bw6_761.nim similarity index 85% rename from tests/backend/t_ec_shortw_jac_g2_add_double_bw6_761.nim rename to tests/math/t_ec_shortw_jac_g2_add_double_bw6_761.nim index 3e5a7ea..50c1b2b 100644 --- a/tests/backend/t_ec_shortw_jac_g2_add_double_bw6_761.nim +++ b/tests/math/t_ec_shortw_jac_g2_add_double_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim b/tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim similarity index 83% rename from tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim rename to tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim index c750bb5..16939c0 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim +++ b/tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim b/tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim similarity index 83% rename from tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim rename to tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim index d4f5415..5d83867 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim +++ b/tests/math/t_ec_shortw_jac_g2_mixed_add_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim b/tests/math/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim similarity index 83% rename from tests/backend/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim rename to tests/math/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim index 8b2efaf..19a5f5c 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_jac_g2_mixed_add_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim b/tests/math/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim similarity index 85% rename from tests/backend/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim rename to tests/math/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim index 7b4cc49..37e5a32 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim +++ b/tests/math/t_ec_shortw_jac_g2_mixed_add_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim b/tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim similarity index 84% rename from tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim rename to tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim index 7904d9e..f14ac8c 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim b/tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim similarity index 84% rename from tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim rename to tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim index 2ec7dc3..e00fc76 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_distri_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim b/tests/math/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim similarity index 84% rename from tests/backend/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim rename to tests/math/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim index fd7194f..a655cbd 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_distri_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim b/tests/math/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim similarity index 86% rename from tests/backend/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim rename to tests/math/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim index f7ba124..d5c44fe 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_distri_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim similarity index 92% rename from tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim rename to tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim index 0a9c50b..f66d60b 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim similarity index 92% rename from tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim rename to tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim index b4433f0..2a124b2 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim similarity index 92% rename from tests/backend/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim rename to tests/math/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim index 2079411..0e9289c 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim similarity index 86% rename from tests/backend/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim rename to tests/math/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim index e082582..e8bced9 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_sanity_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim similarity index 84% rename from tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim rename to tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim index 1a1e1e8..3079d26 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim similarity index 84% rename from tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim rename to tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim index 9a3e944..7ae2b5f 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim similarity index 84% rename from tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim rename to tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim index b5364c4..5bebf66 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim similarity index 86% rename from tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim rename to tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim index a089384..c18e582 100644 --- a/tests/backend/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim +++ b/tests/math/t_ec_shortw_jac_g2_mul_vs_ref_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_jacobian, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_jacobian, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_edge_cases.nim b/tests/math/t_ec_shortw_prj_edge_cases.nim similarity index 95% rename from tests/backend/t_ec_shortw_prj_edge_cases.nim rename to tests/math/t_ec_shortw_prj_edge_cases.nim index 50452bf..7cfedf8 100644 --- a/tests/backend/t_ec_shortw_prj_edge_cases.nim +++ b/tests/math/t_ec_shortw_prj_edge_cases.nim @@ -16,11 +16,12 @@ import # Standard library std/[unittest, times], # Internals - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/arithmetic, - ../../constantine/backend/towers, - ../../constantine/backend/io/[io_bigints, io_fields, io_towers, io_ec], - ../../constantine/backend/elliptic/[ec_shortweierstrass_projective, ec_scalar_mul], + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/io/[io_bigints, io_fields, io_extfields, io_ec], + ../../constantine/math/elliptic/[ec_shortweierstrass_projective, ec_scalar_mul], # Test utilities ../../helpers/prng_unsafe, ./support/ec_reference_scalar_mult diff --git a/tests/backend/t_ec_shortw_prj_g1_add_double.nim b/tests/math/t_ec_shortw_prj_g1_add_double.nim similarity index 91% rename from tests/backend/t_ec_shortw_prj_g1_add_double.nim rename to tests/math/t_ec_shortw_prj_g1_add_double.nim index 0e3960a..7a91251 100644 --- a/tests/backend/t_ec_shortw_prj_g1_add_double.nim +++ b/tests/math/t_ec_shortw_prj_g1_add_double.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g1_mixed_add.nim b/tests/math/t_ec_shortw_prj_g1_mixed_add.nim similarity index 89% rename from tests/backend/t_ec_shortw_prj_g1_mixed_add.nim rename to tests/math/t_ec_shortw_prj_g1_mixed_add.nim index 76d1a12..e948c1c 100644 --- a/tests/backend/t_ec_shortw_prj_g1_mixed_add.nim +++ b/tests/math/t_ec_shortw_prj_g1_mixed_add.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/arithmetic, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/arithmetic, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g1_mul_distri.nim b/tests/math/t_ec_shortw_prj_g1_mul_distri.nim similarity index 91% rename from tests/backend/t_ec_shortw_prj_g1_mul_distri.nim rename to tests/math/t_ec_shortw_prj_g1_mul_distri.nim index 043c827..1add539 100644 --- a/tests/backend/t_ec_shortw_prj_g1_mul_distri.nim +++ b/tests/math/t_ec_shortw_prj_g1_mul_distri.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g1_mul_sanity.nim b/tests/math/t_ec_shortw_prj_g1_mul_sanity.nim similarity index 91% rename from tests/backend/t_ec_shortw_prj_g1_mul_sanity.nim rename to tests/math/t_ec_shortw_prj_g1_mul_sanity.nim index c9ec332..621fcff 100644 --- a/tests/backend/t_ec_shortw_prj_g1_mul_sanity.nim +++ b/tests/math/t_ec_shortw_prj_g1_mul_sanity.nim @@ -10,10 +10,10 @@ import # Standard library std/[unittest, times], # Internals - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/io/[io_bigints, io_fields, io_ec], - ../../constantine/backend/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_scalar_mul], + ../../constantine/math/config/[common, curves], + ../../constantine/math/[arithmetic, primitives], + ../../constantine/math/io/[io_bigints, io_fields, io_ec], + ../../constantine/math/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_scalar_mul], # Test utilities ../../helpers/prng_unsafe, ./support/ec_reference_scalar_mult, diff --git a/tests/backend/t_ec_shortw_prj_g1_mul_vs_ref.nim b/tests/math/t_ec_shortw_prj_g1_mul_vs_ref.nim similarity index 91% rename from tests/backend/t_ec_shortw_prj_g1_mul_vs_ref.nim rename to tests/math/t_ec_shortw_prj_g1_mul_vs_ref.nim index 3199eaf..85caf97 100644 --- a/tests/backend/t_ec_shortw_prj_g1_mul_vs_ref.nim +++ b/tests/math/t_ec_shortw_prj_g1_mul_vs_ref.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_add_double_bls12_377.nim b/tests/math/t_ec_shortw_prj_g2_add_double_bls12_377.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_add_double_bls12_377.nim rename to tests/math/t_ec_shortw_prj_g2_add_double_bls12_377.nim index c95d73d..7f8b682 100644 --- a/tests/backend/t_ec_shortw_prj_g2_add_double_bls12_377.nim +++ b/tests/math/t_ec_shortw_prj_g2_add_double_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_add_double_bls12_381.nim b/tests/math/t_ec_shortw_prj_g2_add_double_bls12_381.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_add_double_bls12_381.nim rename to tests/math/t_ec_shortw_prj_g2_add_double_bls12_381.nim index 78e84fb..7c614d4 100644 --- a/tests/backend/t_ec_shortw_prj_g2_add_double_bls12_381.nim +++ b/tests/math/t_ec_shortw_prj_g2_add_double_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim b/tests/math/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim rename to tests/math/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim index 0523d1b..e0954b2 100644 --- a/tests/backend/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_prj_g2_add_double_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_add_double_bw6_761.nim b/tests/math/t_ec_shortw_prj_g2_add_double_bw6_761.nim similarity index 85% rename from tests/backend/t_ec_shortw_prj_g2_add_double_bw6_761.nim rename to tests/math/t_ec_shortw_prj_g2_add_double_bw6_761.nim index 0504872..190b569 100644 --- a/tests/backend/t_ec_shortw_prj_g2_add_double_bw6_761.nim +++ b/tests/math/t_ec_shortw_prj_g2_add_double_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim b/tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim rename to tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim index 7d9c3de..5e8e1d2 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim +++ b/tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim b/tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim rename to tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim index b60b03d..119115d 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim +++ b/tests/math/t_ec_shortw_prj_g2_mixed_add_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim b/tests/math/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim rename to tests/math/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim index 82a6f1a..d135037 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_prj_g2_mixed_add_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim b/tests/math/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim similarity index 85% rename from tests/backend/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim rename to tests/math/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim index d3f236a..d8f6b9c 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim +++ b/tests/math/t_ec_shortw_prj_g2_mixed_add_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim b/tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim similarity index 84% rename from tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim rename to tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim index 314da9b..b8d45a7 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim b/tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim similarity index 84% rename from tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim rename to tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim index 89748b9..9254fe5 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_distri_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim b/tests/math/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim similarity index 84% rename from tests/backend/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim rename to tests/math/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim index 1dc6164..8926789 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_distri_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim b/tests/math/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim similarity index 86% rename from tests/backend/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim rename to tests/math/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim index 1c2afe7..336c65b 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_distri_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim similarity index 92% rename from tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim rename to tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim index 39a2147..2bed3d0 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim similarity index 92% rename from tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim rename to tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim index d1d1a8e..3af1726 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim similarity index 92% rename from tests/backend/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim rename to tests/math/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim index a23cf85..f5d00dd 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim similarity index 86% rename from tests/backend/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim rename to tests/math/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim index 91b0bb0..50630e7 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_sanity_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim rename to tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim index d1258af..42eb130 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim rename to tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim index 105d396..200a939 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim similarity index 83% rename from tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim rename to tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim index 312bdc1..bfc4221 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim similarity index 86% rename from tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim rename to tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim index 8111d35..c48f683 100644 --- a/tests/backend/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim +++ b/tests/math/t_ec_shortw_prj_g2_mul_vs_ref_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_shortweierstrass_projective, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_subgroups_bls12_377.nim b/tests/math/t_ec_subgroups_bls12_377.nim similarity index 85% rename from tests/backend/t_ec_subgroups_bls12_377.nim rename to tests/math/t_ec_subgroups_bls12_377.nim index 6599a35..72d9ca7 100644 --- a/tests/backend/t_ec_subgroups_bls12_377.nim +++ b/tests/math/t_ec_subgroups_bls12_377.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_subgroups_bls12_381.nim b/tests/math/t_ec_subgroups_bls12_381.nim similarity index 85% rename from tests/backend/t_ec_subgroups_bls12_381.nim rename to tests/math/t_ec_subgroups_bls12_381.nim index 3da853b..34c51b9 100644 --- a/tests/backend/t_ec_subgroups_bls12_381.nim +++ b/tests/math/t_ec_subgroups_bls12_381.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_subgroups_bn254_nogami.nim b/tests/math/t_ec_subgroups_bn254_nogami.nim similarity index 85% rename from tests/backend/t_ec_subgroups_bn254_nogami.nim rename to tests/math/t_ec_subgroups_bn254_nogami.nim index 951ee00..ac4291f 100644 --- a/tests/backend/t_ec_subgroups_bn254_nogami.nim +++ b/tests/math/t_ec_subgroups_bn254_nogami.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_subgroups_bn254_snarks.nim b/tests/math/t_ec_subgroups_bn254_snarks.nim similarity index 85% rename from tests/backend/t_ec_subgroups_bn254_snarks.nim rename to tests/math/t_ec_subgroups_bn254_snarks.nim index 564f5b8..aa3c33b 100644 --- a/tests/backend/t_ec_subgroups_bn254_snarks.nim +++ b/tests/math/t_ec_subgroups_bn254_snarks.nim @@ -8,9 +8,9 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_shortweierstrass_projective, - ../../constantine/backend/towers, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/ec_shortweierstrass_projective, + ../../constantine/math/extension_fields, # Test utilities ./t_ec_template diff --git a/tests/backend/t_ec_template.nim b/tests/math/t_ec_template.nim similarity index 98% rename from tests/backend/t_ec_template.nim rename to tests/math/t_ec_template.nim index e3d4755..6b59c62 100644 --- a/tests/backend/t_ec_template.nim +++ b/tests/math/t_ec_template.nim @@ -16,22 +16,25 @@ import # Standard library std/[unittest, times], # Internals - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/arithmetic, - ../../constantine/backend/towers, - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_jacobian, ec_shortweierstrass_projective, ec_twistededwards_affine, ec_twistededwards_projective, ec_scalar_mul], - ../../constantine/backend/io/[io_bigints, io_fields, io_ec], - ../../constantine/backend/curves/zoo_subgroups, + ../../constantine/math/io/[io_bigints, io_fields, io_ec], + ../../constantine/math/curves/zoo_subgroups, # Test utilities ../../helpers/prng_unsafe, ./support/ec_reference_scalar_mult +export unittest # Generic sandwich + type RandomGen* = enum Uniform diff --git a/tests/backend/t_ec_twedwards_prj_add_double.nim b/tests/math/t_ec_twedwards_prj_add_double.nim similarity index 84% rename from tests/backend/t_ec_twedwards_prj_add_double.nim rename to tests/math/t_ec_twedwards_prj_add_double.nim index e9ed936..4da74e1 100644 --- a/tests/backend/t_ec_twedwards_prj_add_double.nim +++ b/tests/math/t_ec_twedwards_prj_add_double.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_twistededwards_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_twistededwards_projective, # Test utilities ./t_ec_template @@ -17,9 +17,9 @@ const Iters = 8 run_EC_addition_tests( - ec = ECP_TwEdwards_Prj[Fp[Curve25519]], + ec = ECP_TwEdwards_Prj[Fp[Edwards25519]], Iters = Iters, - moduleName = "test_ec_twistededwards_projective_add_double_" & $Curve25519 + moduleName = "test_ec_twistededwards_projective_add_double_" & $Edwards25519 ) run_EC_addition_tests( diff --git a/tests/backend/t_ec_twedwards_prj_mul_distri.nim b/tests/math/t_ec_twedwards_prj_mul_distri.nim similarity index 85% rename from tests/backend/t_ec_twedwards_prj_mul_distri.nim rename to tests/math/t_ec_twedwards_prj_mul_distri.nim index 4845145..92161c2 100644 --- a/tests/backend/t_ec_twedwards_prj_mul_distri.nim +++ b/tests/math/t_ec_twedwards_prj_mul_distri.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_twistededwards_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_twistededwards_projective, # Test utilities ./t_ec_template @@ -18,9 +18,9 @@ const ItersMul = Iters div 4 run_EC_mul_distributive_tests( - ec = ECP_TwEdwards_Prj[Fp[Curve25519]], + ec = ECP_TwEdwards_Prj[Fp[Edwards25519]], ItersMul = ItersMul, - moduleName = "test_ec_twistededwards_projective_mul_distributive_" & $Curve25519 + moduleName = "test_ec_twistededwards_projective_mul_distributive_" & $Edwards25519 ) run_EC_mul_distributive_tests( diff --git a/tests/backend/t_ec_twedwards_prj_mul_sanity.nim b/tests/math/t_ec_twedwards_prj_mul_sanity.nim similarity index 85% rename from tests/backend/t_ec_twedwards_prj_mul_sanity.nim rename to tests/math/t_ec_twedwards_prj_mul_sanity.nim index 2f742ab..be52778 100644 --- a/tests/backend/t_ec_twedwards_prj_mul_sanity.nim +++ b/tests/math/t_ec_twedwards_prj_mul_sanity.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_twistededwards_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_twistededwards_projective, # Test utilities ./t_ec_template @@ -18,9 +18,9 @@ const ItersMul = Iters div 4 run_EC_mul_sanity_tests( - ec = ECP_TwEdwards_Prj[Fp[Curve25519]], + ec = ECP_TwEdwards_Prj[Fp[Edwards25519]], ItersMul = ItersMul, - moduleName = "test_ec_twistededwards_projective_mul_sanity_" & $Curve25519 + moduleName = "test_ec_twistededwards_projective_mul_sanity_" & $Edwards25519 ) run_EC_mul_sanity_tests( diff --git a/tests/backend/t_ec_twedwards_prj_mul_vs_ref.nim b/tests/math/t_ec_twedwards_prj_mul_vs_ref.nim similarity index 85% rename from tests/backend/t_ec_twedwards_prj_mul_vs_ref.nim rename to tests/math/t_ec_twedwards_prj_mul_vs_ref.nim index 5260963..b8c50c4 100644 --- a/tests/backend/t_ec_twedwards_prj_mul_vs_ref.nim +++ b/tests/math/t_ec_twedwards_prj_mul_vs_ref.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/config/[type_ff, curves], - ../../constantine/backend/elliptic/ec_twistededwards_projective, + ../../constantine/math/config/[type_ff, curves], + ../../constantine/math/elliptic/ec_twistededwards_projective, # Test utilities ./t_ec_template @@ -18,9 +18,9 @@ const ItersMul = Iters div 4 run_EC_mul_vs_ref_impl( - ec = ECP_TwEdwards_Prj[Fp[Curve25519]], + ec = ECP_TwEdwards_Prj[Fp[Edwards25519]], ItersMul = ItersMul, - moduleName = "test_ec_twistededwards_projective_mul_vs_ref_" & $Curve25519 + moduleName = "test_ec_twistededwards_projective_mul_vs_ref_" & $Edwards25519 ) run_EC_mul_vs_ref_impl( diff --git a/tests/backend/t_finite_fields.nim b/tests/math/t_finite_fields.nim similarity index 95% rename from tests/backend/t_finite_fields.nim rename to tests/math/t_finite_fields.nim index 6dbe88f..5e64e36 100644 --- a/tests/backend/t_finite_fields.nim +++ b/tests/math/t_finite_fields.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/unittest, - ../../constantine/backend/arithmetic, - ../../constantine/backend/arithmetic/limbs_montgomery, - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/config/curves + ../../constantine/math/arithmetic, + ../../constantine/math/arithmetic/limbs_montgomery, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/config/curves static: doAssert defined(testingCurves), "This modules requires the -d:testingCurves compile option" @@ -345,8 +345,8 @@ proc largeField() = test "fromMont doesn't need a final substraction with 255-bit prime (1 spare bit)": block: - var a: Fp[Curve25519] - a.mres = Fp[Curve25519].getMontyPrimeMinus1() + var a: Fp[Edwards25519] + a.mres = Fp[Edwards25519].getMontyPrimeMinus1() let expected = BigInt[255].fromHex"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec" var r: BigInt[255] @@ -354,8 +354,8 @@ proc largeField() = check: bool(r == expected) block: - var a: Fp[Curve25519] - var d: FpDbl[Curve25519] + var a: Fp[Edwards25519] + var d: FpDbl[Edwards25519] # Set Montgomery repr to the largest field element in Montgomery Residue form a.mres = BigInt[255].fromHex"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec" @@ -364,7 +364,7 @@ proc largeField() = var r, expected: BigInt[255] r.fromField(a) - expected.limbs.redc2xMont(d.limbs2x, Curve25519.Mod().limbs, Fp[Curve25519].getNegInvModWord(), Fp[Curve25519].getSpareBits()) + expected.limbs.redc2xMont(d.limbs2x, Edwards25519.Mod().limbs, Fp[Edwards25519].getNegInvModWord(), Fp[Edwards25519].getSpareBits()) check: bool(r == expected) diff --git a/tests/backend/t_finite_fields.nim.cfg b/tests/math/t_finite_fields.nim.cfg similarity index 100% rename from tests/backend/t_finite_fields.nim.cfg rename to tests/math/t_finite_fields.nim.cfg diff --git a/tests/backend/t_finite_fields_conditional_arithmetic.nim b/tests/math/t_finite_fields_conditional_arithmetic.nim similarity index 87% rename from tests/backend/t_finite_fields_conditional_arithmetic.nim rename to tests/math/t_finite_fields_conditional_arithmetic.nim index 0534cb6..9f4b553 100644 --- a/tests/backend/t_finite_fields_conditional_arithmetic.nim +++ b/tests/math/t_finite_fields_conditional_arithmetic.nim @@ -7,9 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/unittest, - ../../constantine/backend/arithmetic, - ../../constantine/backend/io/io_fields, - ../../constantine/backend/config/[common, curves] + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/io/io_fields, + ../../constantine/math/config/curves echo "\n------------------------------------------------------\n" diff --git a/tests/backend/t_finite_fields_double_precision.nim b/tests/math/t_finite_fields_double_precision.nim similarity index 92% rename from tests/backend/t_finite_fields_double_precision.nim rename to tests/math/t_finite_fields_double_precision.nim index 89df19c..4515663 100644 --- a/tests/backend/t_finite_fields_double_precision.nim +++ b/tests/math/t_finite_fields_double_precision.nim @@ -10,9 +10,10 @@ import # Standard library std/[unittest, times], # Internal - ../../constantine/backend/arithmetic, - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/config/[curves, common, type_bigint], + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/config/[curves, type_bigint], # Test utilities ../../helpers/prng_unsafe @@ -157,13 +158,13 @@ suite "Field Addition/Substraction/Negation via double-precision field elements" for _ in 0 ..< Iters: addsubneg_random_long01Seq(BLS12_381) - test "With Curve25519 field modulus": + test "With Edwards25519 field modulus": for _ in 0 ..< Iters: - addsubneg_random_unsafe(Curve25519) + addsubneg_random_unsafe(Edwards25519) for _ in 0 ..< Iters: - addsubneg_randomHighHammingWeight(Curve25519) + addsubneg_randomHighHammingWeight(Edwards25519) for _ in 0 ..< Iters: - addsubneg_random_long01Seq(Curve25519) + addsubneg_random_long01Seq(Edwards25519) test "With Bandersnatch field modulus": for _ in 0 ..< Iters: @@ -213,13 +214,13 @@ suite "Field Multiplication via double-precision field elements is consistent wi for _ in 0 ..< Iters: mul_random_long01Seq(BLS12_381) - test "With Curve25519 field modulus": + test "With Edwards25519 field modulus": for _ in 0 ..< Iters: - mul_random_unsafe(Curve25519) + mul_random_unsafe(Edwards25519) for _ in 0 ..< Iters: - mul_randomHighHammingWeight(Curve25519) + mul_randomHighHammingWeight(Edwards25519) for _ in 0 ..< Iters: - mul_random_long01Seq(Curve25519) + mul_random_long01Seq(Edwards25519) test "With Bandersnatch field modulus": for _ in 0 ..< Iters: @@ -262,13 +263,13 @@ suite "Field Squaring via double-precision field elements is consistent with sin for _ in 0 ..< Iters: sqr_random_long01Seq(BLS12_381) - test "With Curve25519 field modulus": + test "With Edwards25519 field modulus": for _ in 0 ..< Iters: - sqr_random_unsafe(Curve25519) + sqr_random_unsafe(Edwards25519) for _ in 0 ..< Iters: - sqr_randomHighHammingWeight(Curve25519) + sqr_randomHighHammingWeight(Edwards25519) for _ in 0 ..< Iters: - sqr_random_long01Seq(Curve25519) + sqr_random_long01Seq(Edwards25519) test "With Bandersnatch field modulus": for _ in 0 ..< Iters: diff --git a/tests/backend/t_finite_fields_double_precision.nim.cfg b/tests/math/t_finite_fields_double_precision.nim.cfg similarity index 100% rename from tests/backend/t_finite_fields_double_precision.nim.cfg rename to tests/math/t_finite_fields_double_precision.nim.cfg diff --git a/tests/backend/t_finite_fields_mulsquare.nim b/tests/math/t_finite_fields_mulsquare.nim similarity index 94% rename from tests/backend/t_finite_fields_mulsquare.nim rename to tests/math/t_finite_fields_mulsquare.nim index 0dedafb..f8d958c 100644 --- a/tests/backend/t_finite_fields_mulsquare.nim +++ b/tests/math/t_finite_fields_mulsquare.nim @@ -10,9 +10,10 @@ import # Standard library std/[unittest, times], # Internal - ../../constantine/backend/arithmetic, - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/config/[curves, common, type_bigint], + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/config/[curves, type_bigint], # Test utilities ../../helpers/prng_unsafe @@ -85,7 +86,7 @@ proc mainSanity() = sanity P256 sanity Secp256k1 sanity BLS12_381 - sanity Curve25519 + sanity Edwards25519 sanity Bandersnatch mainSanity() @@ -171,13 +172,13 @@ suite "Random Modular Squaring is consistent with Modular Multiplication" & " [" for _ in 0 ..< Iters: random_long01Seq(BLS12_381) - test "Random squaring mod Curve25519 [FastSquaring = " & $(Fp[Curve25519].getSpareBits() >= 2) & "]": + test "Random squaring mod Edwards25519 [FastSquaring = " & $(Fp[Edwards25519].getSpareBits() >= 2) & "]": for _ in 0 ..< Iters: - randomCurve(Curve25519) + randomCurve(Edwards25519) for _ in 0 ..< Iters: - randomHighHammingWeight(Curve25519) + randomHighHammingWeight(Edwards25519) for _ in 0 ..< Iters: - random_long01Seq(Curve25519) + random_long01Seq(Edwards25519) test "Random squaring mod Bandersnatch [FastSquaring = " & $(Fp[Bandersnatch].getSpareBits() >= 2) & "]": for _ in 0 ..< Iters: diff --git a/tests/backend/t_finite_fields_mulsquare.nim.cfg b/tests/math/t_finite_fields_mulsquare.nim.cfg similarity index 100% rename from tests/backend/t_finite_fields_mulsquare.nim.cfg rename to tests/math/t_finite_fields_mulsquare.nim.cfg diff --git a/tests/backend/t_finite_fields_powinv.nim b/tests/math/t_finite_fields_powinv.nim similarity index 97% rename from tests/backend/t_finite_fields_powinv.nim rename to tests/math/t_finite_fields_powinv.nim index 20ad12d..096c706 100644 --- a/tests/backend/t_finite_fields_powinv.nim +++ b/tests/math/t_finite_fields_powinv.nim @@ -10,10 +10,10 @@ import # Standard library std/[unittest, times], # Internal - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/config/curves, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/config/curves, # Test utilities ../../helpers/prng_unsafe @@ -193,7 +193,7 @@ proc main() = testRandomDiv2 P224 testRandomDiv2 BN254_Nogami testRandomDiv2 BN254_Snarks - testRandomDiv2 Curve25519 + testRandomDiv2 Edwards25519 testRandomDiv2 P256 testRandomDiv2 Secp256k1 testRandomDiv2 BLS12_377 @@ -281,7 +281,7 @@ proc main() = testRandomInv P224 testRandomInv BN254_Nogami testRandomInv BN254_Snarks - testRandomInv Curve25519 + testRandomInv Edwards25519 testRandomInv P256 testRandomInv Secp256k1 testRandomInv BLS12_377 diff --git a/tests/backend/t_finite_fields_powinv.nim.cfg b/tests/math/t_finite_fields_powinv.nim.cfg similarity index 100% rename from tests/backend/t_finite_fields_powinv.nim.cfg rename to tests/math/t_finite_fields_powinv.nim.cfg diff --git a/tests/backend/t_finite_fields_sqrt.nim b/tests/math/t_finite_fields_sqrt.nim similarity index 96% rename from tests/backend/t_finite_fields_sqrt.nim rename to tests/math/t_finite_fields_sqrt.nim index 21a2dc7..ab22451 100644 --- a/tests/backend/t_finite_fields_sqrt.nim +++ b/tests/math/t_finite_fields_sqrt.nim @@ -10,9 +10,10 @@ import # Standard library std/[tables, unittest, times], # Internal - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/io/[io_fields], - ../../constantine/backend/config/[curves, common], + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/io/io_fields, + ../../constantine/math/config/curves, # Test utilities ../../helpers/prng_unsafe @@ -154,12 +155,12 @@ proc main() = randomSqrtCheck BLS12_377 # p ≢ 3 (mod 4) randomSqrtCheck BLS12_381 randomSqrtCheck BW6_761 - randomSqrtCheck Curve25519 + randomSqrtCheck Edwards25519 randomSqrtCheck Jubjub randomSqrtCheck Bandersnatch suite "Modular sqrt(u/v)" & " [" & $WordBitwidth & "-bit mode]": - randomSqrtRatioCheck Curve25519 + randomSqrtRatioCheck Edwards25519 randomSqrtRatioCheck Jubjub randomSqrtRatioCheck Bandersnatch diff --git a/tests/backend/t_finite_fields_sqrt.nim.cfg b/tests/math/t_finite_fields_sqrt.nim.cfg similarity index 100% rename from tests/backend/t_finite_fields_sqrt.nim.cfg rename to tests/math/t_finite_fields_sqrt.nim.cfg diff --git a/tests/backend/t_finite_fields_vs_gmp.nim b/tests/math/t_finite_fields_vs_gmp.nim similarity index 97% rename from tests/backend/t_finite_fields_vs_gmp.nim rename to tests/math/t_finite_fields_vs_gmp.nim index fd1f475..522f0e1 100644 --- a/tests/backend/t_finite_fields_vs_gmp.nim +++ b/tests/math/t_finite_fields_vs_gmp.nim @@ -12,10 +12,10 @@ import # Third-party gmp, stew/byteutils, # Internal - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/arithmetic, - ../../constantine/backend/primitives, - ../../constantine/backend/config/curves + ../../constantine/platforms/abstractions, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/arithmetic, + ../../constantine/math/config/curves echo "\n------------------------------------------------------\n" @@ -24,7 +24,7 @@ var RNG {.compileTime.} = initRand(1234) const AvailableCurves = [ P224, BN254_Nogami, BN254_Snarks, - P256, Secp256k1, Curve25519, Bandersnatch, + P256, Secp256k1, Edwards25519, Bandersnatch, BLS12_377, BLS12_381, BW6_761 ] diff --git a/tests/backend/t_fp12_anti_regression.nim b/tests/math/t_fp12_anti_regression.nim similarity index 97% rename from tests/backend/t_fp12_anti_regression.nim rename to tests/math/t_fp12_anti_regression.nim index 3879783..43cf722 100644 --- a/tests/backend/t_fp12_anti_regression.nim +++ b/tests/math/t_fp12_anti_regression.nim @@ -10,11 +10,11 @@ import # stdlib std/unittest, # Internals - ../../constantine/backend/config/[common, type_ff], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/io_towers, - ../../constantine/backend/towers + ../../constantine/platforms/abstractions, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/io_extfields, + ../../constantine/math/extension_fields # ############################################################### # diff --git a/tests/backend/t_fp12_bls12_377.nim b/tests/math/t_fp12_bls12_377.nim similarity index 90% rename from tests/backend/t_fp12_bls12_377.nim rename to tests/math/t_fp12_bls12_377.nim index 8fba73c..31cca84 100644 --- a/tests/backend/t_fp12_bls12_377.nim +++ b/tests/math/t_fp12_bls12_377.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp12_bls12_381.nim b/tests/math/t_fp12_bls12_381.nim similarity index 90% rename from tests/backend/t_fp12_bls12_381.nim rename to tests/math/t_fp12_bls12_381.nim index dbca253..d015b56 100644 --- a/tests/backend/t_fp12_bls12_381.nim +++ b/tests/math/t_fp12_bls12_381.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp12_bn254_snarks.nim b/tests/math/t_fp12_bn254_snarks.nim similarity index 90% rename from tests/backend/t_fp12_bn254_snarks.nim rename to tests/math/t_fp12_bn254_snarks.nim index e9b441d..9ee54ff 100644 --- a/tests/backend/t_fp12_bn254_snarks.nim +++ b/tests/math/t_fp12_bn254_snarks.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp12_exponentiation.nim b/tests/math/t_fp12_exponentiation.nim similarity index 96% rename from tests/backend/t_fp12_exponentiation.nim rename to tests/math/t_fp12_exponentiation.nim index 34d7299..1152d1e 100644 --- a/tests/backend/t_fp12_exponentiation.nim +++ b/tests/math/t_fp12_exponentiation.nim @@ -10,11 +10,11 @@ import # Standard library std/[tables, unittest, times], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/io_towers, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/io_extfields, # Test utilities ../../helpers/[prng_unsafe, static_for] diff --git a/tests/backend/t_fp12_frobenius.nim b/tests/math/t_fp12_frobenius.nim similarity index 89% rename from tests/backend/t_fp12_frobenius.nim rename to tests/math/t_fp12_frobenius.nim index 7ab4360..3e994e3 100644 --- a/tests/backend/t_fp12_frobenius.nim +++ b/tests/math/t_fp12_frobenius.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_frobenius_template @@ -22,7 +22,7 @@ const TestCurves = [ runFrobeniusTowerTests( ExtDegree = 12, - Iters = 8, + Iters = 2, TestCurves = TestCurves, moduleName = "test_fp12_frobenius", testSuiteDesc = "𝔽p12 Frobenius map: Frobenius(a, k) = a^(pᵏ) (mod p^12)" diff --git a/tests/backend/t_fp2.nim b/tests/math/t_fp2.nim similarity index 92% rename from tests/backend/t_fp2.nim rename to tests/math/t_fp2.nim index d966177..3fe42d6 100644 --- a/tests/backend/t_fp2.nim +++ b/tests/math/t_fp2.nim @@ -8,8 +8,7 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp2_frobenius.nim b/tests/math/t_fp2_frobenius.nim similarity index 89% rename from tests/backend/t_fp2_frobenius.nim rename to tests/math/t_fp2_frobenius.nim index 23ee39c..f7383c3 100644 --- a/tests/backend/t_fp2_frobenius.nim +++ b/tests/math/t_fp2_frobenius.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_frobenius_template @@ -23,7 +23,7 @@ const TestCurves = [ runFrobeniusTowerTests( ExtDegree = 2, - Iters = 8, + Iters = 2, TestCurves = TestCurves, moduleName = "test_fp2_frobenius", testSuiteDesc = "𝔽p2 Frobenius map: Frobenius(a, k) = a^(pᵏ) (mod p²)" diff --git a/tests/backend/t_fp2_sqrt.nim b/tests/math/t_fp2_sqrt.nim similarity index 94% rename from tests/backend/t_fp2_sqrt.nim rename to tests/math/t_fp2_sqrt.nim index 8dca496..3ff3acb 100644 --- a/tests/backend/t_fp2_sqrt.nim +++ b/tests/math/t_fp2_sqrt.nim @@ -10,11 +10,11 @@ import # Standard library std/[tables, unittest, times], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/io_towers, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/io_extfields, # Test utilities ../../helpers/[prng_unsafe, static_for] diff --git a/tests/backend/t_fp4.nim b/tests/math/t_fp4.nim similarity index 95% rename from tests/backend/t_fp4.nim rename to tests/math/t_fp4.nim index d518274..ecfed51 100644 --- a/tests/backend/t_fp4.nim +++ b/tests/math/t_fp4.nim @@ -7,11 +7,9 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - std/unittest, # Internals - ../../constantine/backend/towers, - ../../constantine/backend/io/io_towers, - ../../constantine/backend/config/curves, + ../../constantine/math/io/io_extfields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp4_frobenius.nim b/tests/math/t_fp4_frobenius.nim similarity index 89% rename from tests/backend/t_fp4_frobenius.nim rename to tests/math/t_fp4_frobenius.nim index fef3980..b1d6f74 100644 --- a/tests/backend/t_fp4_frobenius.nim +++ b/tests/math/t_fp4_frobenius.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_frobenius_template @@ -22,7 +22,7 @@ const TestCurves = [ runFrobeniusTowerTests( ExtDegree = 4, - Iters = 8, + Iters = 2, TestCurves = TestCurves, moduleName = "test_fp4_frobenius", testSuiteDesc = "𝔽p4 Frobenius map: Frobenius(a, k) = a^(pᵏ) (mod p⁴)" diff --git a/tests/backend/t_fp6_bls12_377.nim b/tests/math/t_fp6_bls12_377.nim similarity index 90% rename from tests/backend/t_fp6_bls12_377.nim rename to tests/math/t_fp6_bls12_377.nim index 50981f6..ae58683 100644 --- a/tests/backend/t_fp6_bls12_377.nim +++ b/tests/math/t_fp6_bls12_377.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp6_bls12_381.nim b/tests/math/t_fp6_bls12_381.nim similarity index 90% rename from tests/backend/t_fp6_bls12_381.nim rename to tests/math/t_fp6_bls12_381.nim index 8c7b57d..d1e82fe 100644 --- a/tests/backend/t_fp6_bls12_381.nim +++ b/tests/math/t_fp6_bls12_381.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp6_bn254_snarks.nim b/tests/math/t_fp6_bn254_snarks.nim similarity index 90% rename from tests/backend/t_fp6_bn254_snarks.nim rename to tests/math/t_fp6_bn254_snarks.nim index 642a68e..1344509 100644 --- a/tests/backend/t_fp6_bn254_snarks.nim +++ b/tests/math/t_fp6_bn254_snarks.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp6_bw6_761.nim b/tests/math/t_fp6_bw6_761.nim similarity index 90% rename from tests/backend/t_fp6_bw6_761.nim rename to tests/math/t_fp6_bw6_761.nim index 0a4b0c5..c540ab6 100644 --- a/tests/backend/t_fp6_bw6_761.nim +++ b/tests/math/t_fp6_bw6_761.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_template diff --git a/tests/backend/t_fp6_frobenius.nim b/tests/math/t_fp6_frobenius.nim similarity index 89% rename from tests/backend/t_fp6_frobenius.nim rename to tests/math/t_fp6_frobenius.nim index 87a697f..21f09f2 100644 --- a/tests/backend/t_fp6_frobenius.nim +++ b/tests/math/t_fp6_frobenius.nim @@ -8,8 +8,8 @@ import # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, # Test utilities ./t_fp_tower_frobenius_template @@ -23,7 +23,7 @@ const TestCurves = [ runFrobeniusTowerTests( ExtDegree = 6, - Iters = 8, + Iters = 2, TestCurves = TestCurves, moduleName = "test_fp6_frobenius", testSuiteDesc = "𝔽p6 Frobenius map: Frobenius(a, k) = a^(pᵏ) (mod p⁶)" diff --git a/tests/backend/t_fp_cubic_root.nim b/tests/math/t_fp_cubic_root.nim similarity index 83% rename from tests/backend/t_fp_cubic_root.nim rename to tests/math/t_fp_cubic_root.nim index 8e4f6cb..7d20e43 100644 --- a/tests/backend/t_fp_cubic_root.nim +++ b/tests/math/t_fp_cubic_root.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/unittest, - ../../constantine/backend/config/common, - ../../constantine/backend/arithmetic, - ../../constantine/backend/config/curves, - ../../constantine/backend/curves/zoo_endomorphisms + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/config/curves, + ../../constantine/math/curves/zoo_endomorphisms echo "\n------------------------------------------------------\n" diff --git a/tests/backend/t_fp_tower_frobenius_template.nim b/tests/math/t_fp_tower_frobenius_template.nim similarity index 94% rename from tests/backend/t_fp_tower_frobenius_template.nim rename to tests/math/t_fp_tower_frobenius_template.nim index 0971c17..9447635 100644 --- a/tests/backend/t_fp_tower_frobenius_template.nim +++ b/tests/math/t_fp_tower_frobenius_template.nim @@ -17,13 +17,16 @@ import # Standard library std/[unittest, times], # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/arithmetic, - ../../constantine/backend/isogeny/frobenius, + ../../constantine/platforms/abstractions, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/isogenies/frobenius, # Test utilities ../../helpers/[prng_unsafe, static_for] +export unittest # Generic sandwich + echo "\n------------------------------------------------------\n" template ExtField(degree: static int, curve: static Curve): untyped = diff --git a/tests/backend/t_fp_tower_template.nim b/tests/math/t_fp_tower_template.nim similarity index 98% rename from tests/backend/t_fp_tower_template.nim rename to tests/math/t_fp_tower_template.nim index cd73757..1cf48c3 100644 --- a/tests/backend/t_fp_tower_template.nim +++ b/tests/math/t_fp_tower_template.nim @@ -17,13 +17,16 @@ import # Standard library std/[unittest, times], # Internals - ../../constantine/backend/towers, - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/arithmetic, - ../../constantine/backend/io/io_towers, + ../../constantine/platforms/abstractions, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/io/io_extfields, # Test utilities ../../helpers/[prng_unsafe, static_for] +export unittest # Generic sandwich + echo "\n------------------------------------------------------\n" template ExtField(degree: static int, curve: static Curve): untyped = diff --git a/tests/backend/t_fr.nim b/tests/math/t_fr.nim similarity index 95% rename from tests/backend/t_fr.nim rename to tests/math/t_fr.nim index 2b6a900..bc6b83b 100644 --- a/tests/backend/t_fr.nim +++ b/tests/math/t_fr.nim @@ -10,9 +10,10 @@ import # Standard library std/[unittest, times], # Internal - ../../constantine/backend/arithmetic, - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/config/[curves, common, type_bigint], + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/config/curves, # Test utilities ../../helpers/prng_unsafe diff --git a/tests/backend/t_hash_to_curve.nim b/tests/math/t_hash_to_curve.nim similarity index 93% rename from tests/backend/t_hash_to_curve.nim rename to tests/math/t_hash_to_curve.nim index 149d255..1313249 100644 --- a/tests/backend/t_hash_to_curve.nim +++ b/tests/math/t_hash_to_curve.nim @@ -10,15 +10,17 @@ import # Standard library std/[unittest, times, os, strutils, macros], # 3rd party - jsony, + pkg/jsony, # Internals - ../../constantine/backend/config/[common, curves, type_bigint, type_ff], - ../../constantine/backend/[towers, hashes], - ../../constantine/backend/io/[io_bigints, io_ec], - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/extension_fields, + ../../constantine/math/io/[io_bigints, io_ec], + ../../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective], - ../../constantine/backend/hash_to_curve/hash_to_curve + ../../constantine/hash_to_curve/hash_to_curve, + ../../constantine/hashes # Serialization # -------------------------------------------------------------------------- diff --git a/tests/backend/t_hash_to_field.nim b/tests/math/t_hash_to_field.nim similarity index 96% rename from tests/backend/t_hash_to_field.nim rename to tests/math/t_hash_to_field.nim index 68a11f5..7ca7367 100644 --- a/tests/backend/t_hash_to_field.nim +++ b/tests/math/t_hash_to_field.nim @@ -7,12 +7,12 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/hashes, - ../../constantine/backend/hash_to_curve/h2c_hash_to_field, - ../../constantine/backend/config/[curves_declaration, type_ff], - ../../constantine/backend/tower_field_extensions/extension_fields, + ../../constantine/hashes, + ../../constantine/hash_to_curve/h2c_hash_to_field, + ../../constantine/math/config/[curves_declaration, type_ff], + ../../constantine/math/extension_fields/towers, - ../../constantine/backend/io/[io_fields, io_towers], + ../../constantine/math/io/[io_fields, io_extfields], # Third-party stew/byteutils diff --git a/tests/backend/t_io_bigints.nim b/tests/math/t_io_bigints.nim similarity index 97% rename from tests/backend/t_io_bigints.nim rename to tests/math/t_io_bigints.nim index aa6b405..700ae42 100644 --- a/tests/backend/t_io_bigints.nim +++ b/tests/math/t_io_bigints.nim @@ -7,9 +7,9 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/[unittest,times], - ../../constantine/backend/io/io_bigints, - ../../constantine/backend/config/common, - ../../constantine/backend/arithmetic, + ../../constantine/math/io/io_bigints, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, ../../helpers/prng_unsafe # Random seed for reproducibility diff --git a/tests/backend/t_io_fields.nim b/tests/math/t_io_fields.nim similarity index 96% rename from tests/backend/t_io_fields.nim rename to tests/math/t_io_fields.nim index 68cc5b3..39180a3 100644 --- a/tests/backend/t_io_fields.nim +++ b/tests/math/t_io_fields.nim @@ -7,10 +7,10 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/[unittest, times], - ../../constantine/backend/io/[io_bigints, io_fields], - ../../constantine/backend/config/curves, - ../../constantine/backend/config/common, - ../../constantine/backend/arithmetic, + ../../constantine/math/io/[io_bigints, io_fields], + ../../constantine/math/config/curves, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, ../../helpers/prng_unsafe # Random seed for reproducibility diff --git a/tests/backend/t_io_fields.nim.cfg b/tests/math/t_io_fields.nim.cfg similarity index 100% rename from tests/backend/t_io_fields.nim.cfg rename to tests/math/t_io_fields.nim.cfg diff --git a/tests/backend/t_io_unsaturated.nim b/tests/math/t_io_unsaturated.nim similarity index 86% rename from tests/backend/t_io_unsaturated.nim rename to tests/math/t_io_unsaturated.nim index 520c012..a0d6f3f 100644 --- a/tests/backend/t_io_unsaturated.nim +++ b/tests/math/t_io_unsaturated.nim @@ -7,10 +7,11 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/[unittest,times], - ../../constantine/backend/config/[common, curves], - ../../constantine/backend/arithmetic, - ../../constantine/backend/arithmetic/limbs_unsaturated, - ../../constantine/backend/io/io_bigints, + ../../constantine/platforms/abstractions, + ../../constantine/math/config/curves, + ../../constantine/math/arithmetic, + ../../constantine/math/arithmetic/limbs_unsaturated, + ../../constantine/math/io/io_bigints, ../../helpers/prng_unsafe # Random seed for reproducibility @@ -64,13 +65,13 @@ proc main() = testRoundtrip(BN254_Snarks, HighHammingWeight) for _ in 0 ..< Iters: testRoundtrip(BN254_Snarks, Long01Sequence) - test "Curve25519": + test "Edwards25519": for _ in 0 ..< Iters: - testRoundtrip(Curve25519, Uniform) + testRoundtrip(Edwards25519, Uniform) for _ in 0 ..< Iters: - testRoundtrip(Curve25519, HighHammingWeight) + testRoundtrip(Edwards25519, HighHammingWeight) for _ in 0 ..< Iters: - testRoundtrip(Curve25519, Long01Sequence) + testRoundtrip(Edwards25519, Long01Sequence) test "secp256k1": for _ in 0 ..< Iters: testRoundtrip(Secp256k1, Uniform) diff --git a/tests/backend/t_pairing_bls12_377_gt_subgroup.nim b/tests/math/t_pairing_bls12_377_gt_subgroup.nim similarity index 81% rename from tests/backend/t_pairing_bls12_377_gt_subgroup.nim rename to tests/math/t_pairing_bls12_377_gt_subgroup.nim index abc481b..3e456c9 100644 --- a/tests/backend/t_pairing_bls12_377_gt_subgroup.nim +++ b/tests/math/t_pairing_bls12_377_gt_subgroup.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bls12, + ../../constantine/math/pairing/pairing_bls12, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bls12_377_line_functions.nim b/tests/math/t_pairing_bls12_377_line_functions.nim similarity index 92% rename from tests/backend/t_pairing_bls12_377_line_functions.nim rename to tests/math/t_pairing_bls12_377_line_functions.nim index 613d13b..0dd9131 100644 --- a/tests/backend/t_pairing_bls12_377_line_functions.nim +++ b/tests/math/t_pairing_bls12_377_line_functions.nim @@ -10,16 +10,16 @@ import # Standard library std/[tables, unittest, times], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/io_towers, - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/io_extfields, + ../../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_scalar_mul], - ../../constantine/backend/pairing/lines_eval, + ../../constantine/math/pairing/lines_eval, # Test utilities ../helpers/[prng_unsafe, static_for] diff --git a/tests/backend/t_pairing_bls12_377_optate.nim b/tests/math/t_pairing_bls12_377_optate.nim similarity index 83% rename from tests/backend/t_pairing_bls12_377_optate.nim rename to tests/math/t_pairing_bls12_377_optate.nim index edc1b5a..fb9bb8a 100644 --- a/tests/backend/t_pairing_bls12_377_optate.nim +++ b/tests/math/t_pairing_bls12_377_optate.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bls12, + ../../constantine/math/pairing/pairing_bls12, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bls12_381_gt_subgroup.nim b/tests/math/t_pairing_bls12_381_gt_subgroup.nim similarity index 81% rename from tests/backend/t_pairing_bls12_381_gt_subgroup.nim rename to tests/math/t_pairing_bls12_381_gt_subgroup.nim index bffae46..f1a39b8 100644 --- a/tests/backend/t_pairing_bls12_381_gt_subgroup.nim +++ b/tests/math/t_pairing_bls12_381_gt_subgroup.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bls12, + ../../constantine/math/pairing/pairing_bls12, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bls12_381_line_functions.nim b/tests/math/t_pairing_bls12_381_line_functions.nim similarity index 92% rename from tests/backend/t_pairing_bls12_381_line_functions.nim rename to tests/math/t_pairing_bls12_381_line_functions.nim index 2e752e4..a5efa8e 100644 --- a/tests/backend/t_pairing_bls12_381_line_functions.nim +++ b/tests/math/t_pairing_bls12_381_line_functions.nim @@ -10,16 +10,16 @@ import # Standard library std/[tables, unittest, times], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/io_towers, - ../../constantine/backend/elliptic/[ + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/io_extfields, + ../../constantine/math/elliptic/[ ec_shortweierstrass_affine, ec_shortweierstrass_projective, ec_scalar_mul], - ../../constantine/backend/pairing/lines_eval, + ../../constantine/math/pairing/lines_eval, # Test utilities ../helpers/[prng_unsafe, static_for] diff --git a/tests/backend/t_pairing_bls12_381_multi.nim b/tests/math/t_pairing_bls12_381_multi.nim similarity index 87% rename from tests/backend/t_pairing_bls12_381_multi.nim rename to tests/math/t_pairing_bls12_381_multi.nim index b806d77..39868de 100644 --- a/tests/backend/t_pairing_bls12_381_multi.nim +++ b/tests/math/t_pairing_bls12_381_multi.nim @@ -10,14 +10,11 @@ import # Standard library std/[os, times, strformat], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[ - arithmetic, primitives, - towers, ec_shortweierstrass - ], - ../../constantine/backend/io/io_towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bls12, + ../../constantine/platforms/abstractions, + ../../constantine/math/[arithmetic, extension_fields, ec_shortweierstrass], + ../../constantine/math/io/io_extfields, + ../../constantine/math/config/curves, + ../../constantine/math/pairing/pairing_bls12, # Test utilities ../../helpers/prng_unsafe diff --git a/tests/backend/t_pairing_bls12_381_optate.nim b/tests/math/t_pairing_bls12_381_optate.nim similarity index 83% rename from tests/backend/t_pairing_bls12_381_optate.nim rename to tests/math/t_pairing_bls12_381_optate.nim index 0831b0f..4cf4d41 100644 --- a/tests/backend/t_pairing_bls12_381_optate.nim +++ b/tests/math/t_pairing_bls12_381_optate.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bls12, + ../../constantine/math/pairing/pairing_bls12, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bn254_nogami_gt_subgroup.nim b/tests/math/t_pairing_bn254_nogami_gt_subgroup.nim similarity index 82% rename from tests/backend/t_pairing_bn254_nogami_gt_subgroup.nim rename to tests/math/t_pairing_bn254_nogami_gt_subgroup.nim index 58e90ed..641df01 100644 --- a/tests/backend/t_pairing_bn254_nogami_gt_subgroup.nim +++ b/tests/math/t_pairing_bn254_nogami_gt_subgroup.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bn, + ../../constantine/math/pairing/pairing_bn, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bn254_nogami_optate.nim b/tests/math/t_pairing_bn254_nogami_optate.nim similarity index 84% rename from tests/backend/t_pairing_bn254_nogami_optate.nim rename to tests/math/t_pairing_bn254_nogami_optate.nim index 339b2e7..d89b750 100644 --- a/tests/backend/t_pairing_bn254_nogami_optate.nim +++ b/tests/math/t_pairing_bn254_nogami_optate.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bn, + ../../constantine/math/pairing/pairing_bn, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bn254_snarks_gt_subgroup.nim b/tests/math/t_pairing_bn254_snarks_gt_subgroup.nim similarity index 82% rename from tests/backend/t_pairing_bn254_snarks_gt_subgroup.nim rename to tests/math/t_pairing_bn254_snarks_gt_subgroup.nim index 02a64e6..84e33df 100644 --- a/tests/backend/t_pairing_bn254_snarks_gt_subgroup.nim +++ b/tests/math/t_pairing_bn254_snarks_gt_subgroup.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bn, + ../../constantine/math/pairing/pairing_bn, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bn254_snarks_optate.nim b/tests/math/t_pairing_bn254_snarks_optate.nim similarity index 84% rename from tests/backend/t_pairing_bn254_snarks_optate.nim rename to tests/math/t_pairing_bn254_snarks_optate.nim index 0c8303f..764fd62 100644 --- a/tests/backend/t_pairing_bn254_snarks_optate.nim +++ b/tests/math/t_pairing_bn254_snarks_optate.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bn, + ../../constantine/math/pairing/pairing_bn, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bw6_761_gt_subgroup.nim b/tests/math/t_pairing_bw6_761_gt_subgroup.nim similarity index 81% rename from tests/backend/t_pairing_bw6_761_gt_subgroup.nim rename to tests/math/t_pairing_bw6_761_gt_subgroup.nim index 1ea80dd..18cfdf6 100644 --- a/tests/backend/t_pairing_bw6_761_gt_subgroup.nim +++ b/tests/math/t_pairing_bw6_761_gt_subgroup.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bw6_761, + ../../constantine/math/pairing/pairing_bw6_761, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_bw6_761_optate.nim b/tests/math/t_pairing_bw6_761_optate.nim similarity index 83% rename from tests/backend/t_pairing_bw6_761_optate.nim rename to tests/math/t_pairing_bw6_761_optate.nim index 8c0d06a..435abab 100644 --- a/tests/backend/t_pairing_bw6_761_optate.nim +++ b/tests/math/t_pairing_bw6_761_optate.nim @@ -7,9 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import - ../../constantine/backend/config/common, - ../../constantine/backend/config/curves, - ../../constantine/backend/pairing/pairing_bw6_761, + ../../constantine/math/pairing/pairing_bw6_761, # Test utilities ./t_pairing_template diff --git a/tests/backend/t_pairing_cyclotomic_subgroup.nim b/tests/math/t_pairing_cyclotomic_subgroup.nim similarity index 93% rename from tests/backend/t_pairing_cyclotomic_subgroup.nim rename to tests/math/t_pairing_cyclotomic_subgroup.nim index 35d749c..fc26e42 100644 --- a/tests/backend/t_pairing_cyclotomic_subgroup.nim +++ b/tests/math/t_pairing_cyclotomic_subgroup.nim @@ -10,13 +10,13 @@ import # Standard library std/[tables, unittest, times], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/[io_bigints, io_towers], - ../../constantine/backend/pairing/cyclotomic_subgroup, - ../../constantine/backend/isogeny/frobenius, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/[io_bigints, io_extfields], + ../../constantine/math/pairing/cyclotomic_subgroup, + ../../constantine/math/isogenies/frobenius, # Test utilities ../../helpers/[prng_unsafe, static_for] diff --git a/tests/backend/t_pairing_mul_fp12_by_lines.nim b/tests/math/t_pairing_mul_fp12_by_lines.nim similarity index 97% rename from tests/backend/t_pairing_mul_fp12_by_lines.nim rename to tests/math/t_pairing_mul_fp12_by_lines.nim index c3b3900..7d2e142 100644 --- a/tests/backend/t_pairing_mul_fp12_by_lines.nim +++ b/tests/math/t_pairing_mul_fp12_by_lines.nim @@ -10,12 +10,12 @@ import # Standard library std/[tables, unittest, times], # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/io/io_towers, - ../../constantine/backend/pairing/lines_eval, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/io/io_extfields, + ../../constantine/math/pairing/lines_eval, # Test utilities ../../helpers/[prng_unsafe, static_for] diff --git a/tests/backend/t_pairing_template.nim b/tests/math/t_pairing_template.nim similarity index 89% rename from tests/backend/t_pairing_template.nim rename to tests/math/t_pairing_template.nim index 5f318ab..2ca9848 100644 --- a/tests/backend/t_pairing_template.nim +++ b/tests/math/t_pairing_template.nim @@ -10,14 +10,14 @@ import # Standard library std/unittest, times, # Internals - ../../constantine/backend/config/common, - ../../constantine/backend/[arithmetic, primitives], - ../../constantine/backend/towers, - ../../constantine/backend/config/curves, - ../../constantine/backend/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective], - ../../constantine/backend/curves/[zoo_subgroups, zoo_pairings], - ../../constantine/backend/pairing/cyclotomic_subgroup, - ../../constantine/backend/io/io_towers, + ../../constantine/platforms/abstractions, + ../../constantine/math/arithmetic, + ../../constantine/math/extension_fields, + ../../constantine/math/config/curves, + ../../constantine/math/elliptic/[ec_shortweierstrass_affine, ec_shortweierstrass_projective], + ../../constantine/math/curves/[zoo_subgroups, zoo_pairings], + ../../constantine/math/pairing/cyclotomic_subgroup, + ../../constantine/math/io/io_extfields, # Test utilities ../../helpers/prng_unsafe @@ -25,9 +25,10 @@ import export prng_unsafe, times, unittest, ec_shortweierstrass_affine, ec_shortweierstrass_projective, - arithmetic, towers, - primitives, io_towers, - cyclotomic_subgroup + arithmetic, extension_fields, + io_extfields, + cyclotomic_subgroup, + abstractions, curves type RandomGen* = enum diff --git a/tests/backend/t_primitives.nim b/tests/math/t_primitives.nim similarity index 98% rename from tests/backend/t_primitives.nim rename to tests/math/t_primitives.nim index eecfb38..e1a86a4 100644 --- a/tests/backend/t_primitives.nim +++ b/tests/math/t_primitives.nim @@ -7,8 +7,7 @@ # at your option. This file may not be copied, modified, or distributed except according to those terms. import std/[unittest, times, math], - ../../constantine/backend/config/common, - ../../constantine/backend/primitives, + ../../constantine/platforms/abstractions, ../../helpers/prng_unsafe # Random seed for reproducibility diff --git a/tests/backend/t_primitives_extended_precision.nim b/tests/math/t_primitives_extended_precision.nim similarity index 95% rename from tests/backend/t_primitives_extended_precision.nim rename to tests/math/t_primitives_extended_precision.nim index c127dce..5dc5c88 100644 --- a/tests/backend/t_primitives_extended_precision.nim +++ b/tests/math/t_primitives_extended_precision.nim @@ -9,8 +9,7 @@ import std/[unittest, times, math], - ../../constantine/backend/config/common, - ../../constantine/backend/primitives, + ../../constantine/platforms/abstractions, ../../helpers/prng_unsafe suite "Extended precision bugs": diff --git a/tests/backend/vectors/tv_BLS12_377_scalar_mul_G1.json b/tests/math/vectors/tv_BLS12_377_scalar_mul_G1.json similarity index 100% rename from tests/backend/vectors/tv_BLS12_377_scalar_mul_G1.json rename to tests/math/vectors/tv_BLS12_377_scalar_mul_G1.json diff --git a/tests/backend/vectors/tv_BLS12_377_scalar_mul_G2.json b/tests/math/vectors/tv_BLS12_377_scalar_mul_G2.json similarity index 100% rename from tests/backend/vectors/tv_BLS12_377_scalar_mul_G2.json rename to tests/math/vectors/tv_BLS12_377_scalar_mul_G2.json diff --git a/tests/backend/vectors/tv_BLS12_381_scalar_mul_G1.json b/tests/math/vectors/tv_BLS12_381_scalar_mul_G1.json similarity index 100% rename from tests/backend/vectors/tv_BLS12_381_scalar_mul_G1.json rename to tests/math/vectors/tv_BLS12_381_scalar_mul_G1.json diff --git a/tests/backend/vectors/tv_BLS12_381_scalar_mul_G2.json b/tests/math/vectors/tv_BLS12_381_scalar_mul_G2.json similarity index 100% rename from tests/backend/vectors/tv_BLS12_381_scalar_mul_G2.json rename to tests/math/vectors/tv_BLS12_381_scalar_mul_G2.json diff --git a/tests/backend/vectors/tv_BN254_Nogami_scalar_mul_G1.json b/tests/math/vectors/tv_BN254_Nogami_scalar_mul_G1.json similarity index 100% rename from tests/backend/vectors/tv_BN254_Nogami_scalar_mul_G1.json rename to tests/math/vectors/tv_BN254_Nogami_scalar_mul_G1.json diff --git a/tests/backend/vectors/tv_BN254_Nogami_scalar_mul_G2.json b/tests/math/vectors/tv_BN254_Nogami_scalar_mul_G2.json similarity index 100% rename from tests/backend/vectors/tv_BN254_Nogami_scalar_mul_G2.json rename to tests/math/vectors/tv_BN254_Nogami_scalar_mul_G2.json diff --git a/tests/backend/vectors/tv_BN254_Snarks_scalar_mul_G1.json b/tests/math/vectors/tv_BN254_Snarks_scalar_mul_G1.json similarity index 100% rename from tests/backend/vectors/tv_BN254_Snarks_scalar_mul_G1.json rename to tests/math/vectors/tv_BN254_Snarks_scalar_mul_G1.json diff --git a/tests/backend/vectors/tv_BN254_Snarks_scalar_mul_G2.json b/tests/math/vectors/tv_BN254_Snarks_scalar_mul_G2.json similarity index 100% rename from tests/backend/vectors/tv_BN254_Snarks_scalar_mul_G2.json rename to tests/math/vectors/tv_BN254_Snarks_scalar_mul_G2.json diff --git a/tests/backend/vectors/tv_BW6_761_scalar_mul_G1.json b/tests/math/vectors/tv_BW6_761_scalar_mul_G1.json similarity index 100% rename from tests/backend/vectors/tv_BW6_761_scalar_mul_G1.json rename to tests/math/vectors/tv_BW6_761_scalar_mul_G1.json diff --git a/tests/backend/vectors/tv_BW6_761_scalar_mul_G2.json b/tests/math/vectors/tv_BW6_761_scalar_mul_G2.json similarity index 100% rename from tests/backend/vectors/tv_BW6_761_scalar_mul_G2.json rename to tests/math/vectors/tv_BW6_761_scalar_mul_G2.json diff --git a/tests/backend/vectors/tv_h2c_v7_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json b/tests/math/vectors/tv_h2c_v7_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json similarity index 100% rename from tests/backend/vectors/tv_h2c_v7_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json rename to tests/math/vectors/tv_h2c_v7_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json diff --git a/tests/backend/vectors/tv_h2c_v8_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json b/tests/math/vectors/tv_h2c_v8_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json similarity index 100% rename from tests/backend/vectors/tv_h2c_v8_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json rename to tests/math/vectors/tv_h2c_v8_BLS12_381_hash_to_G2_SHA256_SSWU_RO.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/README.md b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/README.md similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/README.md rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/README.md diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x0000000000000000000000000000000000000000000000000000000000000000.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x0000000000000000000000000000000000000000000000000000000000000000.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x0000000000000000000000000000000000000000000000000000000000000000.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x0000000000000000000000000000000000000000000000000000000000000000.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x5656565656565656565656565656565656565656565656565656565656565656.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x5656565656565656565656565656565656565656565656565656565656565656.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x5656565656565656565656565656565656565656565656565656565656565656.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0x5656565656565656565656565656565656565656565656565656565656565656.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0xabababababababababababababababababababababababababababababababab.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0xabababababababababababababababababababababababababababababababab.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0xabababababababababababababababababababababababababababababababab.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_0xabababababababababababababababababababababababababababababababab.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_infinity_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_infinity_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_infinity_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_infinity_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_na_signatures.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_na_signatures.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_na_signatures.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_na_signatures.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_single_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_single_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_single_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate/aggregate_single_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_infinity_pubkey.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_infinity_pubkey.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_infinity_pubkey.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_infinity_pubkey.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_infinity_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_infinity_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_infinity_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_infinity_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_na_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_na_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_na_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_na_pubkeys_and_na_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_tampered_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_tampered_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_tampered_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_tampered_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_valid.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_valid.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_valid.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/aggregate_verify/aggregate_verify_valid.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_invalid_forged_signature_set.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_invalid_forged_signature_set.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_invalid_forged_signature_set.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_invalid_forged_signature_set.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_valid_simple_signature_set.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_valid_simple_signature_set.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_valid_simple_signature_set.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/batch_verify/batch_verify_valid_simple_signature_set.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_false_b_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_false_b_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_false_b_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_false_b_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_true_b_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_true_b_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_true_b_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_infinity_with_true_b_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_G1.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_G1.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_G1.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_G1.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_curve.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_curve.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_curve.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_not_in_curve.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_few_bytes.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_few_bytes.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_few_bytes.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_few_bytes.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_many_bytes.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_many_bytes.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_many_bytes.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_too_many_bytes.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_a_flag_true.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_a_flag_true.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_a_flag_true.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_a_flag_true.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_x_nonzero.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_x_nonzero.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_x_nonzero.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_b_flag_and_x_nonzero.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_wrong_c_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_wrong_c_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_wrong_c_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_with_wrong_c_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_equal_to_modulus.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_equal_to_modulus.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_equal_to_modulus.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_equal_to_modulus.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_greater_than_modulus.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_greater_than_modulus.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_greater_than_modulus.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_fails_x_greater_than_modulus.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_correct_point.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_correct_point.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_correct_point.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_correct_point.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_infinity_with_true_b_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_infinity_with_true_b_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_infinity_with_true_b_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G1/deserialization_succeeds_infinity_with_true_b_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_false_b_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_false_b_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_false_b_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_false_b_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_true_b_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_true_b_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_true_b_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_infinity_with_true_b_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_G2.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_G2.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_G2.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_G2.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_curve.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_curve.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_curve.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_not_in_curve.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_few_bytes.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_few_bytes.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_few_bytes.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_few_bytes.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_many_bytes.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_many_bytes.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_many_bytes.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_too_many_bytes.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_a_flag_true.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_a_flag_true.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_a_flag_true.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_a_flag_true.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_x_nonzero.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_x_nonzero.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_x_nonzero.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_b_flag_and_x_nonzero.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_wrong_c_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_wrong_c_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_wrong_c_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_with_wrong_c_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_equal_to_modulus.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_equal_to_modulus.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_equal_to_modulus.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_equal_to_modulus.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_greater_than_modulus.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_greater_than_modulus.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_greater_than_modulus.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xim_greater_than_modulus.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_equal_to_modulus.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_equal_to_modulus.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_equal_to_modulus.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_equal_to_modulus.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_greater_than_modulus.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_greater_than_modulus.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_greater_than_modulus.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_fails_xre_greater_than_modulus.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_correct_point.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_correct_point.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_correct_point.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_correct_point.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_infinity_with_true_b_flag.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_infinity_with_true_b_flag.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_infinity_with_true_b_flag.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/deserialization_G2/deserialization_succeeds_infinity_with_true_b_flag.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_4f079f946446fabf.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_4f079f946446fabf.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_4f079f946446fabf.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_4f079f946446fabf.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_5a38e6b4017fe4dd.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_5a38e6b4017fe4dd.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_5a38e6b4017fe4dd.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_5a38e6b4017fe4dd.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_a698ea45b109f303.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_a698ea45b109f303.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_a698ea45b109f303.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_extra_pubkey_a698ea45b109f303.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_infinity_pubkey.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_infinity_pubkey.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_infinity_pubkey.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_infinity_pubkey.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_infinity_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_infinity_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_infinity_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_infinity_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_na_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_na_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_na_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_na_pubkeys_and_na_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_3d7576f3c0e3570a.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_3d7576f3c0e3570a.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_3d7576f3c0e3570a.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_3d7576f3c0e3570a.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_5e745ad0c6199a6c.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_5e745ad0c6199a6c.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_5e745ad0c6199a6c.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_5e745ad0c6199a6c.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_652ce62f09290811.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_652ce62f09290811.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_652ce62f09290811.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_tampered_signature_652ce62f09290811.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_3d7576f3c0e3570a.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_3d7576f3c0e3570a.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_3d7576f3c0e3570a.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_3d7576f3c0e3570a.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_5e745ad0c6199a6c.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_5e745ad0c6199a6c.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_5e745ad0c6199a6c.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_5e745ad0c6199a6c.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_652ce62f09290811.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_652ce62f09290811.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_652ce62f09290811.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/fast_aggregate_verify/fast_aggregate_verify_valid_652ce62f09290811.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__2782afaa8406d038.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__2782afaa8406d038.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__2782afaa8406d038.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__2782afaa8406d038.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__7590bd067999bbfb.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__7590bd067999bbfb.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__7590bd067999bbfb.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__7590bd067999bbfb.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__a54942c8e365f378.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__a54942c8e365f378.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__a54942c8e365f378.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__a54942c8e365f378.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__c938b486cf69e8f7.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__c938b486cf69e8f7.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__c938b486cf69e8f7.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/hash_to_G2/hash_to_G2__c938b486cf69e8f7.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_11b8c7cad5238946.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_11b8c7cad5238946.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_11b8c7cad5238946.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_11b8c7cad5238946.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_142f678a8d05fcd1.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_142f678a8d05fcd1.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_142f678a8d05fcd1.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_142f678a8d05fcd1.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_37286e1a6d1f6eb3.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_37286e1a6d1f6eb3.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_37286e1a6d1f6eb3.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_37286e1a6d1f6eb3.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_7055381f640f2c1d.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_7055381f640f2c1d.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_7055381f640f2c1d.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_7055381f640f2c1d.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_84d45c9c7cca6b92.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_84d45c9c7cca6b92.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_84d45c9c7cca6b92.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_84d45c9c7cca6b92.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_8cd3d4d0d9a5b265.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_8cd3d4d0d9a5b265.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_8cd3d4d0d9a5b265.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_8cd3d4d0d9a5b265.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_c82df61aa3ee60fb.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_c82df61aa3ee60fb.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_c82df61aa3ee60fb.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_c82df61aa3ee60fb.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_d0e28d7e76eb6e9c.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_d0e28d7e76eb6e9c.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_d0e28d7e76eb6e9c.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_d0e28d7e76eb6e9c.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_f2ae1097e7d0e18b.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_f2ae1097e7d0e18b.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_f2ae1097e7d0e18b.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_f2ae1097e7d0e18b.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_zero_privkey.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_zero_privkey.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_zero_privkey.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/sign/sign_case_zero_privkey.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_infinity_pubkey_and_infinity_signature.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_infinity_pubkey_and_infinity_signature.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_infinity_pubkey_and_infinity_signature.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_infinity_pubkey_and_infinity_signature.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_195246ee3bd3b6ec.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_195246ee3bd3b6ec.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_195246ee3bd3b6ec.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_195246ee3bd3b6ec.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2ea479adf8c40300.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2ea479adf8c40300.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2ea479adf8c40300.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2ea479adf8c40300.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2f09d443ab8a3ac2.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2f09d443ab8a3ac2.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2f09d443ab8a3ac2.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_2f09d443ab8a3ac2.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_3208262581c8fc09.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_3208262581c8fc09.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_3208262581c8fc09.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_3208262581c8fc09.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6b3b17f6962a490c.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6b3b17f6962a490c.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6b3b17f6962a490c.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6b3b17f6962a490c.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6eeb7c52dfd9baf0.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6eeb7c52dfd9baf0.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6eeb7c52dfd9baf0.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_6eeb7c52dfd9baf0.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_8761a0b7e920c323.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_8761a0b7e920c323.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_8761a0b7e920c323.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_8761a0b7e920c323.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_d34885d766d5f705.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_d34885d766d5f705.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_d34885d766d5f705.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_d34885d766d5f705.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_e8a50c445c855360.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_e8a50c445c855360.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_e8a50c445c855360.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_tampered_signature_case_e8a50c445c855360.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_195246ee3bd3b6ec.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_195246ee3bd3b6ec.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_195246ee3bd3b6ec.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_195246ee3bd3b6ec.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2ea479adf8c40300.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2ea479adf8c40300.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2ea479adf8c40300.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2ea479adf8c40300.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2f09d443ab8a3ac2.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2f09d443ab8a3ac2.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2f09d443ab8a3ac2.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_2f09d443ab8a3ac2.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_3208262581c8fc09.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_3208262581c8fc09.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_3208262581c8fc09.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_3208262581c8fc09.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6b3b17f6962a490c.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6b3b17f6962a490c.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6b3b17f6962a490c.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6b3b17f6962a490c.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6eeb7c52dfd9baf0.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6eeb7c52dfd9baf0.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6eeb7c52dfd9baf0.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_6eeb7c52dfd9baf0.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_8761a0b7e920c323.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_8761a0b7e920c323.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_8761a0b7e920c323.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_8761a0b7e920c323.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_d34885d766d5f705.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_d34885d766d5f705.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_d34885d766d5f705.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_d34885d766d5f705.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_e8a50c445c855360.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_e8a50c445c855360.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_e8a50c445c855360.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_valid_case_e8a50c445c855360.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_195246ee3bd3b6ec.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_195246ee3bd3b6ec.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_195246ee3bd3b6ec.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_195246ee3bd3b6ec.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2ea479adf8c40300.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2ea479adf8c40300.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2ea479adf8c40300.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2ea479adf8c40300.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2f09d443ab8a3ac2.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2f09d443ab8a3ac2.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2f09d443ab8a3ac2.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_2f09d443ab8a3ac2.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_3208262581c8fc09.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_3208262581c8fc09.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_3208262581c8fc09.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_3208262581c8fc09.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6b3b17f6962a490c.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6b3b17f6962a490c.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6b3b17f6962a490c.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6b3b17f6962a490c.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6eeb7c52dfd9baf0.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6eeb7c52dfd9baf0.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6eeb7c52dfd9baf0.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_6eeb7c52dfd9baf0.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_8761a0b7e920c323.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_8761a0b7e920c323.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_8761a0b7e920c323.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_8761a0b7e920c323.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_d34885d766d5f705.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_d34885d766d5f705.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_d34885d766d5f705.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_d34885d766d5f705.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_e8a50c445c855360.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_e8a50c445c855360.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_e8a50c445c855360.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verify_wrong_pubkey_case_e8a50c445c855360.json diff --git a/tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verifycase_one_privkey_47117849458281be.json b/tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verifycase_one_privkey_47117849458281be.json similarity index 100% rename from tests/blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verifycase_one_privkey_47117849458281be.json rename to tests/protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1/verify/verifycase_one_privkey_47117849458281be.json diff --git a/tests/t_blssig_pop_on_bls12381_g2.nim b/tests/t_blssig_pop_on_bls12381_g2.nim index 4bd9d8f..f3ce52e 100644 --- a/tests/t_blssig_pop_on_bls12381_g2.nim +++ b/tests/t_blssig_pop_on_bls12381_g2.nim @@ -10,7 +10,7 @@ import std/[json, os, unittest, strutils], pkg/[jsony, stew/byteutils], ../constantine/blssig_pop_on_bls12381_g2, - ../constantine/backend/io/io_bigints + ../constantine/math/io/io_bigints type PubkeyField = object @@ -51,7 +51,7 @@ const SkippedTests = [ "deserialization_fails_too_many_bytes.json" ] -const TestDir = currentSourcePath.rsplit(DirSep, 1)[0] / "blssig_pop_on_bls12381_g2_test_vectors_v0.1.1" +const TestDir = currentSourcePath.rsplit(DirSep, 1)[0] / "protocol_blssig_pop_on_bls12381_g2_test_vectors_v0.1.1" iterator walkTests*(category: string, skipped: var int): (string, string) = let testDir = TestDir/category diff --git a/tests/t_ethereum_evm_precompiles.nim b/tests/t_ethereum_evm_precompiles.nim index bd246d3..76b679e 100644 --- a/tests/t_ethereum_evm_precompiles.nim +++ b/tests/t_ethereum_evm_precompiles.nim @@ -10,11 +10,11 @@ import # Standard library std/[times, os, strutils, macros], # Status - stew/byteutils, + pkg/stew/byteutils, # 3rd party - jsony, + pkg/jsony, # Internals - ../constantine/backend/io/io_bigints, + ../constantine/math/io/io_bigints, ../constantine/ethereum_evm_precompiles type diff --git a/tests/t_hash_sha256_vs_openssl.nim b/tests/t_hash_sha256_vs_openssl.nim index ade7d35..def82c3 100644 --- a/tests/t_hash_sha256_vs_openssl.nim +++ b/tests/t_hash_sha256_vs_openssl.nim @@ -1,6 +1,6 @@ import # Internals - ../constantine/backend/hashes, + ../constantine/hashes, # Helpers ../helpers/prng_unsafe, # Third-party