mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-06-28 13:07:12 +02:00
.github
bin
module
vendor
CPR
CivetWeb
ConcurrentQueue
Fmt
MDBC
client
cmake
include
libmariadb
man
mariadb_config
plugins
auth
ref10
api.h
base.h
base2.h
common.h
crypto_hash_sha512.h
crypto_int32.h
crypto_int64.h
crypto_sign.h
crypto_uint32.h
crypto_uint64.h
crypto_verify.h
crypto_verify_32.h
d.h
d2.h
fe.h
fe_0.c
fe_1.c
fe_add.c
fe_cmov.c
fe_copy.c
fe_frombytes.c
fe_invert.c
fe_isnegative.c
fe_isnonzero.c
fe_mul.c
fe_neg.c
fe_pow22523.c
fe_sq.c
fe_sq2.c
fe_sub.c
fe_tobytes.c
ge.h
ge_add.c
ge_add.h
ge_double_scalarmult.c
ge_frombytes.c
ge_madd.c
ge_madd.h
ge_msub.c
ge_msub.h
ge_p1p1_to_p2.c
ge_p1p1_to_p3.c
ge_p2_0.c
ge_p2_dbl.c
ge_p2_dbl.h
ge_p3_0.c
ge_p3_dbl.c
ge_p3_to_cached.c
ge_p3_to_p2.c
ge_p3_tobytes.c
ge_precomp_0.c
ge_scalarmult_base.c
ge_sub.c
ge_sub.h
ge_tobytes.c
keypair.c
open.c
pow22523.h
pow225521.h
sc.h
sc_muladd.c
sc_reduce.c
sign.c
sqrtm1.h
verify.c
CMakeLists.txt
auth_gssapi_client.c
caching_sha2_pw.c
common.h
dialog.c
ed25519.c
gssapi_client.c
gssapi_errmsg.c
gssapi_errmsg.h
mariadb_cleartext.c
my_auth.c
old_password.c
server_plugin.h
sha256_pw.c
sspi_client.c
sspi_common.h
sspi_errmsg.c
connection
io
pvio
trace
CMakeLists.txt
plugin.def
scripts
unittest
win
win-iconv
CMakeLists.txt
COPYING.LIB
README
appveyor-download.bat
appveyor.yml
travis.sh
MaxmindDB
POCO
PUGIXML
RPMalloc
SAJSON
SimpleIni
Squirrel
TinyDir
UTF8
ZMQ
xxHash
CMakeLists.txt
.gitignore
.gitmodules
CMakeLists.txt
LICENSE
README.md
58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
#include "fe.h"
|
|
|
|
/*
|
|
h = f - g
|
|
Can overlap h with f or g.
|
|
|
|
Preconditions:
|
|
|f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
|
|
|g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
|
|
|
|
Postconditions:
|
|
|h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
|
|
*/
|
|
|
|
void fe_sub(fe h,const fe f,const fe g)
|
|
{
|
|
crypto_int32 f0 = f[0];
|
|
crypto_int32 f1 = f[1];
|
|
crypto_int32 f2 = f[2];
|
|
crypto_int32 f3 = f[3];
|
|
crypto_int32 f4 = f[4];
|
|
crypto_int32 f5 = f[5];
|
|
crypto_int32 f6 = f[6];
|
|
crypto_int32 f7 = f[7];
|
|
crypto_int32 f8 = f[8];
|
|
crypto_int32 f9 = f[9];
|
|
crypto_int32 g0 = g[0];
|
|
crypto_int32 g1 = g[1];
|
|
crypto_int32 g2 = g[2];
|
|
crypto_int32 g3 = g[3];
|
|
crypto_int32 g4 = g[4];
|
|
crypto_int32 g5 = g[5];
|
|
crypto_int32 g6 = g[6];
|
|
crypto_int32 g7 = g[7];
|
|
crypto_int32 g8 = g[8];
|
|
crypto_int32 g9 = g[9];
|
|
crypto_int32 h0 = f0 - g0;
|
|
crypto_int32 h1 = f1 - g1;
|
|
crypto_int32 h2 = f2 - g2;
|
|
crypto_int32 h3 = f3 - g3;
|
|
crypto_int32 h4 = f4 - g4;
|
|
crypto_int32 h5 = f5 - g5;
|
|
crypto_int32 h6 = f6 - g6;
|
|
crypto_int32 h7 = f7 - g7;
|
|
crypto_int32 h8 = f8 - g8;
|
|
crypto_int32 h9 = f9 - g9;
|
|
h[0] = h0;
|
|
h[1] = h1;
|
|
h[2] = h2;
|
|
h[3] = h3;
|
|
h[4] = h4;
|
|
h[5] = h5;
|
|
h[6] = h6;
|
|
h[7] = h7;
|
|
h[8] = h8;
|
|
h[9] = h9;
|
|
}
|