Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
f554dfc
sage: Reorganize files
real-or-random Nov 25, 2020
329a2e0
sage: Add script for generating scalar_split_lambda constants
real-or-random Nov 25, 2020
f587f04
Rename msg32 to msghash32 in ecdsa_sign/verify and add explanation
jonasnick Dec 3, 2020
6e85d67
Rename tweak to tweak32 in public API
jonasnick Dec 4, 2020
dc6e5c3
Merge #854: Rename msg32 to msghash32 in ecdsa_sign/verify and add ex…
real-or-random Dec 7, 2020
2d9e717
Merge #852: Add sage script for generating scalar_split_lambda constants
jonasnick Dec 7, 2020
18aadf9
docs: fix simple typo, dependecy -> dependency
timgates42 Dec 8, 2020
b61f9da
Merge #857: docs: fix simple typo, dependecy -> dependency
real-or-random Dec 9, 2020
07aa4c7
Fix insecure links
rex4539 Dec 17, 2020
98dac87
Merge #858: Fix insecure links
jonasnick Dec 18, 2020
fc96aa7
Add a function to extract the secretkey from a keypair
elichai Nov 5, 2020
36d9dc1
Add seckey extraction from keypair to the extrakeys tests
elichai Nov 5, 2020
33cb3c2
Add secret key extraction from keypair to constant time tests
elichai Dec 19, 2020
b7bc3a4
fixed typo
fametrano Dec 22, 2020
8c727b9
Merge #860: fixed trivial typo
real-or-random Jan 8, 2021
252c19d
Ask brew for valgrind include path
real-or-random Dec 23, 2020
47802a4
Restructure and tidy configure.ac
real-or-random Jan 8, 2021
3c15130
Improve CC_FOR_BUILD detection
real-or-random Jan 2, 2021
328aaef
Merge #845: Extract the secret key from a keypair
real-or-random Jan 12, 2021
f2d9aea
Merge #862: Autoconf improvements
real-or-random Jan 12, 2021
fb390c5
Remove underscores from header defs.
roconnor-blockstream Jan 23, 2021
2730618
Avoid casting (void**) values.
roconnor-blockstream Jan 23, 2021
482e4a9
Add missing secp256k1_ge_set_gej_var decl.
roconnor-blockstream Jan 24, 2021
75d2ae1
Remove unused secp256k1_fe_inv_all_var
sipa Jan 24, 2021
b732701
Merge #875: Avoid casting (void**) values.
jonasnick Jan 25, 2021
db72678
Merge #878: Remove unused secp256k1_fe_inv_all_var
jonasnick Jan 25, 2021
5671e5f
Merge #874: Remove underscores from header defs.
jonasnick Jan 25, 2021
a4abaab
Merge #877: Add missing secp256k1_ge_set_gej_var decl.
jonasnick Jan 25, 2021
b6f6498
Add parens around ROUND_TO_ALIGN's parameter.
roconnor-blockstream Jan 25, 2021
659d0d4
Merge #880: Add parens around ROUND_TO_ALIGN's parameter.
real-or-random Jan 26, 2021
8c02e46
ci: Add support for Cirrus CI
real-or-random Dec 22, 2020
2b359f1
ci: Enable simple cache for brewing valgrind on macOS
real-or-random Jan 14, 2021
2480e55
ci: Remove support for Travis CI
real-or-random Jan 28, 2021
cc2a545
ci: Refactor Nix shell files
jonasnick Jan 29, 2021
f8c0b57
Merge #864: Add support for Cirrus CI
jonasnick Jan 30, 2021
e491d06
Use bit ops instead of int mult for constant-time logic in gej_add_ge
real-or-random Jan 28, 2021
24d1656
Merge #882: Use bit ops instead of int mult for constant-time logic i…
jonasnick Feb 1, 2021
f329bba
build: Add workaround for automake 1.13 and older
real-or-random Feb 1, 2021
7d3497c
ctime_test: move context randomization test to the end
jonasnick Feb 4, 2021
3a8b47b
Merge #894: ctime_test: move context randomization test to the end
jonasnick Feb 22, 2021
ebdba03
Merge #891: build: Add workaround for automake 1.13 and older
real-or-random Mar 2, 2021
f24e122
ci: Switch all Linux builds to Debian
real-or-random Feb 26, 2021
b994a8b
ci: Print information about binaries using "file"
real-or-random Feb 26, 2021
c7f754f
ci: Run PRs on merge result instead of on the source branch
real-or-random Mar 1, 2021
28eccdf
ci: Split output of logs into multiple sections
real-or-random Mar 1, 2021
9361f36
ci: Select number of parallel make jobs depending on CI environment
real-or-random Mar 3, 2021
4c3ba88
Merge #901: ci: Switch all Linux builds to Debian and more improvements
real-or-random Mar 7, 2021
d4ca81f
Merge commits 'dc6e5c3a 2d9e7175 b61f9da5 98dac878 8c727b90 328aaef2 …
jonasnick Mar 8, 2021
649bf20
musig: fix tests for 32-bit
jonasnick Mar 10, 2021
79d4c3a
whitelist: add SECP_INCLUDES to bench_whitelist CPPFLAGS
jonasnick Mar 10, 2021
4091e61
cirrus: increase timeout for macOS tasks
jonasnick Mar 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
236 changes: 236 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,236 @@
env:
WIDEMUL: auto
BIGNUM: auto
STATICPRECOMPUTATION: yes
ECMULTGENPRECISION: auto
ASM: no
BUILD: check
WITH_VALGRIND: yes
RUN_VALGRIND: no
EXTRAFLAGS:
HOST:
ECDH: no
RECOVERY: no
SCHNORRSIG: no
ECDSA_S2C: no
GENERATOR: no
RANGEPROOF: no
WHITELIST: no
MUSIG: no
EXPERIMENTAL: no
CTIMETEST: yes
BENCH: yes
ITERS: 2
MAKEFLAGS: -j2

