core-lightning/bitcoin
Rusty Russell 5e3e2f4e17 run-secret_eq_consttime: try harder.
This will never be reliable under high load, without making it unable
to detect real errors.  But the test is useful because if we don't
have this test we'll never notice if we break the const-timedness of
our implementation.

So, move the calloc out of the test loop (which seems to make it more
reliable), and then after we've run it, check the 1-minute load
average.  Too high, we don't complain about results.  It's not
perfect, but it's better.

Running 100 times (-O3) serially gave 100 successes with the following results:
	Constant: Within 5% 562-926(832.89+/-73)/1000 times
        Non-constant: More than 5% slower 860-990(956.35+/-26)/1000 times

More importantly, if we swap the const and non-const tests, we get
the expected 100 failures:
	Non-constant: Within 5% 14-79(41.17+/-14)/1000 times
	Constant: More than 5% slower 44-231(111.89+/-33)/1000 times

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2019-08-29 09:01:48 +02:00
..
test run-secret_eq_consttime: try harder. 2019-08-29 09:01:48 +02:00
address.h Makefile: generalize whitespace check. 2017-01-04 14:09:20 +10:30
base58.c wallet: Pass chainparams to address serialization 2019-05-10 23:07:49 +00:00
base58.h wallet: Pass chainparams to address serialization 2019-05-10 23:07:49 +00:00
block.c bitcoin: Add chainparams to transactions from blocks 2019-07-31 23:22:54 +00:00
block.h bitcoin: Add chainparams to transactions from blocks 2019-07-31 23:22:54 +00:00
chainparams.c signet: update genesis hash to use new POW-valid version 2019-08-19 07:09:06 +00:00
chainparams.h bitcoin: Add the cli_min_supported_version field in chainparams 2019-07-30 17:38:54 +08:00
feerate.h bitcoin: expose feerate_floor. 2018-06-21 13:43:32 +02:00
locktime.c Remove unused functions not covered by unit tests 2018-03-26 23:35:56 +00:00
locktime.h Remove unused functions not covered by unit tests 2018-03-26 23:35:56 +00:00
Makefile secret_eq: remove in favor of constant time variant. 2018-08-23 14:46:22 +02:00
preimage.h Update ccan/structeq. 2018-07-04 23:57:00 +02:00
privkey.c secret_eq: remove in favor of constant time variant. 2018-08-23 14:46:22 +02:00
privkey.h devtools: Minor cleanup of the onion command line tool 2019-07-30 02:14:49 +00:00
pubkey.c pubkey: rename PUBKEY_DER_LEN to PUBKEY_CMPR_LEN. 2019-04-09 12:37:16 -07:00
pubkey.h pubkey: rename PUBKEY_DER_LEN to PUBKEY_CMPR_LEN. 2019-04-09 12:37:16 -07:00
pullpush.c Makefile: check for direct amount_sat/amount_msat access. 2019-02-21 08:01:37 +00:00
pullpush.h bitcoin: use amount_sat/amount_msat. 2019-02-21 08:01:37 +00:00
README Fix typo. 2015-06-25 13:48:05 +09:30
script.c bolt: update to lightning-rfc:636b9f, change opcode reference format 2019-07-16 06:10:58 +00:00
script.h signature: wrap almost all signatures in struct bitcoin_signature. 2018-12-06 23:11:51 +01:00
shadouble.c type_to_string: support sha256_double. 2018-03-13 16:34:55 +01:00
shadouble.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
short_channel_id.c wire: move short_channel formatting functions into bitcoin/short_channel_id 2019-02-21 00:44:57 +00:00
short_channel_id.h short_channel_id: don't accept :-separated in JSON if --allow-deprecated-apis=false 2019-02-08 16:52:30 -08:00
signature.c wally: Migrate main daemon to use wally transactions 2019-04-08 00:00:00 +00:00
signature.h bitcoin/signature: implement SIGHASH_SINGLE|SIGHASH_ANYONECANPAY for segwit. 2018-12-06 23:11:51 +01:00
tx.c bitcoin/tx: pass struct amount_sat by copy. 2019-08-26 08:44:22 +00:00
tx.h bitcoin/tx: pass struct amount_sat by copy. 2019-08-26 08:44:22 +00:00
varint.c bigsize: make it a proper first-class type. 2019-07-31 23:25:59 +00:00
varint.h bigsize: make it a proper first-class type. 2019-07-31 23:25:59 +00:00

These are standard bitcoin manipulation routines which should be
provided by any normal bitcoin library in whatever language you choose.

The ones here are standalone ones taken from bitcoin core and some I
wrote, many taken from bitcoin-iterate and pasted in here.