Commit Graph

286 Commits

Author SHA1 Message Date
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
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 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 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
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
Thomas Eizinger 8b8e482f79
Run more tests in wasm
Instead of repeating ourselves in defining one big test for the wasm
target, we can override the `test` attribute with the `wasm-bindgen-test`
one and therefore automatically run all (supported) tests in wasm.

Unfortunately, wasm doesn't support catching panics yet which means we
have to disable the `test_panic_raw_ctx` test.
2020-12-22 10:30:56 +11:00
Elichai Turkel 767246a282
Make preallocated use AlignedType 2020-12-18 12:48:19 +02:00
Elichai Turkel fd206ab57c
Replace use of boxes with global allocator 2020-12-18 12:48:19 +02:00
Andrew Poelstra ea027ce258 schnorrsig: change tweak_add_check to return a bool, take a fixed-length array 2020-12-09 16:49:48 +00:00
Andrew Poelstra 0ec8fab82c stop explicitly casting references to rawptrs 2020-11-30 02:47:34 +00:00
Andrew Poelstra 37049d743e schnorrsig: expose tweak_check_add API 2020-11-27 18:42:14 +00:00
Andrew Poelstra 12b0abbcf8 make `ffi::Type::new` functions all unsafe, expand documentation 2020-11-27 18:42:12 +00:00
Andrew Poelstra be9a78f39e
Merge pull request #237 from p2pderivatives/add-bip340-schnorr
Add bip340 schnorr
2020-11-27 18:04:44 +00:00
Andrew Poelstra 9083babbe2
Merge pull request #248 from justinmoon/pubkey-ordering
Implement lexigraphic ordering for PubKey
2020-11-26 03:03:17 +00:00
Justin Moon 6f8a480974 Implement lexigraphic ordering for PubKey 2020-11-25 19:27:31 -06:00
Andrew Poelstra 1859ddc28a switch from travis to github workflows 2020-11-10 23:58:03 +00:00
Tibo-lg 0c937d04f5 Add key::PublicKey to schnorrsig::PublicKey conversion 2020-11-10 14:15:34 +09:00
Tibo-lg 09b04560bc Add schnorrsig module 2020-11-10 13:43:34 +09:00
Tibo-lg 47b33828bc Add serde macros for public keys 2020-11-09 16:00:28 +09:00
Elichai Turkel 9e5a351ea7
remove redundant code after MSRV bump 2020-08-27 22:51:36 +03:00
Andrew Poelstra 19f5138925 Update MSRV to 1.29; increase version to 0.19 and -sys version to 0.3 2020-08-27 14:18:06 +00:00
Elichai Turkel c69d43d84e Update key.rs to use the new seckey functions 2020-08-26 21:16:19 +00:00
Andrew Poelstra 5c451f78c6
Merge pull request #207 from sorpaas/sp-message-zero
Allow all-zero messages
2020-08-26 18:02:51 +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
Sebastian Geisler 2046a40905 Randomize context on initialization
Signed-off-by: Sebastian Geisler <sebastian@blockstream.io>
2020-08-03 12:07:26 +02:00
Sebastian Geisler a959de4174 Add an optional global, static context 2020-07-08 16:05:42 +02:00
Kohei Taniguchi 02ed0616e4 Add assert for the response of ffi negate interface
The interfaces for negate should always returns 1 as mentioned secp256k1.h L574, L563.
But in the future it might return 0 if the seckey or pubkey is invalid, but our type system doesn't allow that to ever happen.
2020-06-10 09:59:55 +09:00
Kohei Taniguchi d45f709cd4 Add negation support 2020-06-09 10:05:07 +09:00
Sebastian Geisler 8979a932ab Document proper usage of `from_slice` 2020-05-14 18:24:40 +02:00
Sebastian Geisler 0d857533fa Add optional bitcoin_hashes feature to implement ThirtyTwoByteHash 2020-05-14 18:24:39 +02:00
Kirill Fomichev 0dcc59c2b9
Add doctest to Secp256k1::verify 2020-05-05 17:30:07 +03:00
Andrew Poelstra 0782872fb0
Merge pull request #208 from TheBlueMatt/202-04-wasm
Re-support WASM via simple stub headers
2020-04-29 19:48:03 +00:00
Elichai Turkel affc6b4027 Add sanity checks for wasm32 for size and alignment of types 2020-04-29 15:32:57 -04:00
Matt Corallo d9d398ccc9 Re-support WASM via simple stub headers
libsecp256k1 really only barely uses libc at all, and in practice,
things like memcpy/memcmp get optimized into something other than a
libc call. Thus, if we provide simple stub headers, things seem to
work with wasm-pack just fine.
2020-04-29 15:32:54 -04:00
Kirill Fomichev 99a43ced56
Fix Secp256k1::verify docs 2020-04-22 17:58:27 +03:00
Wei Tang 9250ae49ce Allow all-zero messages 2020-04-09 14:26:31 +02:00
Andrew Poelstra 86751b2d74
Merge pull request #201 from elichai/2020-03-ecdh
Simplify callback logic to returning raw coordinates
2020-04-06 14:48:57 +00:00
Andrew Poelstra 3fd089712c
Merge pull request #205 from elichai/2020-03-bench
Fix broken benchmarks
2020-04-05 21:38:33 +00:00
Elichai Turkel b2edf157cd
Fix broken benchmarks 2020-04-05 11:08:29 +03:00
Andrew Poelstra ab59498e04
Merge pull request #199 from elichai/2020-02-external-symbols
Fix typos in the external-symbols feature(bug)
2020-04-04 21:31:13 +00:00
Kohei Taniguchi 4b410fc202 Add constant of the prime of the curve field. 2020-03-06 09:15:32 +09:00