cat_logs_snippet: &CAT_LOGS
always:
cat_tests_log_script:
- cat tests.log || true
cat_exhaustive_tests_log_script:
- cat exhaustive_tests.log || true
cat_valgrind_ctime_test_log_script:
- cat valgrind_ctime_test.log || true
cat_bench_log_script:
- cat bench.log || true
on_failure:
cat_config_log_script:
- cat config.log || true
cat_test_env_script:
- cat test_env.log || true
cat_ci_env_script:
- env

merge_base_script_snippet: &MERGE_BASE
merge_base_script:
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
- git config --global user.email "ci@ci.ci"
- git config --global user.name "ci"
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts

task:
name: "x86_64: Linux (Debian stable)"
container:
dockerfile: ci/linux-debian.Dockerfile
# Reduce number of CPUs to be able to do more builds in parallel.
cpu: 1
# More than enough for our scripts.
memory: 1G
matrix: &ENV_MATRIX
- env: {WIDEMUL: int64, RECOVERY: yes}
- env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes, ECDSA_S2C: yes, RANGEPROOF: yes, WHITELIST: yes, GENERATOR: yes, MUSIG: yes}
- env: {WIDEMUL: int128}
- env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
- env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes, ECDSA_S2C: yes, RANGEPROOF: yes, WHITELIST: yes, GENERATOR: yes, MUSIG: yes}
- env: {WIDEMUL: int128, ASM: x86_64}
- env: {BIGNUM: no}
- env: {BIGNUM: no, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes, ECDSA_S2C: yes, RANGEPROOF: yes, WHITELIST: yes, GENERATOR: yes, MUSIG: yes}
- env: {BIGNUM: no, STATICPRECOMPUTATION: no}
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
- env: {CPPFLAGS: -DDETERMINISTIC}
- env: {CFLAGS: -O0, CTIMETEST: no}
- env:
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
BIGNUM: no
ASM: x86_64
ECDH: yes
RECOVERY: yes
EXPERIMENTAL: yes
SCHNORRSIG: yes
ECDSA_S2C: yes
RANGEPROOF: yes
WHITELIST: yes
GENERATOR: yes
MUSIG: yes
CTIMETEST: no
- env: { ECMULTGENPRECISION: 2 }
- env: { ECMULTGENPRECISION: 8 }
- env:
RUN_VALGRIND: yes
BIGNUM: no
ASM: x86_64
ECDH: yes
RECOVERY: yes
EXPERIMENTAL: yes
SCHNORRSIG: yes
ECDSA_S2C: yes
RANGEPROOF: yes
WHITELIST: yes
GENERATOR: yes
MUSIG: yes
EXTRAFLAGS: "--disable-openssl-tests"
BUILD:
matrix:
- env:
CC: gcc
- env:
CC: clang
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "i686: Linux (Debian stable)"
container:
dockerfile: ci/linux-debian.Dockerfile
cpu: 1
memory: 1G
env:
HOST: i686-linux-gnu
ECDH: yes
RECOVERY: yes
EXPERIMENTAL: yes
SCHNORRSIG: yes
ECDSA_S2C: yes
RANGEPROOF: yes
WHITELIST: yes
GENERATOR: yes
MUSIG: yes
matrix:
- env:
CC: i686-linux-gnu-gcc
- env:
CC: clang --target=i686-pc-linux-gnu -isystem /usr/i686-linux-gnu/include
matrix:
- env:
BIGNUM: gmp
- env:
BIGNUM: no
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "x86_64: macOS Catalina"
macos_instance:
image: catalina-base
# As of d4ca81f48e tasks with valgrind enabled take about 60 minutes
timeout_in: 90m
env:
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
# Cirrus gives us a fixed number of 12 virtual CPUs. Not that we even have that many jobs at the moment...
MAKEFLAGS: -j13
matrix:
<< : *ENV_MATRIX
matrix:
- env:
CC: gcc-9
- env:
CC: clang
# Update Command Line Tools
# Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
# See https://apple.stackexchange.com/a/195963 for the implementation.
## update_clt_script:
## - system_profiler SPSoftwareDataType
## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
## - |-
## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
## # For debugging
## - softwareupdate -l && echo "PROD: $PROD"
## - softwareupdate -i "$PROD" --verbose
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
##
brew_valgrind_pre_script:
- brew config
- brew tap --shallow LouisBrunner/valgrind
# Fetch valgrind source but don't build it yet.
- brew fetch --HEAD LouisBrunner/valgrind/valgrind
brew_valgrind_cache:
# This is $(brew --cellar valgrind) but command substition does not work here.
folder: /usr/local/Cellar/valgrind
# Rebuild cache if ...
fingerprint_script:
# ... macOS version changes:
- sw_vers
# ... brew changes:
- brew config
# ... valgrind changes:
- git -C "$(brew --cache)/valgrind--git" rev-parse HEAD
populate_script:
# If there's no hit in the cache, build and install valgrind.
- brew install --HEAD LouisBrunner/valgrind/valgrind
brew_valgrind_post_script:
# If we have restored valgrind from the cache, tell brew to create symlink to the PATH.
# If we haven't restored from cached (and just run brew install), this is a no-op.
- brew link valgrind
brew_script:
- brew install automake libtool gmp gcc@9
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

