Elichai Turkel
349b2eac06
Add a 'dont_replace_c_symbols' feature for not replacing C's symbols with rust. isn't compatible with no-std
2019-10-28 23:05:38 +02:00
Elichai Turkel
7e5916b61f
Aded an example for recoverable signatures and recovering the pubkey
2019-10-28 22:23:56 +02:00
Elichai Turkel
e28f756788
Added an example for signing and verification
2019-10-28 22:09:59 +02:00
Elichai Turkel
5ee0afbde4
Added an example for generating keys using OsRng
2019-10-28 22:09:18 +02:00
Andrew Poelstra
0c901db9d4
bump version to 0.15.5
2019-09-09 10:04:10 +00:00
Andrew Poelstra
bbab1c271a
Revert "Add a rand-std feature"
2019-09-09 07:30:30 +00:00
Steven Roose
845bff25da
Bump version to 0.15.4
2019-09-06 17:15:49 +01:00
Steven Roose
07ef3a1f45
Pin version of build dependency cc to <1.0.42
...
Version 1.0.42 broke compatibility with rustc 1.22.0.
2019-09-06 17:11:18 +01:00
Elichai Turkel
b59f4ff589
Add a rand-std feature
2019-08-21 20:16:11 -04:00
Elichai Turkel
f75772b385
Bump version to 0.15.3
2019-08-16 14:15:31 -04:00
Wladimir J. van der Laan
62e5178638
Bump version to 0.15.2
...
And fill in release date for 0.15.2.
2019-08-12 19:21:28 +02:00
Wladimir J. van der Laan
62b9f06104
build.rs: Add feature 'lowmemory' to reduce memory usage
...
Currently, this only set `ECMULT_WINDOW_SIZE` to 4 instead of 15.
Fixes #139 .
fixup
2019-08-12 19:21:22 +02:00
Elichai Turkel
d820988d8b
Bump version to 0.15.1
2019-08-01 13:00:22 -04:00
Elichai Turkel
9fd088c21d
Removed the fuzztarget feature from the docs
2019-08-01 13:00:04 -04:00
Elichai Turkel
e081a98005
Propagating std to rand dependency
2019-08-01 12:46:16 -04:00
Jonas Nick
58e820014e
bump version to 0.15.0
2019-07-25 13:06:07 +00:00
Jonas Nick
cf6f95d105
Merge pull request #131 from elichai/cc
...
Relax cc requirements more
2019-07-25 12:55:48 +00:00
Tim Ruffing
84345f2923
Merge pull request #129 from jonasnick/add-links
...
Add links manifest key to prevent cross-version linkage
2019-07-18 12:08:35 +02:00
Elichai Turkel
c13183bc53
Relax cc requirements more
2019-07-16 16:46:28 -04:00
Elichai Turkel
a4f6b2786a
Bump version to 0.14.1
2019-07-14 16:35:51 -04:00
Jonas Nick
d62c1371ef
Add links manifest key to prevent cross-version linkage
2019-07-12 14:31:11 +00:00
Andrew Poelstra
a92a63081b
bump version to 0.14.0
2019-07-08 13:57:52 +00:00
Jonas Nick
179f35e0ba
Move libsecp USE_ENDOMORPHISM option behind non-default feature flag
2019-06-13 06:38:18 +00:00
Jonas Nick
ce7b03952b
Bump version to 0.13.0
2019-05-21 18:35:28 +00:00
Jonas Nick
c7eecd159e
Feature gate recovery module
2019-05-21 07:02:11 +00:00
Tim Ruffing
ab4320f8cc
Merge pull request #100 from elichai/master
...
Add no-std support
2019-05-10 23:32:52 +02:00
Andrew Poelstra
90faf434c9
Merge pull request #104 from alekseysidorov/fix_rand
...
Fix `Rand` trait bounds.
2019-05-01 01:47:43 +00:00
Aleksei Sidorov
733755d19e
Relax cc dependency requirements.
...
- set allowed versions range for the `cc` dependency
2019-04-24 17:20:11 +03:00
Aleksei Sidorov
2536c5a3c4
Fix rand trait bounds.
2019-04-16 16:35:33 +03:00
Elichai Turkel
11ce86681f
Replaced std with core, and made std::error::Error optional through feature
2019-04-14 12:09:36 +03:00
François Garillot
e69eabb36f
Bumping minimum Rust version 1.14.0 -> 1.22.0, as per https://git.io/fhDLO
2019-02-25 20:09:44 -08:00
François Garillot
bafef68c56
Bumps rand to 0.6.3 & associated updates
2019-02-25 20:09:43 -08:00
Andrew Poelstra
432face734
bump version to 0.12.2
2019-01-18 15:35:44 +00:00
Andrew Poelstra
0466b5ed75
Merge pull request #93 from rust-bitcoin/2019-0.12.1
...
bump version to 0.12.1
2019-01-15 17:27:49 +00:00
Andrew Poelstra
dd8866c144
bump version to 0.12.1
2019-01-15 16:32:55 +00:00
Pierre Krieger
9c45944a5f
Remove dependency on libc
2018-12-27 14:39:54 +01:00
Matt Corallo
34aadb72d4
Fix cc dep as the rust ecosystem is terrible
2018-12-19 15:25:47 -05:00
Andrew Poelstra
05885975ab
bump version to 0.12
2018-12-03 13:54:17 +00:00
Andrew Poelstra
8986aa3d71
export `serde`, `rand` and `libc`; update version to 0.11.5
2018-11-07 20:18:55 +00:00
Andrew Poelstra
4819c5aabd
bump version to 0.11.4
2018-11-06 20:38:09 +00:00
Andrew Poelstra
f5e3e17be6
bump version to 0.11.3
2018-09-21 17:14:19 +00:00
Andrew Poelstra
d41fc90972
Merge pull request #66 from rust-bitcoin/2018-09-docs-fix
...
attempt to fix docs.rs docs
2018-09-14 15:15:00 +00:00
Andrew Poelstra
4298438aaa
bump version to 0.11.2
2018-09-11 18:06:30 +00:00
Andrew Poelstra
d1e449a14b
attempt to fix docs.rs docs
2018-09-04 14:28:15 +00:00
Andrew Poelstra
6f025a36a5
bump version to 0.11.1
2018-08-22 20:43:20 +00:00
Andrew Poelstra
ce91fa0f38
bump version to 0.11
2018-08-22 16:40:05 +00:00
Andrew Poelstra
93d8249028
improve documentation
2018-08-20 17:56:46 +00:00
Andrew Poelstra
d4149be931
update `rand` to 0.4
2018-07-30 03:03:20 +00:00
Andrew Poelstra
6f27422c4c
update gcc 0.3 to cc 1.0
2018-07-30 02:53:35 +00:00
Andrew Poelstra
9fe5150480
bump version to 0.10.0; introduce CHANGELOG.md
2018-07-25 23:49:48 +00:00
Andrew Poelstra
2478930ec1
add feature-gated serde 1.0 support for Signature, SecretKey, PublicKey
2018-07-25 14:44:51 +00:00
Roman Zeyde
9a7cfd7072
Use latest version at docs.rs
2018-07-09 15:13:13 +03:00
Andrew Poelstra
2769d66370
bump version to 0.9.2
2018-06-04 19:37:50 +00:00
Aleksey Sidorov
eb51c28df5
Bump crate version
2018-05-22 12:34:04 +03:00
Matt Corallo
758380991a
Bump major version
2018-03-21 18:05:04 -04:00
Matt Corallo
e1878c4522
Remove all serde/rustc-serialize stuff
2018-03-21 18:01:33 -04:00
Matt Corallo
e5e36c4854
Bump minor version for fuzztarget feature addition
2018-03-20 12:55:29 -04:00
Matt Corallo
5a7c88b9c7
Add fuzztarget feature that replaces crypto with memcpys
2018-03-20 11:58:59 -04:00
Andrew Poelstra
e08ddbc613
update github links in Cargo.toml, bump version number to republish
2018-03-05 19:42:39 +00:00
Andrew Poelstra
c03d5ab819
Change documentation link, increment version so I can republish
2018-02-25 22:51:16 +00:00
Andrew Poelstra
6d4f64f901
fix potential unsafety bug for non-u8 types in macros
...
We don't have any non-u8 newtypes but better safe than sorry. See
https://github.com/apoelstra/rust-bitcoin/pull/45/
2018-02-14 16:25:45 +00:00
Andrew Poelstra
2c5f45e165
expose 2-key version of PublicKey::combine
2017-12-21 01:04:07 +00:00
Andrew Poelstra
5c54698bf9
make `serde` optional
2017-12-19 22:40:06 +00:00
Andrew Poelstra
12e9f4b90b
make `rustc-serialize` crate optional
2017-12-19 22:36:30 +00:00
Andrew Poelstra
298929600b
make `rand` crate optional
2017-12-19 22:36:27 +00:00
Andrew Poelstra
dba0d67912
remove arrayvec dependency; rename PublicKey::serialize_vec
2017-12-19 20:36:46 +00:00
Tim Ruffing
b4a41a8ed2
Bump version to 0.7.1
2017-07-22 00:06:40 +02:00
Tim Ruffing
a400e1678e
Bump version to 0.7.0 for serde update
2017-07-21 22:22:55 +02:00
Tim Ruffing
76d160344b
Update serde to 1.0
2017-07-21 22:15:00 +02:00
Andrew Poelstra
b6887b44a0
add compact signature encoding
2017-07-12 19:55:06 +00:00
Andrew Poelstra
c1951d6025
Update to 0.6.2 for git bs
2017-05-08 13:53:58 +00:00
Andrew Poelstra
5a5048d544
Bump version to 0.6.1 for new PT changes
2017-05-08 13:53:34 +00:00
Andrew Poelstra
f272b8345f
Increase libc to 0.2
...
Annoyingly, this is a major version bump since we expose libc types in the FFI module
2016-10-10 13:12:12 +00:00
Andrew Poelstra
5b906ec069
expose *_tweak_mul functions
2016-08-20 17:00:39 +00:00
Andrew Poelstra
9e3b93d572
Add ZERO_KEY and ONE_KEY constants
...
Turns out you cannot initialize constant SecretKeys in any way; these
two constants should cover most sane use cases (other good choices
are the SECG generator and the Alpha CT generator, but these will
wait for a major CT-supporting upgrade, unless demand for them appears.)
2016-08-07 21:33:38 +00:00
Andrew Poelstra
cfde1f9925
Add missing schnorr.rs
2015-12-20 13:47:53 -06:00
Andrew Poelstra
4f83a83308
cleanup: remove unused attributes; add `dev` compile feature that'll run clippy
2015-12-19 20:20:47 -06:00
Andrew Poelstra
d45d026901
Bump minor version number for addition of Schnorr functionality
2015-12-15 12:49:57 -06:00
Andrew Poelstra
9a91b69fad
Remove side-effect from assertion; add release build to travis
2015-11-18 18:22:16 -06:00
Andrew Poelstra
d35168d626
[BREAKING CHANGE] Fix FFI
2015-11-15 17:00:07 -06:00
Andrew Poelstra
54632bf789
Bump minor version number
...
We had added a necessary include directory to build.rs but not updated the
library on crates.io, so dependencies of rust-secp were failing to build.
(However, on my local system I had secp installed in /usr/local/include,
so I did not notice the problem until Travis pointed it out on a different
project!)
2015-11-08 15:11:15 -06:00
Andrew Poelstra
a65f4cf01f
Expose normalize_s function to convert signatures to low-S form
2015-10-26 14:25:18 -05:00
Andrew Poelstra
8e984c5912
Add "lax DER" support; bump major version number for recent build system changes
2015-10-26 12:59:40 -05:00
Andrew Poelstra
e7ca836c2b
Switch to static linking of secp256k1
...
Pieter moved some stuff I need into the contrib/ directory which does
not expose anything through the shared lib, so I need to statically
link.
I might also use this to do evil things to expose the SHA256 code
in libsecp, but not for now ;).
2015-10-26 10:28:01 -05:00
Andrew Poelstra
f1e1da1213
Update for breaking changes in underlying rustc.
...
This should be a major version number since I changed public constants
in the ffi module. I'm not doing so as the invariant "will the constants
be meaningful to the underlying library" has not changed.
In general this library's version numbers do not map well to the
underlying library, which is as-yet not versioned at all, so users
need to always be running "the lastest" rust-secp256k1 anyway, and
semantic versioning can't really be used meaninfully. So this is a
bit of a judgement call.
2015-10-25 18:26:08 -05:00
Andrew Poelstra
d49db8167e
impl Error for error type; remove `Unknown` error variant
2015-10-17 09:49:19 -05:00
Andrew Poelstra
7c85199b92
Bump minor version number as error returns of PK::add_exp_assign have changed
2015-10-14 12:26:51 -05:00
Andrew Poelstra
c84cfb193f
[BREAKING CHANGE] Make PK::from_secret_key() return a Result; change from_ffi functions to From impls
...
If you try to call PublicKey::from_secret() key with an incapable context it will
now return an error. Before it would pass through to the underlying library which
would terminate the process, something we strive to never expose.
Also change the from_ffi functions on various types to impl's of From to be more
Rustic. We cannot change the from_slice functions because they have error returns.
Also add a Secp256k1::without_caps() function which creates a capability-less
context. I find myself using this in so many places downstream that it seems
appropriate.
2015-10-14 09:38:43 -05:00
Andrew Poelstra
701c5e5e08
Expose serialization of Signature; move copy_nonoverlapping for rustc stable
2015-10-09 14:20:21 -05:00
Andrew Poelstra
b978e76934
Drop some unused imports; bump version no
2015-09-20 15:30:43 -05:00
Andrew Poelstra
cc68cf8b9e
Update serde dep to 0.6 from 0.3
2015-09-20 13:29:09 -05:00
Andrew Poelstra
8d6f384dac
Update Travis to use travis-cargo
2015-07-28 13:21:12 -05:00
Andrew Poelstra
77f6b6bf21
[API BREAK] Update for new libsecp256k1 API
2015-07-28 11:05:13 -05:00
Andrew Poelstra
0de8bfabb6
Fix typo in Andrew's email address; remove rust-crypto dependency
2015-05-04 10:37:04 -05:00
Andrew Poelstra
5bea30dbb9
Update Cargo.toml for crates.io metadata; this marks the "official" 0.1.0 release
2015-05-04 10:32:45 -05:00
Andrew Poelstra
ac61baf040
Add support for serde (de)serialization; add unit tests
2015-04-10 00:32:12 -05:00
Andrew Poelstra
1b2858bc8a
Rename secp256k1.rs to lib.rs
2015-04-09 10:35:38 -05:00
Andrew Poelstra
ec6aea7ca1
Fiddle with crates, `cargo build` now succeeds :)
2015-03-25 20:44:04 -05:00
Andrew Poelstra
f910355043
Change rand crate to crates.io version
2015-03-25 18:57:16 -05:00
Andrew Poelstra
d2fcbbe95a
Change name to secp256k1 from bitcoin-secp256k1-rs
...
[breaking-change]
2015-03-25 17:20:44 -05:00
Andrew Poelstra
9cab4e023d
Revert "Overhaul interface to use zero-on-free SecretKeys"
...
This reverts commit 9889090784
.
This is not ready for primetime -- the move prevention also prevents
reborrowing, which makes secret keys nearly unusable.
2014-09-12 08:28:35 -05:00
Andrew Poelstra
9889090784
Overhaul interface to use zero-on-free SecretKeys
...
Using the `secretdata` library, we can store SecretKeys in such a way
that they cannot be moved or copied, and their memory is zeroed out on
drop. This gives us some assurance that in the case of memory unsafety,
there is not secret key data lying around anywhere that we don't expect.
Unfortunately, it means that we cannot construct secret keys and then
return them, which forces the interface to change a fair bit. I removed
the `generate_keypair` function from Secp256k1, then `generate_nonce`
for symmetry, then dropped the `Secp256k1` struct entirely because it
turned out that none of the remaining functions used the `self` param.
So here we are. I bumped the version number. Sorry about this.
2014-09-12 08:28:26 -05:00
Andrew Poelstra
d94345f721
Generate keys from Fortuna rather than always using the OsRng
...
When creating a Secp256k1, we attach a Fortuna CSRNG seeded from the
OS RNG, rather than using the OS RNG all the time. This moves the
potential RNG failure to the creation of the object, rather than at
every single place that keys are generated. It also reduces trust
in the operating system RNG.
This does mean that Secp256k1::new() now returns an IoResult while
the generate_* methods no longer return Results, so this is a breaking
change.
Also add a benchmark for key generation. On my system I get:
test tests::generate_compressed ... bench: 492990 ns/iter (+/- 27981)
test tests::generate_uncompressed ... bench: 495148 ns/iter (+/- 29829)
Contrast the numbers with OsRng:
test tests::generate_compressed ... bench: 66691 ns/iter (+/- 3640)
test tests::generate_uncompressed ... bench: 67148 ns/iter (+/- 3806)
Not too shabby :)
[breaking-change]
2014-08-31 22:26:02 -05:00
Andrew Poelstra
79815e225b
Add .travis.yml, update tests and Cargo.toml for upstream changes
2014-08-17 18:58:20 -07:00
Dawid Ciężarkiewicz
4c9f47e108
Update for newest Cargo
2014-07-23 16:34:04 -07:00
Dawid Ciężarkiewicz
05406515b8
Initial (failing) implementation.
2014-07-06 22:41:22 -07:00