diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 67712b9..826a7cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: with: path: | depends/gmp - depends/gmp-6.2.1.tar.xz + depends/gmp-6.3.0.tar.xz key: ${{ runner.os }}-${{ runner.arch }}-gmp-${{ hashFiles('build_gmp.sh') }} - name: Build gmp for Android arm64 @@ -196,7 +196,7 @@ jobs: with: path: | depends/gmp - depends/gmp-6.2.1.tar.xz + depends/gmp-6.3.0.tar.xz key: ${{ runner.os }}-${{ runner.arch }}-gmp-${{ hashFiles('build_gmp.sh') }} - name: Build gmp for Linux arm64 @@ -253,7 +253,7 @@ jobs: with: path: | depends/gmp - depends/gmp-6.2.1.tar.xz + depends/gmp-6.3.0.tar.xz key: ${{ runner.os }}-${{ runner.arch }}-gmp-${{ hashFiles('build_gmp.sh') }} - name: build @@ -352,7 +352,7 @@ jobs: with: path: | depends/gmp - depends/gmp-6.2.1.tar.xz + depends/gmp-6.3.0.tar.xz key: ${{ runner.os }}-${{ runner.arch }}-gmp-${{ hashFiles('build_gmp.sh') }} - name: install dependencies diff --git a/build/fq_generic.cpp b/build/fq_generic.cpp index f771e20..5a465ea 100755 --- a/build/fq_generic.cpp +++ b/build/fq_generic.cpp @@ -7,7 +7,17 @@ FqElement Fq_R2 = {0, 0x80000000, {0xf32cfc5b538afa89,0xb5e71911d44501fb,0x47ab1 FqElement Fq_R3 = {0, 0x80000000, {0xb1cd6dafda1530df,0x62f210e6a7283db6,0xef7f0b0c0ada0afb,0x20fd6e902d592544}}; static FqRawElement half = {0x9e10460b6c3e7ea3,0xcbc0b548b438e546,0xdc2822db40c0ac2e,0x183227397098d014}; +static FqRawElement Fq_rawR2 = {0xf32cfc5b538afa89,0xb5e71911d44501fb,0x47ab1eff0a417ff6,0x06d89f71cab8351f}; +void Fq_rawMSquare(FqRawElement pRawResult, const FqRawElement pRawA) +{ + Fq_rawMMul(pRawResult, pRawA, pRawA); +} + +void Fq_rawToMontgomery(FqRawElement pRawResult, const FqRawElement &pRawA) +{ + Fq_rawMMul(pRawResult, pRawA, Fq_rawR2); +} void Fq_copy(PFqElement r, const PFqElement a) { diff --git a/build/fq_raw_generic.cpp b/build/fq_raw_generic.cpp index 3841ffe..d7e84bf 100644 --- a/build/fq_raw_generic.cpp +++ b/build/fq_raw_generic.cpp @@ -3,7 +3,6 @@ #include static uint64_t Fq_rawq[] = {0x3c208c16d87cfd47,0x97816a916871ca8d,0xb85045b68181585d,0x30644e72e131a029, 0}; -static FqRawElement Fq_rawR2 = {0xf32cfc5b538afa89,0xb5e71911d44501fb,0x47ab1eff0a417ff6,0x06d89f71cab8351f}; static uint64_t Fq_np = {0x87d20782e4866389}; static uint64_t lboMask = 0x3fffffffffffffff; @@ -147,11 +146,6 @@ void Fq_rawMMul(FqRawElement pRawResult, const FqRawElement pRawA, const FqRawEl } } -void Fq_rawMSquare(FqRawElement pRawResult, const FqRawElement pRawA) -{ - Fq_rawMMul(pRawResult, pRawA, pRawA); -} - void Fq_rawMMul1(FqRawElement pRawResult, const FqRawElement pRawA, uint64_t pRawB) { const mp_size_t N = Fq_N64+1; @@ -189,11 +183,6 @@ void Fq_rawMMul1(FqRawElement pRawResult, const FqRawElement pRawA, uint64_t pRa } } -void Fq_rawToMontgomery(FqRawElement pRawResult, const FqRawElement &pRawA) -{ - Fq_rawMMul(pRawResult, pRawA, Fq_rawR2); -} - void Fq_rawFromMontgomery(FqRawElement pRawResult, const FqRawElement &pRawA) { const mp_size_t N = Fq_N64+1; diff --git a/build/fr_generic.cpp b/build/fr_generic.cpp index 6c0d874..78c3c00 100755 --- a/build/fr_generic.cpp +++ b/build/fr_generic.cpp @@ -7,7 +7,17 @@ FrElement Fr_R2 = {0, 0x80000000, {0x1bb8e645ae216da7,0x53fe3ab1e35c59e3,0x8c498 FrElement Fr_R3 = {0, 0x80000000, {0x5e94d8e1b4bf0040,0x2a489cbe1cfbb6b8,0x893cc664a19fcfed,0x0cf8594b7fcc657c}}; static FrRawElement half = {0xa1f0fac9f8000000,0x9419f4243cdcb848,0xdc2822db40c0ac2e,0x183227397098d014}; +static FrRawElement Fr_rawR2 = {0x1bb8e645ae216da7,0x53fe3ab1e35c59e3,0x8c49833d53bb8085,0x0216d0b17f4e44a5}; +void Fr_rawMSquare(FrRawElement pRawResult, const FrRawElement pRawA) +{ + Fr_rawMMul(pRawResult, pRawA, pRawA); +} + +void Fr_rawToMontgomery(FrRawElement pRawResult, const FrRawElement &pRawA) +{ + Fr_rawMMul(pRawResult, pRawA, Fr_rawR2); +} void Fr_copy(PFrElement r, const PFrElement a) { diff --git a/build/fr_raw_generic.cpp b/build/fr_raw_generic.cpp index 8378a4e..7d935b0 100644 --- a/build/fr_raw_generic.cpp +++ b/build/fr_raw_generic.cpp @@ -3,7 +3,6 @@ #include static uint64_t Fr_rawq[] = {0x43e1f593f0000001,0x2833e84879b97091,0xb85045b68181585d,0x30644e72e131a029, 0}; -static FrRawElement Fr_rawR2 = {0x1bb8e645ae216da7,0x53fe3ab1e35c59e3,0x8c49833d53bb8085,0x0216d0b17f4e44a5}; static uint64_t Fr_np = {0xc2e1f593efffffff}; static uint64_t lboMask = 0x3fffffffffffffff; @@ -147,11 +146,6 @@ void Fr_rawMMul(FrRawElement pRawResult, const FrRawElement pRawA, const FrRawEl } } -void Fr_rawMSquare(FrRawElement pRawResult, const FrRawElement pRawA) -{ - Fr_rawMMul(pRawResult, pRawA, pRawA); -} - void Fr_rawMMul1(FrRawElement pRawResult, const FrRawElement pRawA, uint64_t pRawB) { const mp_size_t N = Fr_N64+1; @@ -189,11 +183,6 @@ void Fr_rawMMul1(FrRawElement pRawResult, const FrRawElement pRawA, uint64_t pRa } } -void Fr_rawToMontgomery(FrRawElement pRawResult, const FrRawElement &pRawA) -{ - Fr_rawMMul(pRawResult, pRawA, Fr_rawR2); -} - void Fr_rawFromMontgomery(FrRawElement pRawResult, const FrRawElement &pRawA) { const mp_size_t N = Fr_N64+1; diff --git a/depends/ffiasm b/depends/ffiasm index fe3772e..b906874 160000 --- a/depends/ffiasm +++ b/depends/ffiasm @@ -1 +1 @@ -Subproject commit fe3772e8e62f2235d308d445d09379a0fca8f5a9 +Subproject commit b90687482cb7a90d32e57362c5c122686f613c24 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index caeed4a..720411c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -40,7 +40,7 @@ set(FR_SOURCES if(USE_ASM) if(ARCH MATCHES "arm64") - set(FR_SOURCES ${FR_SOURCES} ../build/fr_raw_arm64.s ../build/fr_raw_generic.cpp ../build/fr_generic.cpp) + set(FR_SOURCES ${FR_SOURCES} ../build/fr_raw_arm64.s ../build/fr_generic.cpp) elseif(ARCH MATCHES "x86_64") set(FR_SOURCES ${FR_SOURCES} ../build/fr_asm.o) endif() @@ -60,7 +60,7 @@ set(FQ_SOURCES if(USE_ASM) if(ARCH MATCHES "arm64") - set(FQ_SOURCES ${FQ_SOURCES} ../build/fq_raw_arm64.s ../build/fq_raw_generic.cpp ../build/fq_generic.cpp) + set(FQ_SOURCES ${FQ_SOURCES} ../build/fq_raw_arm64.s ../build/fq_generic.cpp) elseif(ARCH MATCHES "x86_64") set(FQ_SOURCES ${FQ_SOURCES} ../build/fq_asm.o) endif()