task:
name: "s390x (big-endian): Linux (Debian stable, QEMU)"
container:
dockerfile: ci/linux-debian.Dockerfile
cpu: 1
memory: 1G
env:
QEMU_CMD: qemu-s390x
HOST: s390x-linux-gnu
BUILD:
WITH_VALGRIND: no
BIGNUM: no
ECDH: yes
RECOVERY: yes
EXPERIMENTAL: yes
SCHNORRSIG: yes
ECDSA_S2C: yes
RANGEPROOF: yes
WHITELIST: yes
GENERATOR: yes
MUSIG: yes
CTIMETEST: no
<< : *MERGE_BASE
test_script:
# https://sourceware.org/bugzilla/show_bug.cgi?id=27008
- rm /etc/ld.so.cache
- ./ci/cirrus.sh
<< : *CAT_LOGS
112 changes: 0 additions & 112 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
libsecp256k1
============

[![Build Status](https://travis-ci.org/bitcoin-core/secp256k1.svg?branch=master)](https://travis-ci.org/bitcoin-core/secp256k1)
[![Build Status](https://api.cirrus-ci.com/github/bitcoin-core/secp256k1.svg?branch=master)](https://cirrus-ci.com/github/bitcoin-core/secp256k1)

Optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1.

Expand Down
2 changes: 1 addition & 1 deletion build-aux/m4/ax_prog_cc_for_build.m4
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
# https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
# ===========================================================================
#
# SYNOPSIS
Expand Down
8 changes: 8 additions & 0 deletions build-aux/m4/bitcoin_secp.m4
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,11 @@ if test x"$has_gmp" != x"yes"; then
LIBS="$LIBS_TEMP"
fi
])

AC_DEFUN([SECP_VALGRIND_CHECK],[
if test x"$has_valgrind" != x"yes"; then
CPPFLAGS_TEMP="$CPPFLAGS"
CPPFLAGS="$VALGRIND_CPPFLAGS $CPPFLAGS"
AC_CHECK_HEADER([valgrind/memcheck.h], [has_valgrind=yes; AC_DEFINE(HAVE_VALGRIND,1,[Define this symbol if valgrind is installed])])
fi
])
Loading