7873633b57
50cc6ab Merge pull request #178 941e221 Add tests for handling of the nonce function in signing. 10c81ff Merge pull request #177 7688e34 Add magnitude limits to secp256k1_fe_verify to ensure that it's own tests function correctly. 4ee4f7a Merge pull request #176 70ae0d2 Use secp256k1_fe_equal_var in secp256k1_fe_sqrt_var. 7767b4d Merge pull request #175 9ab9335 Add a reference consistency test to ge_tests. 60571c6 Rework group tests d26e26f Avoid constructing an invalid signature with probability 1:2^256. b450c34 Merge pull request #163 d57cae9 Merge pull request #154 49ee0db Add _normalizes_to_zero_var variant eed599d Add _fe_normalizes_to_zero method d7174ed Weak normalization for secp256k1_fe_equal 0295f0a weak normalization bbd5ba7 Use rfc6979 as default nonce generation function b37fbc2 Implement SHA256 / HMAC-SHA256 / RFC6979. c6e7f4e [API BREAK] Use a nonce-generation function instead of a nonce cf0c48b Merge pull request #169 603c33b Make signing fail if a too small buffer is passed. 6d16606 Merge pull request #168 7277fd7 Remove GMP field implementation e99c4c4 Merge pull request #123 13278f6 Add explanation about how inversion can be avoided ce7eb6f Optimize verification: avoid field inverse a098f78 Merge pull request #160 38acd01 Merge pull request #165 6a59012 Make git ignore bench_recover when configured with benchmark enabled 1ba4a60 Configure options reorganization 3c0f246 Merge pull request #157 808dd9b Merge pull request #156 8dc75e9 Merge pull request #158 28ade27 build: nuke bashisms 5190079 build: use subdir-objects for automake 8336040 build: disable benchmark by default git-subtree-dir: src/secp256k1 git-subtree-split: 50cc6ab0625efda6dddf1dc86c1e2671f069b0d8
61 lines
2 KiB
Text
61 lines
2 KiB
Text
dnl libsecp25k1 helper checks
|
|
AC_DEFUN([SECP_INT128_CHECK],[
|
|
has_int128=$ac_cv_type___int128
|
|
])
|
|
|
|
dnl
|
|
AC_DEFUN([SECP_64BIT_ASM_CHECK],[
|
|
AC_MSG_CHECKING(for x86_64 assembly availability)
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <stdint.h>]],[[
|
|
uint64_t a = 11, tmp;
|
|
__asm__ __volatile__("movq $0x100000000,%1; mulq %%rsi" : "+a"(a) : "S"(tmp) : "cc", "%rdx");
|
|
]])],[has_64bit_asm=yes],[has_64bit_asm=no])
|
|
AC_MSG_RESULT([$has_64bit_asm])
|
|
])
|
|
|
|
dnl
|
|
AC_DEFUN([SECP_OPENSSL_CHECK],[
|
|
if test x"$use_pkgconfig" = x"yes"; then
|
|
: #NOP
|
|
m4_ifdef([PKG_CHECK_MODULES],[
|
|
PKG_CHECK_MODULES([CRYPTO], [libcrypto], [has_libcrypto=yes],[has_libcrypto=no])
|
|
if test x"$has_libcrypto" = x"yes"; then
|
|
TEMP_LIBS="$LIBS"
|
|
LIBS="$LIBS $CRYPTO_LIBS"
|
|
AC_CHECK_LIB(crypto, main,[AC_DEFINE(HAVE_LIBCRYPTO,1,[Define this symbol if libcrypto is installed])],[has_libcrypto=no])
|
|
LIBS="$TEMP_LIBS"
|
|
fi
|
|
])
|
|
else
|
|
AC_CHECK_HEADER(openssl/crypto.h,[AC_CHECK_LIB(crypto, main,[has_libcrypto=yes; CRYPTO_LIBS=-lcrypto; AC_DEFINE(HAVE_LIBCRYPTO,1,[Define this symbol if libcrypto is installed])]
|
|
)])
|
|
LIBS=
|
|
fi
|
|
if test x"$has_libcrypto" = x"yes" && test x"$has_openssl_ec" = x; then
|
|
AC_MSG_CHECKING(for EC functions in libcrypto)
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <openssl/ec.h>
|
|
#include <openssl/ecdsa.h>
|
|
#include <openssl/obj_mac.h>]],[[
|
|
EC_KEY *eckey = EC_KEY_new_by_curve_name(NID_secp256k1);
|
|
ECDSA_sign(0, NULL, 0, NULL, NULL, eckey);
|
|
ECDSA_verify(0, NULL, 0, NULL, 0, eckey);
|
|
EC_KEY_free(eckey);
|
|
]])],[has_openssl_ec=yes],[has_openssl_ec=no])
|
|
AC_MSG_RESULT([$has_openssl_ec])
|
|
fi
|
|
])
|
|
|
|
dnl
|
|
AC_DEFUN([SECP_GMP_CHECK],[
|
|
if test x"$has_gmp" != x"yes"; then
|
|
CPPFLAGS_TEMP="$CPPFLAGS"
|
|
CPPFLAGS="$GMP_CPPFLAGS $CPPFLAGS"
|
|
LIBS_TEMP="$LIBS"
|
|
LIBS="$GMP_LIBS $LIBS"
|
|
AC_CHECK_HEADER(gmp.h,[AC_CHECK_LIB(gmp, __gmpz_init,[has_gmp=yes; GMP_LIBS="$GMP_LIBS -lgmp"; AC_DEFINE(HAVE_LIBGMP,1,[Define this symbol if libgmp is installed])])])
|
|
CPPFLAGS="$CPPFLAGS_TEMP"
|
|
LIBS="$LIBS_TEMP"
|
|
fi
|
|
])
|