Commit Graph

286 Commits

Author SHA1 Message Date
Elichai Turkel 2eff118d03
Simplify callback logic to returning raw coordinates 2020-03-01 13:46:25 +02:00
Elichai Turkel 2f897d8a93
Removed no longer used dont_replace_c_symbols feature 2020-02-09 16:37:59 +02:00
Andrew Poelstra 4b740911c6
Merge pull request #180 from elichai/2019-11-SharedSecret
Alternative: Passing custom hash functions to ECDH
2019-12-09 21:11:30 +00:00
Elichai Turkel 5619f2a5df
Add an unsafe variant of new_with_has called new_with_hash_no_panic 2019-12-09 22:53:24 +02:00
Elichai Turkel 124c1f3c7c
feature gate new_with_hash with std only, added catch_unwind 2019-12-05 18:05:40 +02:00
Elichai Turkel d2c4e5a846
Wrap Secp256k1 from raw context in a ManuallyDrop 2019-12-05 17:51:59 +02:00
Elichai Turkel f80428258c
Add tests for the new SharedSecret::new_with_hash() function 2019-12-05 17:46:24 +02:00
Elichai Turkel af8fa21a20
Add 'new_with_hash' function to SharedSecret 2019-12-05 17:46:23 +02:00
Elichai Turkel 9759cb07f5
Replace SharedSecret with a more generic alternative 2019-12-05 17:45:24 +02:00
Steven Roose 724c49fff9
Add secp256k1-sys 2019-11-27 21:02:42 +00:00
Andrew Poelstra 02f66177f0
Merge pull request #179 from elichai/2019-11-raw-context
Creating context from raw pointer
2019-11-27 20:34:43 +00:00
Elichai Turkel 9523e093c1
Add tests for raw context 2019-11-27 22:05:27 +02:00
Elichai Turkel 5f8096e8a8
Add functions to create from raw context 2019-11-27 22:05:23 +02:00
Andrew Poelstra cf22f60919
Merge pull request #162 from elichai/2019-09-ffi
Fixes and tests for the ffi
2019-11-27 20:01:17 +00:00
Andrew Poelstra 1e711f194c
Merge pull request #184 from elichai/2019-11-context
Fix a safety problem and make the Context trait unimplementable
2019-11-27 19:58:44 +00:00
Elichai Turkel 9522f7e4a4
Make Context::deallocate unsafe fn 2019-11-27 17:42:01 +02:00
Elichai Turkel fe688ada65
Make the Context trait unimplementable 2019-11-27 17:36:06 +02:00
Andrew Poelstra 47b2555e80
Merge pull request #182 from rodoufu/code_imp
Updating libraries and small code improvements
2019-11-22 16:02:33 +00:00
Tony Jin 1b0c57377a
Remove trailing whitespace 2019-11-20 20:36:18 +01:00
Rodolfo Araujo 825493bea9 Small code improvements. 2019-11-17 22:10:40 -03:00
Rodolfo Araujo a4ccab7431 Libraries. 2019-11-17 22:04:11 -03:00
Andrew Poelstra d900dcd1c9
Merge pull request #177 from elichai/2019-10-csymbols
Add a feature to disable replacing C symbols with rust
2019-10-29 01:39:08 +00:00
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
Matt Corallo f09ff2a9de Disable some useless lints 2019-10-28 15:20:04 -04:00
Elichai Turkel 06b2bebce8
Add a test for the types 2019-09-14 22:59:36 +03:00
Elichai Turkel 5b10d1b226
Fix bad ffi declarations 2019-09-14 21:12:59 +03:00
Andrew Poelstra eddfe03dbc
Merge pull request #151 from elichai/2019-08-Cptr-null
Explicit checks for ZST + null fallbacks
2019-08-21 23:03:30 +00:00
Elichai Turkel d7461e4cdc
Add zst tests and some other parsing tests 2019-08-21 18:06:02 -04:00
Elichai Turkel ddb8e4fdf2
Explicit checks for empty slices 2019-08-21 13:09:36 -04:00
Elichai Turkel b7e20c5b12
Changed all as_*ptr() to the safer CPtr trait 2019-08-21 13:09:36 -04:00
Elichai Turkel 66ab70f991
Added a C Ptr trait that returns a null pointer for ZSTs 2019-08-21 13:09:20 -04:00
Tim Ruffing 255d1ddd60 Remove TODOs for ffi functions for setting secp256k1 callbacks
We would not want to use these functions internally because we rely on
USE_EXTERNAL_DEFAULT_CALLBACKS to provide the callbacks at link time,
see f7a4a7ef57. Moreover, we would not
want to export the functions either.
2019-08-20 14:47:33 +02:00
Elichai Turkel 8e701b75b2
Replacing usage of the unsafe `blank` function to the `new` function
Signed-off-by: Elichai Turkel <elichai.turkel@gmail.com>
2019-08-16 14:15:31 -04:00
Elichai Turkel 389e1e2449
Removing usage of `mem::uninitialized()` and deprecating the `blank()` functions
Signed-off-by: Elichai Turkel <elichai.turkel@gmail.com>
2019-08-16 14:15:27 -04:00
Elichai Turkel 16fc4ee3fc Fixed the counter Rng 2019-08-13 10:41:39 -04:00
Steven Roose 0f25474805
Implement hex human-readable serde for PublicKey 2019-07-23 17:50:56 +02:00
Steven Roose ccac3ead25
Implement fmt::LowerHex for SecretKey and PublicKey 2019-07-23 17:50:54 +02:00
Elichai Turkel 7356705b61 Added a test for create/destroy functions 2019-07-14 16:35:51 -04:00
Elichai Turkel 75784ec26f Implemented context create/destroy in rust 2019-07-14 16:35:47 -04:00
Elichai Turkel 96ca40faed
Exposed generic functions to create the Context 2019-07-04 21:36:32 -04:00
Elichai Turkel 49f0cc1c46
Updated the fuzzing dummy functions 2019-07-04 19:13:26 -04:00
Elichai Turkel 811e8d24e9
Removed context_create/destroy/clone and scratch_create/destroy/clone functions. 2019-07-04 19:09:04 -04:00
Elichai Turkel 9186f0223a
Added preallocation size functions and added a test for the preallocation 2019-07-04 18:40:08 -04:00
Elichai Turkel 1c0ae7d4ba
Added structs and functions for manual allocation 2019-07-04 18:40:07 -04:00
Elichai Turkel b4b52a9858
Moved the context specific traits/enums into a separate file with `std` gate 2019-07-04 18:40:07 -04:00
Elichai Turkel 5f93474512
Added the preallocated FFI 2019-07-04 18:40:04 -04:00
Elichai Turkel 68c5c5edbf
implemented strlen to deref the callback message 2019-07-03 17:50:16 -04:00
Elichai Turkel 8022757681
Added a c_char implementation 2019-07-03 17:48:35 -04:00
Elichai Turkel f7a4a7ef57
Added manual external callbacks that panics 2019-07-03 17:48:35 -04:00
Jonas Nick 0e6ff34009 Fix imports when using recovery with fuzztarget feature 2019-05-29 00:02:11 +00:00
Elichai Turkel be457afdae
Removed ffi call from Display implementation 2019-05-21 22:05:18 +03:00
Andrew Poelstra 0bf88fe444
Merge pull request #109 from jonasnick/human-sigs
Add human readable serialization to Signatures
2019-05-21 17:50:41 +00:00
Jonas Nick ebf50df1d1 Add human readable serialization to Signatures 2019-05-21 10:34:18 +00:00
Jonas Nick 28934ab5a7 Only display existing signature bytes 2019-05-21 10:22:05 +00:00
Jonas Nick 16da1a854c Move recovery ffi into recovery module and feature gate C-secp recovery module 2019-05-21 07:52:08 +00:00
Jonas Nick c7eecd159e Feature gate recovery module 2019-05-21 07:02:11 +00:00
Jonas Nick 264b368ee0 Move recovery to its own module 2019-05-20 19:11:59 +00:00
Jonas Nick 3825ed35a7 Add human readable serialization and deserialization to Secret Key 2019-05-14 11:15:18 +00:00
Tim Ruffing ab4320f8cc
Merge pull request #100 from elichai/master
Add no-std support
2019-05-10 23:32:52 +02:00
Elichai Turkel dfcf74f9d0
Added a new struct for the DER serialized signature 2019-05-11 00:11:42 +03:00
Andrew Poelstra 90faf434c9
Merge pull request #104 from alekseysidorov/fix_rand
Fix `Rand` trait bounds.
2019-05-01 01:47:43 +00:00
Elichai Turkel 312b9a55fc
Added Error::description copied c_void impl from core::ffi::c_void 2019-04-30 22:07:27 +03:00
Jonas Nick 91c43e7320 Add as_mut_ptr to PublicKey 2019-04-16 18:48:24 +00:00
Aleksei Sidorov 2536c5a3c4 Fix rand trait bounds. 2019-04-16 16:35:33 +03:00
Elichai Turkel e98975a1c0
Added backwards support without the crate keyword 2019-04-14 12:09:43 +03:00
Elichai Turkel ab8066eb1a
Replaced the std::os::raw c types with types.rs 2019-04-14 12:09:42 +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
Jonas Nick 6eaacb19c5 Add raw context getter to Secp256k1 struct 2019-03-01 19:39:55 +00:00
François Garillot a8a3afe8db
Fix clippy errors
Changes include cargo-fix generated, Default impls
2019-02-25 20:12:25 -08:00
François Garillot bafef68c56
Bumps rand to 0.6.3 & associated updates 2019-02-25 20:09:43 -08:00
Matt Corallo f90e9f3454 Stop checking context flags for secp256k1_ecdh as its not required 2019-01-16 16:02:24 -05:00
Matt Corallo a74cbb6781 Sync fuzztarget combine with tweak_add since real functions do that
Some new fuzz tests I was writing ended up failing because two
nodes came up with different keys because adding public keys and
adding a tweak to a private key and multiplying by the generator
should get the same thing.
2019-01-08 16:12:40 -05:00
Pierre Krieger 9c45944a5f
Remove dependency on libc 2018-12-27 14:39:54 +01:00
Tim Ruffing b470f70e90
Merge pull request #57 from rust-bitcoin/2018-08-no-index
remove `ops::Index` impls for `Signature`
2018-12-03 14:27:08 +01:00
Andrew Poelstra e5a02bd9a0 add `ThirtyTwoByteHash` hash trait which can be implemented for easier conversion of things to `Message`s 2018-11-10 13:12:10 +00:00
Andrew Poelstra 1f4a4c11a3 change add_*_assign and mul_*_assign to use a byteslice as a tweak, rather than a `SecretKey`
This makes more conceptual sense and does not add any new error paths, since even
valid `SecretKey`s were able to be invalid tweaks.
2018-11-10 13:08:18 +00:00
Andrew Poelstra f93b959b4a disallow Messages that are not valid secret keys to prevent mistakes related to 0 2018-11-10 13:05:11 +00:00
Andrew Poelstra 8d2347602a remove `ops::Index` impls for `Signature` 2018-11-10 12:56:19 +00:00
Andrew Poelstra 7fbaf2f91b remove unsafe ZERO_KEY and deprecated ONE 2018-11-10 12:56:19 +00:00
Andrew Poelstra 4b88cfc2fc
Merge pull request #78 from rust-bitcoin/2018-11-remove-without-caps
Update upstream libsecp; remove `without_caps` and all use of dummy contexts
2018-11-10 12:51:14 +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 223eb41fd0 remove context object from ECDH 2018-11-06 22:16:24 +00:00
Andrew Poelstra 93abca5896 remove `without_caps` and every function that used a cap-less context 2018-11-06 22:16:24 +00:00
Andrew Poelstra 4653100b7a update upstream libsecp256k1 to 314a61d72474aa29ff4afba8472553ad91d88e9d 2018-11-06 22:16:13 +00:00
Andrew Poelstra 68c838f357 change `Debug` impl for `Signature` to use `Display` 2018-11-03 15:52:07 +00:00
Andrew Poelstra 30aa3a0c28 add `fmt::Display` and `str::FromStr` impls for `Signature` 2018-11-03 15:52:05 +00:00
Andrew Poelstra 572adb2873 add `FromStr` implementation for key types 2018-11-03 15:52:03 +00:00
Andrew Poelstra a810880c54 restore missing `mem` import in key.rs 2018-08-22 20:43:20 +00:00
Andrew Poelstra 0d41c23c21 Revert "remove PublicKey::combine"
This reverts commit 17450e91fd.
2018-08-22 20:18:25 +00:00
Andrew Poelstra c773dfbc8d remove unused import that was causing warning 2018-08-22 16:40:05 +00:00
Andrew Poelstra 2c18a16858
Merge pull request #50 from rust-bitcoin/2018-08-no-combine
remove PublicKey::combine
2018-08-21 18:36:27 +00:00
Andrew Poelstra 3563c5f305
Merge pull request #46 from rust-bitcoin/2018-08-context-debug
add Debug impl to context object
2018-08-20 18:34:13 +00:00
Andrew Poelstra 1f73a784cb
Merge pull request #52 from rust-bitcoin/2018-08-display-keys
add Display impl for the key types which outputs their hex representation
2018-08-20 18:32:53 +00:00
Andrew Poelstra 7a5617d01d
Merge pull request #44 from rust-bitcoin/2018-07-docs
improve documentation
2018-08-20 18:12:42 +00:00
Andrew Poelstra 93d8249028 improve documentation 2018-08-20 17:56:46 +00:00
Andrew Poelstra 7d2474b10a add Display impl for the key types which outputs their hex representation
Since making PublicKey::serialize return a fixed-size array, this no longer
requires any allocation, so there's no reason not to have it.
2018-08-15 20:40:15 +00:00
Andrew Poelstra 17450e91fd remove PublicKey::combine 2018-08-15 16:29:23 +00:00
Dimitris Apostolou 5c6dcf6b5e
Fix typo 2018-08-15 11:03:22 +03:00
Andrew Poelstra 83c7b6d9b7 add Debug impl to context object 2018-08-12 15:23:05 +00:00
Andrew Poelstra 2478930ec1 add feature-gated serde 1.0 support for Signature, SecretKey, PublicKey 2018-07-25 14:44:51 +00:00