Matt Corallo
79119e8123
Skip context randomization in fuzzing to improve performance
2021-06-08 19:17:08 +00:00
Matt Corallo
c486ca10c7
Use a global static context in fuzzing, reducing overhead
2021-06-08 19:17:08 +00:00
Matt Corallo
940a51c2c6
Reduce cryptography usage in --cfg=fuzzing
...
This reduces the usage of real cryptography in --cfg=fuzzing,
specifically replacing the secret->public key derivation with a
simple copy and ECDH with XOR of the public and private parts
(plus a stream of 1s to make a test pass that expected non-0
output).
It leaves secret tweak addition/multiplication as-is.
It also changes the context creation to over-allocate and store
the context flags at the end of the context buffer, allowing us
to easily test context flags in each function.
While it would be nice to have something fancier (eg XOR-based),
its not immediately obvious how to accomplish this, and better to
fix the issues I have than spend too much time on it.
Fixes #271 .
This partially reverts b811ec133a
2021-06-08 19:17:08 +00:00
Gregory Hill
c86808fac7
use core instead of std for wasm sanity checks
...
Signed-off-by: Gregory Hill <gregorydhill@outlook.com>
2021-01-20 14:55:48 +00:00
Andrew Poelstra
65ff814a39
rename `rust_secp_fuzz` to `fuzzing`
2021-01-11 19:14:42 +00:00
Andrew Poelstra
d12be7966c
drop unnecessary no_mangle annotations on non-exported functions
2020-12-29 19:30:59 +00:00
Andrew Poelstra
a93d671d05
update libsecp to 98dac87839838b86094f1bccc71cc20e67b146cc
2020-12-29 17:15:51 +00:00
Andrew Poelstra
a9049f8eb2
Merge pull request #266 from junderw/patch-1
...
Fix link_name for secp256k1_ec_seckey_negate
2020-12-29 17:12:36 +00:00
Andrew Poelstra
75d717729a
fuzz: fix elichai's nits
2020-12-28 19:01:12 +00:00
Andrew Poelstra
96862b6a74
fuzz: implement recoverable signatures, get all tests passing, run them in CI
2020-12-28 18:42:46 +00:00
Jonathan Underwood
51bc0b1c0c
Fix link_name for secp256k1_ec_seckey_negate
2020-12-28 15:06:18 +09:00
Andrew Poelstra
b811ec133a
fuzz: only replace signing and verification, leave everything else alone
...
We can now run unit tests with the fuzz feature on, and they'll pass,
which is some assurance that fuzzing with the feature on won't lead to
spurious failures due to the fuzz harness inadequately simulating message
signing.
2020-12-23 17:59:52 +00:00
Andrew Poelstra
40c31342f2
ffi: make function types nullable
2020-12-23 17:59:52 +00:00
Andrew Poelstra
29316efff5
add warning about fuzzing being enabled
2020-12-22 17:34:50 +00:00
Andrew Poelstra
85075a654c
replace `fuzztarget` Cargo feature with a rustc --cfg flag
...
It's super dangerous to use Cargo features for this, since they can be set
accidentally (or maliciously by any crate in a user's entire dep tree). Instead
we can just require users set `RUSTFLAGS` appropriately, which we can easily
do in our fuzzing scripts.
2020-12-22 15:42:02 +00:00
Andrew Poelstra
d77483f00e
replace cargo `external-symbols` feature with a rustc --cfg flag
...
This feature was not useful for Cargo users, since Cargo does not give you
the kind of fine-grained control over C library linkage that you need. So
it was just unnecessarily confusing and would cause the build to break if
you enabled it accidentally, say, with --all-features.
2020-12-22 15:35:16 +00:00
Tobin Harding
02dec3eb9b
Implement AsRef instead of custom method
...
Clippy emits a warning since we define a method that has the same name
as a standard trait. Implement the trait `AsRef` instead of using a
custom method.
2020-12-22 12:56:11 +11:00
Tobin Harding
3afc172096
Conditionally compile fn strlen
...
`strlen` is only used under certain feature flags, use `cfg` to
conditionally build it in.
Clears clippy warning.
2020-12-22 12:55:37 +11:00
Tobin Harding
617bff9df3
Conditionally include ALIGN_TO
...
This const is only used under specific features, use `cfg` to
conditionally build it in.
Removes clippy warning.
2020-12-22 12:54:08 +11:00
Tobin Harding
f67081a01c
Allow unnecessary parentheses
...
Clippy emits:
warning: unnecessary parentheses around assigned value
Add a attribute to allow unnecessary parentheses.
2020-12-22 12:53:29 +11:00
Elichai Turkel
7b99784837
Add AligneType and redo secp256k1_context_create with alloc
2020-12-18 12:48:16 +02:00
Andrew Poelstra
0ec8fab82c
stop explicitly casting references to rawptrs
2020-11-30 02:47:34 +00:00
Andrew Poelstra
12b0abbcf8
make `ffi::Type::new` functions all unsafe, expand documentation
2020-11-27 18:42:12 +00:00
Tibo-lg
45a4459baf
Update secp256k1-sys to add schnorr/extra-keys
2020-11-09 16:00:28 +09:00
Tibo-lg
cfb565126a
Update depend folder to latest master
2020-10-12 21:35:28 +09:00
Elichai Turkel
48dd77e47b
Remove old deprecated blank functions
2020-08-27 22:52:16 +03:00
Elichai Turkel
9e5a351ea7
remove redundant code after MSRV bump
2020-08-27 22:51:36 +03:00
Elichai Turkel
1605bde420
replace privkey functions with seckey functions, deprecate privkey functions
2020-08-26 20:55:18 +00:00
Andrew Poelstra
1a9aece312
secp256k1-sys: update upstream to 670cdd3f8be25f81472b2d16dcd228b0d24a5c45
2020-08-26 18:07:41 +00:00
Andrew Poelstra
3692c94a0f
Merge pull request #220 from rantan/add_negate_support
...
Add negate support
2020-08-26 17:43:46 +00:00
Kohei Taniguchi
1742973a1f
Add fuzztarget for negation
2020-06-09 11:06:11 +09:00
Kohei Taniguchi
d45f709cd4
Add negation support
2020-06-09 10:05:07 +09:00
Matt Corallo
0052bc92fb
Expose the underlying array in addition to a ptr to the same
2020-06-01 14:35:31 -04:00
Elichai Turkel
affc6b4027
Add sanity checks for wasm32 for size and alignment of types
2020-04-29 15:32:57 -04:00
Elichai Turkel
931253d41e
Add a size_t type to types
2020-04-29 15:32:57 -04:00
Andrew Poelstra
9aa768df10
Merge pull request #195 from elichai/patch-1
...
Missing return c_int in NonceFn
2020-04-06 14:49:58 +00:00
Elichai Turkel
889e9a8740
Fix wrong feature name external-symbols
2020-02-09 16:37:39 +02:00
Elichai Turkel
f277530669
Fix missing return c_int in NonceFn
2020-01-26 14:20:26 +02:00
Elichai Turkel
89271c9c3c
Fix fuzztarget symbols
2020-01-09 16:56:10 +02:00
Steven Roose
987d556a67
Bump secp256k1-sys to v0.1.1
2019-12-11 15:55:00 +00:00
Elichai Turkel
ca8ea92418
Fixed secp256k1_ecdh fuzztarget
2019-12-05 18:05:36 +02:00
Elichai Turkel
9759cb07f5
Replace SharedSecret with a more generic alternative
2019-12-05 17:45:24 +02:00
Steven Roose
bf3fba71cb
Add external-symbols feature to support external libsecp
...
This feature disables using the bundles sources and will link into
existing libsecp256k1 symbols.
2019-11-27 21:04:32 +00:00
Steven Roose
55fab77029
Add vendor script to prefix secp256k1 sources
2019-11-27 21:03:48 +00:00
Steven Roose
724c49fff9
Add secp256k1-sys
2019-11-27 21:02:42 +00:00