rbnacl-libsodium 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|