Commit Graph

183 Commits

Author SHA1 Message Date
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