Matt Corallo
ee1103a1f3
Reduce visibility on secp-sys symbols
...
cc-rs builds C dependencies with reduced visibility to avoid
exporting the C symbols all the way out to any rust-built shared
libraries however we override it with SECP256K1_API. We should
avoid doing this, allowing LTO/DCE to do its work.
2021-04-07 11:21:16 -04:00
Andrew Poelstra
63f4de78ce
Merge pull request #290 from real-or-random/202103_panic_from_c
...
Manually test that panicking from C will abort the process
2021-04-07 15:00:58 +00:00
Tim Ruffing
1eb2c32df7
Manually test that panicking from C will abort the process
...
Panicking from C is not UB in newer rust versions and will reliably
trigger an abort (without unwinding). In older rust versions, it is
technically UB but empirically it seems to "just work" (and what should
it realistically do except crashing, which is what we intent).
Since there's potentially no unwinding, we can't test this behavior
using [should_panic]. This PR will instead check the libtest output
explicitly in our CI tests.
Fixes #228 .
2021-03-24 21:54:02 +01:00
Andrew Poelstra
4ae0e7ebd1
Merge pull request #284 from fanatid/patch-1
...
Use CARGO_CFG_TARGET_ARCH instead TARGET in build.rs
2021-03-12 19:18:24 +00:00
Kirill Fomichev
0a91f2ba2b
Use CARGO_CFG_TARGET_ARCH instead TARGET in build.rs
2021-03-08 22:54:21 +03:00
Andrew Poelstra
3bff596948
Merge pull request #277 from LNP-BP/fix/error-derive
...
More standard derives for Error
2021-02-10 18:03:34 +00:00
Dr Maxim Orlovsky
519857cd83
More standard derives for Error
2021-01-30 12:35:41 +01:00
Andrew Poelstra
8e61874d77
Merge pull request #275 from gregdhill/master
...
use core instead of std for wasm sanity checks
2021-01-25 16:00:35 +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
a24e27e94b
Merge pull request #269 from apoelstra/2021-01--rename-fuzz-feature
...
Rename `rust_secp_fuzz` config flag to `fuzzing`
2021-01-15 15:00:23 +00:00
Andrew Poelstra
ca3caf9c94
bump version to 0.20.1
2021-01-11 19:15:10 +00:00
Andrew Poelstra
65ff814a39
rename `rust_secp_fuzz` to `fuzzing`
2021-01-11 19:14:42 +00:00
Andrew Poelstra
5f1622f917
Merge pull request #257 from apoelstra/2020-12--no-endo
...
update libsecp, remove endomorphism feature flag and release 0.20.0
2021-01-03 20:10:23 +00:00
Andrew Poelstra
c534b54e11
Merge pull request #267 from TheBlueMatt/master
...
Add ability to randomize context without the `rand` feature.
2020-12-29 22:25:15 +00:00
Matt Corallo
1f043216a0
Add ability to randomize context without the `rand` feature.
...
There is little reason to pull in the `rand` dep just for the `Rng`
trait for users who want to randomize contexts. We should expose a
randomize function that just takes 32 bytes.
2020-12-29 16:45:07 -05:00
Andrew Poelstra
c4d2fefa70
rust-secp 0.20.0
2020-12-29 19:31:24 +00:00
Andrew Poelstra
d12be7966c
drop unnecessary no_mangle annotations on non-exported functions
2020-12-29 19:30:59 +00:00
Andrew Poelstra
58f946fcc8
secp-sys: remove now-unneeded endianness check from build.rs
2020-12-29 17:15:56 +00:00
Andrew Poelstra
e687622a81
bump secp-sys version; drop endomorphism flag
2020-12-29 17:15:56 +00:00
Andrew Poelstra
a93d671d05
update libsecp to 98dac87839838b86094f1bccc71cc20e67b146cc
2020-12-29 17:15:51 +00:00
Andrew Poelstra
e5d9e088cf
secp-sys: update scratch_impl.patch for upstream changes
2020-12-29 17:15:21 +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
867b920aac
Merge pull request #264 from rust-bitcoin/2020-12--no-extsymb2
...
redo fuzz target
2020-12-28 19:48:11 +00:00
Andrew Poelstra
75d717729a
fuzz: fix elichai's nits
2020-12-28 19:01:12 +00:00
Andrew Poelstra
d1714ce0ac
fuzz: disable sig-grinding tests, prevent spin-looping
2020-12-28 18:55:33 +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
91eea119b3
Merge pull request #256 from rust-bitcoin/workspace
...
Make test.sh test and build secp256k1-sys
2020-12-23 17:58:34 +00:00
Elichai Turkel
21f231bf4d
Make test.sh test and build secp256k1-sys
2020-12-23 12:01:34 +02:00
Andrew Poelstra
a2c25f2e83
Merge pull request #259 from p2pderivatives/implement-low-r-signing
...
Implement low r signing
2020-12-22 23:28:34 +00:00
Andrew Poelstra
67c9be3c3e
Merge pull request #263 from apoelstra/2020-12--no-extsymb
...
Replace dangerous cargo features with rustc flags
2020-12-22 21:24:47 +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
Andrew Poelstra
b31bf2f611
Merge pull request #258 from thomaseizinger/better-wasm-tests
...
Run more tests in wasm
2020-12-22 06:12:01 +00:00
Tibo-lg
1d166d061b
Implement low r signing
2020-12-22 14:50:37 +09:00
Andrew Poelstra
2917de5ca7
Merge pull request #261 from tcharding/more-clippy
...
More clippy
2020-12-22 04:34:09 +00:00
Tobin Harding
a584643486
Use ManuallyDrop
...
Suggested by clippy, we need to use ManuallyDrop for these types in
order to correctly free up the memory.
2020-12-22 14:56:17 +11:00
Tobin Harding
c38136b6bc
Use for loop instead of map
...
Currently we are misusing `map` on an iterator to loop `n` times,
additionally the assertion is pointless. Use a for loop and assert
against the length of the set.
2020-12-22 14:56:17 +11:00
Tobin Harding
c92b946493
Remove unnecessary clone
...
Type is `Copy`, no need for clone.
2020-12-22 14:56:17 +11:00
Tobin Harding
ef23cb8167
Return Ok directly
...
Clippy emits warning:
warning: passing a unit value to a function
Just return `Ok(())` after calling `fill_bytes`.
2020-12-22 14:56:17 +11:00
Tobin Harding
34ad4110f1
Remove unused error return value
...
This helper never returns an error, remove the `Result` return type.
Found by clippy.
2020-12-22 14:56:17 +11:00
Tobin Harding
ed29f12216
Remove unnecessary return statements
...
Found by clippy. We don't need a `return` for the final statement.
2020-12-22 13:38:02 +11:00
Tobin Harding
4e87e6fe94
Implement is_empty method
...
Clippy warns of missing `is_empty`, trivially implement it by calling
through to `self.data.is_empty()`.
2020-12-22 13:37:25 +11:00
Andrew Poelstra
1a818ea099
Merge pull request #260 from tcharding/clippy
...
Clear clippy warnings
2020-12-22 02:18:24 +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