rbnacl-libsodium 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rbnacl/libsodium/version.rb +1 -1
- data/vendor/libsodium/ChangeLog +7 -0
- data/vendor/libsodium/autom4te.cache/output.1 +11 -11
- data/vendor/libsodium/autom4te.cache/output.5 +11 -11
- data/vendor/libsodium/autom4te.cache/requests +919 -919
- data/vendor/libsodium/autom4te.cache/traces.1 +1 -1
- data/vendor/libsodium/builds/msvc/version.h +1 -1
- data/vendor/libsodium/configure +11 -11
- data/vendor/libsodium/configure.ac +2 -2
- data/vendor/libsodium/dist-build/emscripten.sh +3 -3
- data/vendor/libsodium/msvc-scripts/process.bat +1 -1
- data/vendor/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c +2 -2
- data/vendor/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2.h +12 -3
- data/vendor/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_cswap_curve25519_ref10.c +1 -1
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_cmov.c +1 -1
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_frombytes.c +10 -10
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_mul.c +12 -12
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_sq.c +12 -12
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_sq2.c +12 -12
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sc_muladd.c +70 -70
- data/vendor/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sc_reduce.c +47 -47
- data/vendor/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h +12 -2
- data/vendor/libsodium/src/libsodium/include/sodium/export.h +5 -1
- data/vendor/libsodium/src/libsodium/randombytes/randombytes.c +3 -3
- data/vendor/libsodium/test/default/generichash.c +4 -4
- metadata +2 -2
@@ -7,7 +7,7 @@ m4trace:aclocal.m4:1214: -1- m4_include([m4/ltoptions.m4])
|
|
7
7
|
m4trace:aclocal.m4:1215: -1- m4_include([m4/ltsugar.m4])
|
8
8
|
m4trace:aclocal.m4:1216: -1- m4_include([m4/ltversion.m4])
|
9
9
|
m4trace:aclocal.m4:1217: -1- m4_include([m4/lt~obsolete.m4])
|
10
|
-
m4trace:configure.ac:5: -1- AC_INIT([libsodium], [1.0.
|
10
|
+
m4trace:configure.ac:5: -1- AC_INIT([libsodium], [1.0.5], [https://github.com/jedisct1/libsodium/issues], [libsodium], [https://github.com/jedisct1/libsodium])
|
11
11
|
m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
12
12
|
m4trace:configure.ac:5: -1- m4_pattern_forbid([_AC_])
|
13
13
|
m4trace:configure.ac:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
data/vendor/libsodium/configure
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#! /bin/sh
|
2
2
|
# Guess values for system-dependent variables and create Makefiles.
|
3
|
-
# Generated by GNU Autoconf 2.69 for libsodium 1.0.
|
3
|
+
# Generated by GNU Autoconf 2.69 for libsodium 1.0.5.
|
4
4
|
#
|
5
5
|
# Report bugs to <https://github.com/jedisct1/libsodium/issues>.
|
6
6
|
#
|
@@ -590,8 +590,8 @@ MAKEFLAGS=
|
|
590
590
|
# Identity of this package.
|
591
591
|
PACKAGE_NAME='libsodium'
|
592
592
|
PACKAGE_TARNAME='libsodium'
|
593
|
-
PACKAGE_VERSION='1.0.
|
594
|
-
PACKAGE_STRING='libsodium 1.0.
|
593
|
+
PACKAGE_VERSION='1.0.5'
|
594
|
+
PACKAGE_STRING='libsodium 1.0.5'
|
595
595
|
PACKAGE_BUGREPORT='https://github.com/jedisct1/libsodium/issues'
|
596
596
|
PACKAGE_URL='https://github.com/jedisct1/libsodium'
|
597
597
|
|
@@ -1368,7 +1368,7 @@ if test "$ac_init_help" = "long"; then
|
|
1368
1368
|
# Omit some internal or obsolete options to make the list less imposing.
|
1369
1369
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
1370
1370
|
cat <<_ACEOF
|
1371
|
-
\`configure' configures libsodium 1.0.
|
1371
|
+
\`configure' configures libsodium 1.0.5 to adapt to many kinds of systems.
|
1372
1372
|
|
1373
1373
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
1374
1374
|
|
@@ -1438,7 +1438,7 @@ fi
|
|
1438
1438
|
|
1439
1439
|
if test -n "$ac_init_help"; then
|
1440
1440
|
case $ac_init_help in
|
1441
|
-
short | recursive ) echo "Configuration of libsodium 1.0.
|
1441
|
+
short | recursive ) echo "Configuration of libsodium 1.0.5:";;
|
1442
1442
|
esac
|
1443
1443
|
cat <<\_ACEOF
|
1444
1444
|
|
@@ -1571,7 +1571,7 @@ fi
|
|
1571
1571
|
test -n "$ac_init_help" && exit $ac_status
|
1572
1572
|
if $ac_init_version; then
|
1573
1573
|
cat <<\_ACEOF
|
1574
|
-
libsodium configure 1.0.
|
1574
|
+
libsodium configure 1.0.5
|
1575
1575
|
generated by GNU Autoconf 2.69
|
1576
1576
|
|
1577
1577
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
@@ -1940,7 +1940,7 @@ cat >config.log <<_ACEOF
|
|
1940
1940
|
This file contains any messages produced by compilers while
|
1941
1941
|
running configure, to aid debugging if configure makes a mistake.
|
1942
1942
|
|
1943
|
-
It was created by libsodium $as_me 1.0.
|
1943
|
+
It was created by libsodium $as_me 1.0.5, which was
|
1944
1944
|
generated by GNU Autoconf 2.69. Invocation command line was
|
1945
1945
|
|
1946
1946
|
$ $0 $@
|
@@ -2876,7 +2876,7 @@ fi
|
|
2876
2876
|
|
2877
2877
|
# Define the identity of the package.
|
2878
2878
|
PACKAGE='libsodium'
|
2879
|
-
VERSION='1.0.
|
2879
|
+
VERSION='1.0.5'
|
2880
2880
|
|
2881
2881
|
|
2882
2882
|
cat >>confdefs.h <<_ACEOF
|
@@ -15596,7 +15596,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
15596
15596
|
# error mode(TI) is a gcc extension
|
15597
15597
|
#endif
|
15598
15598
|
#if defined(__clang__) && !defined(__x86_64__)
|
15599
|
-
# error clang
|
15599
|
+
# error clang does not properly compile smult_curve25519_donna_c64.c
|
15600
15600
|
#endif
|
15601
15601
|
#ifndef NATIVE_LITTLE_ENDIAN
|
15602
15602
|
# error donna_c64 currently requires a little endian CPU
|
@@ -16769,7 +16769,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|
16769
16769
|
# report actual input values of CONFIG_FILES etc. instead of their
|
16770
16770
|
# values after options handling.
|
16771
16771
|
ac_log="
|
16772
|
-
This file was extended by libsodium $as_me 1.0.
|
16772
|
+
This file was extended by libsodium $as_me 1.0.5, which was
|
16773
16773
|
generated by GNU Autoconf 2.69. Invocation command line was
|
16774
16774
|
|
16775
16775
|
CONFIG_FILES = $CONFIG_FILES
|
@@ -16827,7 +16827,7 @@ _ACEOF
|
|
16827
16827
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
16828
16828
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
16829
16829
|
ac_cs_version="\\
|
16830
|
-
libsodium config.status 1.0.
|
16830
|
+
libsodium config.status 1.0.5
|
16831
16831
|
configured by $0, generated by GNU Autoconf 2.69,
|
16832
16832
|
with options \\"\$ac_cs_config\\"
|
16833
16833
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
AC_PREREQ([2.65])
|
2
|
-
AC_INIT([libsodium],[1.0.
|
2
|
+
AC_INIT([libsodium],[1.0.5],
|
3
3
|
[https://github.com/jedisct1/libsodium/issues],
|
4
4
|
[libsodium],
|
5
5
|
[https://github.com/jedisct1/libsodium])
|
@@ -414,7 +414,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
414
414
|
# error mode(TI) is a gcc extension
|
415
415
|
#endif
|
416
416
|
#if defined(__clang__) && !defined(__x86_64__)
|
417
|
-
# error clang
|
417
|
+
# error clang does not properly compile smult_curve25519_donna_c64.c
|
418
418
|
#endif
|
419
419
|
#ifndef NATIVE_LITTLE_ENDIAN
|
420
420
|
# error donna_c64 currently requires a little endian CPU
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
export MAKE_FLAGS='-j4'
|
4
4
|
export PREFIX="$(pwd)/libsodium-js"
|
5
|
-
export EXPORTED_FUNCTIONS='["_crypto_auth","_crypto_auth_bytes","_crypto_auth_keybytes","_crypto_auth_verify","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_generichash","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_onetimeauth","_crypto_onetimeauth_bytes","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_statebytes","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive","_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive","_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_strprefix","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_scalarbytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_verify_detached","_randombytes_buf","_randombytes_close","_randombytes_random","_randombytes_set_implementation","_randombytes_stir","_randombytes_uniform","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_version_major","_sodium_library_version_minor","
|
5
|
+
export EXPORTED_FUNCTIONS='["_crypto_auth","_crypto_auth_bytes","_crypto_auth_keybytes","_crypto_auth_verify","_crypto_box_beforenm","_crypto_box_beforenmbytes","_crypto_box_detached","_crypto_box_detached_afternm","_crypto_box_easy","_crypto_box_easy_afternm","_crypto_box_keypair","_crypto_box_macbytes","_crypto_box_noncebytes","_crypto_box_open_detached","_crypto_box_open_detached_afternm","_crypto_box_open_easy","_crypto_box_open_easy_afternm","_crypto_box_publickeybytes","_crypto_box_seal","_crypto_box_seal_open","_crypto_box_sealbytes","_crypto_box_secretkeybytes","_crypto_box_seed_keypair","_crypto_box_seedbytes","_crypto_generichash","_crypto_generichash_bytes","_crypto_generichash_bytes_max","_crypto_generichash_bytes_min","_crypto_generichash_final","_crypto_generichash_init","_crypto_generichash_keybytes","_crypto_generichash_keybytes_max","_crypto_generichash_keybytes_min","_crypto_generichash_statebytes","_crypto_generichash_update","_crypto_hash","_crypto_hash_bytes","_crypto_onetimeauth","_crypto_onetimeauth_bytes","_crypto_onetimeauth_final","_crypto_onetimeauth_init","_crypto_onetimeauth_keybytes","_crypto_onetimeauth_statebytes","_crypto_onetimeauth_update","_crypto_onetimeauth_verify","_crypto_pwhash_scryptsalsa208sha256","_crypto_pwhash_scryptsalsa208sha256_ll","_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive","_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive","_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive","_crypto_pwhash_scryptsalsa208sha256_saltbytes","_crypto_pwhash_scryptsalsa208sha256_str","_crypto_pwhash_scryptsalsa208sha256_str_verify","_crypto_pwhash_scryptsalsa208sha256_strbytes","_crypto_pwhash_scryptsalsa208sha256_strprefix","_crypto_scalarmult","_crypto_scalarmult_base","_crypto_scalarmult_bytes","_crypto_scalarmult_scalarbytes","_crypto_secretbox_detached","_crypto_secretbox_easy","_crypto_secretbox_keybytes","_crypto_secretbox_macbytes","_crypto_secretbox_noncebytes","_crypto_secretbox_open_detached","_crypto_secretbox_open_easy","_crypto_shorthash","_crypto_shorthash_bytes","_crypto_shorthash_keybytes","_crypto_sign","_crypto_sign_bytes","_crypto_sign_detached","_crypto_sign_ed25519_pk_to_curve25519","_crypto_sign_ed25519_sk_to_curve25519","_crypto_sign_keypair","_crypto_sign_open","_crypto_sign_publickeybytes","_crypto_sign_secretkeybytes","_crypto_sign_seed_keypair","_crypto_sign_seedbytes","_crypto_sign_verify_detached","_randombytes_buf","_randombytes_close","_randombytes_random","_randombytes_set_implementation","_randombytes_stir","_randombytes_uniform","_sodium_bin2hex","_sodium_hex2bin","_sodium_init","_sodium_library_version_major","_sodium_library_version_minor","_sodium_memzero","_sodium_version_string"]'
|
6
6
|
export TOTAL_MEMORY=33554432
|
7
7
|
export JS_EXPORTS_FLAGS="-s EXPORTED_FUNCTIONS=${EXPORTED_FUNCTIONS}"
|
8
8
|
export LDFLAGS="-s TOTAL_MEMORY=${TOTAL_MEMORY} -s RESERVED_FUNCTION_POINTERS=8 -s NO_BROWSER=1 -s NO_DYNAMIC_EXECUTION=1 -s RUNNING_JS_OPTS=1"
|
@@ -17,7 +17,7 @@ emcc -O3 --llvm-lto 1 --memory-init-file 0 $LDFLAGS $JS_EXPORTS_FLAGS \
|
|
17
17
|
"${PREFIX}/lib/libsodium.a" -o "${PREFIX}/lib/libsodium.js" || exit 1
|
18
18
|
|
19
19
|
if test "x$NODE" = x; then
|
20
|
-
for candidate in
|
20
|
+
for candidate in node nodejs; do
|
21
21
|
case $($candidate --version 2>&1) in #(
|
22
22
|
v*)
|
23
23
|
NODE=$candidate
|
@@ -27,7 +27,7 @@ if test "x$NODE" = x; then
|
|
27
27
|
fi
|
28
28
|
|
29
29
|
if test "x$NODE" = x; then
|
30
|
-
echo '
|
30
|
+
echo 'node.js not found - test suite skipped.' >&2
|
31
31
|
exit 1
|
32
32
|
fi
|
33
33
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.
|
1
|
+
cscript msvc-scripts/rep.vbs //Nologo s/@VERSION@/1.0.5/ < src\libsodium\include\sodium\version.h.in > tmp
|
2
2
|
cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MAJOR@/7/ < tmp > tmp2
|
3
3
|
cscript msvc-scripts/rep.vbs //Nologo s/@SODIUM_LIBRARY_VERSION_MINOR@/6/ < tmp2 > src\libsodium\include\sodium\version.h
|
4
4
|
del tmp tmp2
|
@@ -507,7 +507,6 @@ crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen
|
|
507
507
|
const unsigned char *npub,
|
508
508
|
const crypto_aead_aes256gcm_state *ctx_)
|
509
509
|
{
|
510
|
-
unsigned char H[16];
|
511
510
|
const __m128i rev = _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
|
512
511
|
const context *ctx = (const context *) ctx_;
|
513
512
|
const __m128i *rkeys = ctx->rkeys;
|
@@ -515,6 +514,7 @@ crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen
|
|
515
514
|
unsigned long long i, j;
|
516
515
|
unsigned long long adlen_rnd64 = adlen & ~63ULL;
|
517
516
|
unsigned long long mlen_rnd128 = mlen & ~127ULL;
|
517
|
+
CRYPTO_ALIGN(16) unsigned char H[16];
|
518
518
|
CRYPTO_ALIGN(16) unsigned char n2[16];
|
519
519
|
CRYPTO_ALIGN(16) unsigned char T[16];
|
520
520
|
CRYPTO_ALIGN(16) unsigned char accum[16];
|
@@ -623,7 +623,6 @@ crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen
|
|
623
623
|
const unsigned char *npub,
|
624
624
|
const crypto_aead_aes256gcm_state *ctx_)
|
625
625
|
{
|
626
|
-
unsigned char H[16];
|
627
626
|
const __m128i rev = _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
|
628
627
|
const context *ctx = (const context *) ctx_;
|
629
628
|
const __m128i *rkeys = ctx->rkeys;
|
@@ -632,6 +631,7 @@ crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen
|
|
632
631
|
unsigned long long adlen_rnd64 = adlen & ~63ULL;
|
633
632
|
unsigned long long mlen;
|
634
633
|
unsigned long long mlen_rnd128;
|
634
|
+
CRYPTO_ALIGN(16) unsigned char H[16];
|
635
635
|
CRYPTO_ALIGN(16) unsigned char n2[16];
|
636
636
|
CRYPTO_ALIGN(16) unsigned char T[16];
|
637
637
|
CRYPTO_ALIGN(16) unsigned char accum[16];
|
@@ -57,7 +57,12 @@ extern "C" {
|
|
57
57
|
BLAKE2B_PERSONALBYTES = 16
|
58
58
|
};
|
59
59
|
|
60
|
-
#
|
60
|
+
#ifdef __SUNPRO_C
|
61
|
+
# pragma pack(1)
|
62
|
+
#else
|
63
|
+
# pragma pack(push, 1)
|
64
|
+
#endif
|
65
|
+
|
61
66
|
typedef struct blake2s_param_
|
62
67
|
{
|
63
68
|
uint8_t digest_length; // 1
|
@@ -127,7 +132,12 @@ typedef crypto_generichash_blake2b_state blake2b_state;
|
|
127
132
|
uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
|
128
133
|
size_t buflen;
|
129
134
|
} blake2bp_state;
|
130
|
-
|
135
|
+
|
136
|
+
#ifdef __SUNPRO_C
|
137
|
+
# pragma pack()
|
138
|
+
#else
|
139
|
+
# pragma pack(pop)
|
140
|
+
#endif
|
131
141
|
|
132
142
|
// Streaming API
|
133
143
|
int blake2s_init( blake2s_state *S, const uint8_t outlen );
|
@@ -174,4 +184,3 @@ typedef crypto_generichash_blake2b_state blake2b_state;
|
|
174
184
|
#endif
|
175
185
|
|
176
186
|
#endif
|
177
|
-
|
@@ -48,17 +48,17 @@ void fe_frombytes(fe h,const unsigned char *s)
|
|
48
48
|
crypto_int64 carry8;
|
49
49
|
crypto_int64 carry9;
|
50
50
|
|
51
|
-
carry9 = (h9 + (crypto_int64) (
|
52
|
-
carry1 = (h1 + (crypto_int64) (
|
53
|
-
carry3 = (h3 + (crypto_int64) (
|
54
|
-
carry5 = (h5 + (crypto_int64) (
|
55
|
-
carry7 = (h7 + (crypto_int64) (
|
51
|
+
carry9 = (h9 + (crypto_int64) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 << 25;
|
52
|
+
carry1 = (h1 + (crypto_int64) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 << 25;
|
53
|
+
carry3 = (h3 + (crypto_int64) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 << 25;
|
54
|
+
carry5 = (h5 + (crypto_int64) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 << 25;
|
55
|
+
carry7 = (h7 + (crypto_int64) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 << 25;
|
56
56
|
|
57
|
-
carry0 = (h0 + (crypto_int64) (
|
58
|
-
carry2 = (h2 + (crypto_int64) (
|
59
|
-
carry4 = (h4 + (crypto_int64) (
|
60
|
-
carry6 = (h6 + (crypto_int64) (
|
61
|
-
carry8 = (h8 + (crypto_int64) (
|
57
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
58
|
+
carry2 = (h2 + (crypto_int64) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 << 26;
|
59
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
60
|
+
carry6 = (h6 + (crypto_int64) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 << 26;
|
61
|
+
carry8 = (h8 + (crypto_int64) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 << 26;
|
62
62
|
|
63
63
|
h[0] = (crypto_int32) h0;
|
64
64
|
h[1] = (crypto_int32) h1;
|
@@ -197,46 +197,46 @@ void fe_mul(fe h,const fe f,const fe g)
|
|
197
197
|
i.e. |h1| <= 1.7*2^59; narrower ranges for h3, h5, h7, h9
|
198
198
|
*/
|
199
199
|
|
200
|
-
carry0 = (h0 + (crypto_int64) (
|
201
|
-
carry4 = (h4 + (crypto_int64) (
|
200
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
201
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
202
202
|
/* |h0| <= 2^25 */
|
203
203
|
/* |h4| <= 2^25 */
|
204
204
|
/* |h1| <= 1.71*2^59 */
|
205
205
|
/* |h5| <= 1.71*2^59 */
|
206
206
|
|
207
|
-
carry1 = (h1 + (crypto_int64) (
|
208
|
-
carry5 = (h5 + (crypto_int64) (
|
207
|
+
carry1 = (h1 + (crypto_int64) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 << 25;
|
208
|
+
carry5 = (h5 + (crypto_int64) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 << 25;
|
209
209
|
/* |h1| <= 2^24; from now on fits into int32 */
|
210
210
|
/* |h5| <= 2^24; from now on fits into int32 */
|
211
211
|
/* |h2| <= 1.41*2^60 */
|
212
212
|
/* |h6| <= 1.41*2^60 */
|
213
213
|
|
214
|
-
carry2 = (h2 + (crypto_int64) (
|
215
|
-
carry6 = (h6 + (crypto_int64) (
|
214
|
+
carry2 = (h2 + (crypto_int64) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 << 26;
|
215
|
+
carry6 = (h6 + (crypto_int64) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 << 26;
|
216
216
|
/* |h2| <= 2^25; from now on fits into int32 unchanged */
|
217
217
|
/* |h6| <= 2^25; from now on fits into int32 unchanged */
|
218
218
|
/* |h3| <= 1.71*2^59 */
|
219
219
|
/* |h7| <= 1.71*2^59 */
|
220
220
|
|
221
|
-
carry3 = (h3 + (crypto_int64) (
|
222
|
-
carry7 = (h7 + (crypto_int64) (
|
221
|
+
carry3 = (h3 + (crypto_int64) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 << 25;
|
222
|
+
carry7 = (h7 + (crypto_int64) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 << 25;
|
223
223
|
/* |h3| <= 2^24; from now on fits into int32 unchanged */
|
224
224
|
/* |h7| <= 2^24; from now on fits into int32 unchanged */
|
225
225
|
/* |h4| <= 1.72*2^34 */
|
226
226
|
/* |h8| <= 1.41*2^60 */
|
227
227
|
|
228
|
-
carry4 = (h4 + (crypto_int64) (
|
229
|
-
carry8 = (h8 + (crypto_int64) (
|
228
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
229
|
+
carry8 = (h8 + (crypto_int64) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 << 26;
|
230
230
|
/* |h4| <= 2^25; from now on fits into int32 unchanged */
|
231
231
|
/* |h8| <= 2^25; from now on fits into int32 unchanged */
|
232
232
|
/* |h5| <= 1.01*2^24 */
|
233
233
|
/* |h9| <= 1.71*2^59 */
|
234
234
|
|
235
|
-
carry9 = (h9 + (crypto_int64) (
|
235
|
+
carry9 = (h9 + (crypto_int64) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 << 25;
|
236
236
|
/* |h9| <= 2^24; from now on fits into int32 unchanged */
|
237
237
|
/* |h0| <= 1.1*2^39 */
|
238
238
|
|
239
|
-
carry0 = (h0 + (crypto_int64) (
|
239
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
240
240
|
/* |h0| <= 2^25; from now on fits into int32 unchanged */
|
241
241
|
/* |h1| <= 1.01*2^24 */
|
242
242
|
|
@@ -117,24 +117,24 @@ void fe_sq(fe h,const fe f)
|
|
117
117
|
crypto_int64 carry8;
|
118
118
|
crypto_int64 carry9;
|
119
119
|
|
120
|
-
carry0 = (h0 + (crypto_int64) (
|
121
|
-
carry4 = (h4 + (crypto_int64) (
|
120
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
121
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
122
122
|
|
123
|
-
carry1 = (h1 + (crypto_int64) (
|
124
|
-
carry5 = (h5 + (crypto_int64) (
|
123
|
+
carry1 = (h1 + (crypto_int64) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 << 25;
|
124
|
+
carry5 = (h5 + (crypto_int64) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 << 25;
|
125
125
|
|
126
|
-
carry2 = (h2 + (crypto_int64) (
|
127
|
-
carry6 = (h6 + (crypto_int64) (
|
126
|
+
carry2 = (h2 + (crypto_int64) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 << 26;
|
127
|
+
carry6 = (h6 + (crypto_int64) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 << 26;
|
128
128
|
|
129
|
-
carry3 = (h3 + (crypto_int64) (
|
130
|
-
carry7 = (h7 + (crypto_int64) (
|
129
|
+
carry3 = (h3 + (crypto_int64) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 << 25;
|
130
|
+
carry7 = (h7 + (crypto_int64) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 << 25;
|
131
131
|
|
132
|
-
carry4 = (h4 + (crypto_int64) (
|
133
|
-
carry8 = (h8 + (crypto_int64) (
|
132
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
133
|
+
carry8 = (h8 + (crypto_int64) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 << 26;
|
134
134
|
|
135
|
-
carry9 = (h9 + (crypto_int64) (
|
135
|
+
carry9 = (h9 + (crypto_int64) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 << 25;
|
136
136
|
|
137
|
-
carry0 = (h0 + (crypto_int64) (
|
137
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
138
138
|
|
139
139
|
h[0] = (crypto_int32) h0;
|
140
140
|
h[1] = (crypto_int32) h1;
|
@@ -128,24 +128,24 @@ void fe_sq2(fe h,const fe f)
|
|
128
128
|
h8 += h8;
|
129
129
|
h9 += h9;
|
130
130
|
|
131
|
-
carry0 = (h0 + (crypto_int64) (
|
132
|
-
carry4 = (h4 + (crypto_int64) (
|
131
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
132
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
133
133
|
|
134
|
-
carry1 = (h1 + (crypto_int64) (
|
135
|
-
carry5 = (h5 + (crypto_int64) (
|
134
|
+
carry1 = (h1 + (crypto_int64) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 << 25;
|
135
|
+
carry5 = (h5 + (crypto_int64) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 << 25;
|
136
136
|
|
137
|
-
carry2 = (h2 + (crypto_int64) (
|
138
|
-
carry6 = (h6 + (crypto_int64) (
|
137
|
+
carry2 = (h2 + (crypto_int64) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 << 26;
|
138
|
+
carry6 = (h6 + (crypto_int64) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 << 26;
|
139
139
|
|
140
|
-
carry3 = (h3 + (crypto_int64) (
|
141
|
-
carry7 = (h7 + (crypto_int64) (
|
140
|
+
carry3 = (h3 + (crypto_int64) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 << 25;
|
141
|
+
carry7 = (h7 + (crypto_int64) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 << 25;
|
142
142
|
|
143
|
-
carry4 = (h4 + (crypto_int64) (
|
144
|
-
carry8 = (h8 + (crypto_int64) (
|
143
|
+
carry4 = (h4 + (crypto_int64) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 << 26;
|
144
|
+
carry8 = (h8 + (crypto_int64) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 << 26;
|
145
145
|
|
146
|
-
carry9 = (h9 + (crypto_int64) (
|
146
|
+
carry9 = (h9 + (crypto_int64) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 << 25;
|
147
147
|
|
148
|
-
carry0 = (h0 + (crypto_int64) (
|
148
|
+
carry0 = (h0 + (crypto_int64) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 << 26;
|
149
149
|
|
150
150
|
h[0] = (crypto_int32) h0;
|
151
151
|
h[1] = (crypto_int32) h1;
|
@@ -144,30 +144,30 @@ void sc_muladd(unsigned char *s,const unsigned char *a,const unsigned char *b,co
|
|
144
144
|
s22 = a11*b11;
|
145
145
|
s23 = 0;
|
146
146
|
|
147
|
-
carry0 = (s0 + (
|
148
|
-
carry2 = (s2 + (
|
149
|
-
carry4 = (s4 + (
|
150
|
-
carry6 = (s6 + (
|
151
|
-
carry8 = (s8 + (
|
152
|
-
carry10 = (s10 + (
|
153
|
-
carry12 = (s12 + (
|
154
|
-
carry14 = (s14 + (
|
155
|
-
carry16 = (s16 + (
|
156
|
-
carry18 = (s18 + (
|
157
|
-
carry20 = (s20 + (
|
158
|
-
carry22 = (s22 + (
|
159
|
-
|
160
|
-
carry1 = (s1 + (
|
161
|
-
carry3 = (s3 + (
|
162
|
-
carry5 = (s5 + (
|
163
|
-
carry7 = (s7 + (
|
164
|
-
carry9 = (s9 + (
|
165
|
-
carry11 = (s11 + (
|
166
|
-
carry13 = (s13 + (
|
167
|
-
carry15 = (s15 + (
|
168
|
-
carry17 = (s17 + (
|
169
|
-
carry19 = (s19 + (
|
170
|
-
carry21 = (s21 + (
|
147
|
+
carry0 = (s0 + (1L << 20)) >> 21; s1 += carry0; s0 -= carry0 * (1L << 21);
|
148
|
+
carry2 = (s2 + (1L << 20)) >> 21; s3 += carry2; s2 -= carry2 * (1L << 21);
|
149
|
+
carry4 = (s4 + (1L << 20)) >> 21; s5 += carry4; s4 -= carry4 * (1L << 21);
|
150
|
+
carry6 = (s6 + (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * (1L << 21);
|
151
|
+
carry8 = (s8 + (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * (1L << 21);
|
152
|
+
carry10 = (s10 + (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * (1L << 21);
|
153
|
+
carry12 = (s12 + (1L << 20)) >> 21; s13 += carry12; s12 -= carry12 * (1L << 21);
|
154
|
+
carry14 = (s14 + (1L << 20)) >> 21; s15 += carry14; s14 -= carry14 * (1L << 21);
|
155
|
+
carry16 = (s16 + (1L << 20)) >> 21; s17 += carry16; s16 -= carry16 * (1L << 21);
|
156
|
+
carry18 = (s18 + (1L << 20)) >> 21; s19 += carry18; s18 -= carry18 * (1L << 21);
|
157
|
+
carry20 = (s20 + (1L << 20)) >> 21; s21 += carry20; s20 -= carry20 * (1L << 21);
|
158
|
+
carry22 = (s22 + (1L << 20)) >> 21; s23 += carry22; s22 -= carry22 * (1L << 21);
|
159
|
+
|
160
|
+
carry1 = (s1 + (1L << 20)) >> 21; s2 += carry1; s1 -= carry1 * (1L << 21);
|
161
|
+
carry3 = (s3 + (1L << 20)) >> 21; s4 += carry3; s3 -= carry3 * (1L << 21);
|
162
|
+
carry5 = (s5 + (1L << 20)) >> 21; s6 += carry5; s5 -= carry5 * (1L << 21);
|
163
|
+
carry7 = (s7 + (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * (1L << 21);
|
164
|
+
carry9 = (s9 + (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * (1L << 21);
|
165
|
+
carry11 = (s11 + (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * (1L << 21);
|
166
|
+
carry13 = (s13 + (1L << 20)) >> 21; s14 += carry13; s13 -= carry13 * (1L << 21);
|
167
|
+
carry15 = (s15 + (1L << 20)) >> 21; s16 += carry15; s15 -= carry15 * (1L << 21);
|
168
|
+
carry17 = (s17 + (1L << 20)) >> 21; s18 += carry17; s17 -= carry17 * (1L << 21);
|
169
|
+
carry19 = (s19 + (1L << 20)) >> 21; s20 += carry19; s19 -= carry19 * (1L << 21);
|
170
|
+
carry21 = (s21 + (1L << 20)) >> 21; s22 += carry21; s21 -= carry21 * (1L << 21);
|
171
171
|
|
172
172
|
s11 += s23 * 666643;
|
173
173
|
s12 += s23 * 470296;
|
@@ -217,18 +217,18 @@ void sc_muladd(unsigned char *s,const unsigned char *a,const unsigned char *b,co
|
|
217
217
|
s11 -= s18 * 683901;
|
218
218
|
|
219
219
|
|
220
|
-
carry6 = (s6 + (
|
221
|
-
carry8 = (s8 + (
|
222
|
-
carry10 = (s10 + (
|
223
|
-
carry12 = (s12 + (
|
224
|
-
carry14 = (s14 + (
|
225
|
-
carry16 = (s16 + (
|
220
|
+
carry6 = (s6 + (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * (1L << 21);
|
221
|
+
carry8 = (s8 + (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * (1L << 21);
|
222
|
+
carry10 = (s10 + (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * (1L << 21);
|
223
|
+
carry12 = (s12 + (1L << 20)) >> 21; s13 += carry12; s12 -= carry12 * (1L << 21);
|
224
|
+
carry14 = (s14 + (1L << 20)) >> 21; s15 += carry14; s14 -= carry14 * (1L << 21);
|
225
|
+
carry16 = (s16 + (1L << 20)) >> 21; s17 += carry16; s16 -= carry16 * (1L << 21);
|
226
226
|
|
227
|
-
carry7 = (s7 + (
|
228
|
-
carry9 = (s9 + (
|
229
|
-
carry11 = (s11 + (
|
230
|
-
carry13 = (s13 + (
|
231
|
-
carry15 = (s15 + (
|
227
|
+
carry7 = (s7 + (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * (1L << 21);
|
228
|
+
carry9 = (s9 + (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * (1L << 21);
|
229
|
+
carry11 = (s11 + (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * (1L << 21);
|
230
|
+
carry13 = (s13 + (1L << 20)) >> 21; s14 += carry13; s13 -= carry13 * (1L << 21);
|
231
|
+
carry15 = (s15 + (1L << 20)) >> 21; s16 += carry15; s15 -= carry15 * (1L << 21);
|
232
232
|
|
233
233
|
s5 += s17 * 666643;
|
234
234
|
s6 += s17 * 470296;
|
@@ -278,19 +278,19 @@ void sc_muladd(unsigned char *s,const unsigned char *a,const unsigned char *b,co
|
|
278
278
|
s5 -= s12 * 683901;
|
279
279
|
s12 = 0;
|
280
280
|
|
281
|
-
carry0 = (s0 + (
|
282
|
-
carry2 = (s2 + (
|
283
|
-
carry4 = (s4 + (
|
284
|
-
carry6 = (s6 + (
|
285
|
-
carry8 = (s8 + (
|
286
|
-
carry10 = (s10 + (
|
281
|
+
carry0 = (s0 + (1L << 20)) >> 21; s1 += carry0; s0 -= carry0 * (1L << 21);
|
282
|
+
carry2 = (s2 + (1L << 20)) >> 21; s3 += carry2; s2 -= carry2 * (1L << 21);
|
283
|
+
carry4 = (s4 + (1L << 20)) >> 21; s5 += carry4; s4 -= carry4 * (1L << 21);
|
284
|
+
carry6 = (s6 + (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * (1L << 21);
|
285
|
+
carry8 = (s8 + (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * (1L << 21);
|
286
|
+
carry10 = (s10 + (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * (1L << 21);
|
287
287
|
|
288
|
-
carry1 = (s1 + (
|
289
|
-
carry3 = (s3 + (
|
290
|
-
carry5 = (s5 + (
|
291
|
-
carry7 = (s7 + (
|
292
|
-
carry9 = (s9 + (
|
293
|
-
carry11 = (s11 + (
|
288
|
+
carry1 = (s1 + (1L << 20)) >> 21; s2 += carry1; s1 -= carry1 * (1L << 21);
|
289
|
+
carry3 = (s3 + (1L << 20)) >> 21; s4 += carry3; s3 -= carry3 * (1L << 21);
|
290
|
+
carry5 = (s5 + (1L << 20)) >> 21; s6 += carry5; s5 -= carry5 * (1L << 21);
|
291
|
+
carry7 = (s7 + (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * (1L << 21);
|
292
|
+
carry9 = (s9 + (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * (1L << 21);
|
293
|
+
carry11 = (s11 + (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * (1L << 21);
|
294
294
|
|
295
295
|
s0 += s12 * 666643;
|
296
296
|
s1 += s12 * 470296;
|
@@ -300,18 +300,18 @@ void sc_muladd(unsigned char *s,const unsigned char *a,const unsigned char *b,co
|
|
300
300
|
s5 -= s12 * 683901;
|
301
301
|
s12 = 0;
|
302
302
|
|
303
|
-
carry0 = s0 >> 21; s1 += carry0; s0 -= carry0 << 21;
|
304
|
-
carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 << 21;
|
305
|
-
carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 << 21;
|
306
|
-
carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 << 21;
|
307
|
-
carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 << 21;
|
308
|
-
carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 << 21;
|
309
|
-
carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 << 21;
|
310
|
-
carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 << 21;
|
311
|
-
carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 << 21;
|
312
|
-
carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 << 21;
|
313
|
-
carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 << 21;
|
314
|
-
carry11 = s11 >> 21; s12 += carry11; s11 -= carry11 << 21;
|
303
|
+
carry0 = s0 >> 21; s1 += carry0; s0 -= carry0 * (1L << 21);
|
304
|
+
carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 * (1L << 21);
|
305
|
+
carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 * (1L << 21);
|
306
|
+
carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 * (1L << 21);
|
307
|
+
carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 * (1L << 21);
|
308
|
+
carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 * (1L << 21);
|
309
|
+
carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 * (1L << 21);
|
310
|
+
carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 * (1L << 21);
|
311
|
+
carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 * (1L << 21);
|
312
|
+
carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 * (1L << 21);
|
313
|
+
carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 * (1L << 21);
|
314
|
+
carry11 = s11 >> 21; s12 += carry11; s11 -= carry11 * (1L << 21);
|
315
315
|
|
316
316
|
s0 += s12 * 666643;
|
317
317
|
s1 += s12 * 470296;
|
@@ -321,17 +321,17 @@ void sc_muladd(unsigned char *s,const unsigned char *a,const unsigned char *b,co
|
|
321
321
|
s5 -= s12 * 683901;
|
322
322
|
|
323
323
|
|
324
|
-
carry0 = s0 >> 21; s1 += carry0; s0 -= carry0 << 21;
|
325
|
-
carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 << 21;
|
326
|
-
carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 << 21;
|
327
|
-
carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 << 21;
|
328
|
-
carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 << 21;
|
329
|
-
carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 << 21;
|
330
|
-
carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 << 21;
|
331
|
-
carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 << 21;
|
332
|
-
carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 << 21;
|
333
|
-
carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 << 21;
|
334
|
-
carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 << 21;
|
324
|
+
carry0 = s0 >> 21; s1 += carry0; s0 -= carry0 * (1L << 21);
|
325
|
+
carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 * (1L << 21);
|
326
|
+
carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 * (1L << 21);
|
327
|
+
carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 * (1L << 21);
|
328
|
+
carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 * (1L << 21);
|
329
|
+
carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 * (1L << 21);
|
330
|
+
carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 * (1L << 21);
|
331
|
+
carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 * (1L << 21);
|
332
|
+
carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 * (1L << 21);
|
333
|
+
carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 * (1L << 21);
|
334
|
+
carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 * (1L << 21);
|
335
335
|
|
336
336
|
s[0] = s0 >> 0;
|
337
337
|
s[1] = s0 >> 8;
|