Commit Graph

19 Commits

Author SHA1 Message Date
2c66f82b11 Consolidate keypairs in core. (#972)
* Consolidate keypairs in core.

Introduce the concept of a node's identity keypair in libp2p-core,
instead of only the public key:

  * New module: libp2p_core::identity with submodules for the currently
    supported key types. An identity::Keypair and identity::PublicKey
    support the creation and verification of signatures. The public key
    supports encoding/decoding according to the libp2p specs.

  * The secio protocol is simplified as a result of moving code to libp2p-core.

  * The noise protocol is slightly simplified by consolidating ed25519
    keypairs in libp2p-core and using x25519-dalek for DH. Furthermore,
    Ed25519 to X25519 keypair conversion is now complete and tested.

Generalise over the DH keys in the noise protocol.

Generalise over the DH keys and thus DH parameter in handshake patterns
of the Noise protocol, such that it is easy to support other DH schemes
in the future, e.g. X448.

* Address new review comments.
2019-03-11 13:42:53 +01:00
bf5ed98895 Update Dependencies (#931)
* update secio dependencies: ed25519-dalek, sha2, hmac
* Update websocket dependencies
* Update multiaddr dependencies
2019-02-08 08:56:31 +01:00
e23b2733e2 Fix some rustc/clippy warnings. (#895) 2019-01-30 15:41:54 +01:00
25433d6dd2 Update ring to version 0.14 (#885)
This release enables RSA signing by default, hence the `rsa_signing` feature has been removed.
2019-01-23 16:09:52 +01:00
67a8e705a7 Cache the secp256k1 object in secio (#856)
* Cache the secp256k1 object in secio

* Fix feature flag disabled
2019-01-15 17:14:58 +01:00
9ca215b1a3 Test on wasm32-unknown-unknown (#806)
* Test on wasm32-unknown-unknown

* Fix compilation
2019-01-02 15:50:08 +01:00
e2ff74994c Upgrade secio to the 2018 edition (#774)
* Upgrade secio to the 2018 edition

* Fix build with features on

* Fix emscripten build
2018-12-13 18:54:28 +01:00
a5fee2dbac secio: Defer nonce verification. (#667) 2018-11-21 10:39:48 +01:00
3e1eca16d7 Use upstream rust-secp256k1 (#616) 2018-11-09 15:02:27 +01:00
45cd7db6e9 Remove spaces before semicolons (#591) 2018-10-29 10:38:32 +01:00
490ae980c7 #399 remove tokio_current_thread tests (#577)
* remove tokio_current_thread tests

* Review changes:
Removed newline
Moved uds tokio test crate to top to avoid self and keep with convention of other test crates
Removed sleep from uds test and block until all futures are completed.
2018-10-25 11:26:37 +02:00
f2c3a149d7 Model HandshakeContext with explicit state transitions. (#532)
Instead of having one struct with uninitialised fields
which are mutated, have explicit states and ensure that the types
show that there is no ambiguity which data is available or not.
Consequently, this removes quite a few `unwrap`/`expect` calls.
2018-10-08 14:37:36 +02:00
e3efc2dc9a Make secio almost compile for asmjs/wasm (#519)
* Use the sha2 crate in the handshake

* Return a Digest in algo_support instead of a ring ref

* Switch to ed25519-dalek for keys

* Make ring more or less optional

* Switch to ed25519_dalek for the verification

* Extract the key exchange to its own module

* Remove the ring RNG from the handshake

* Some warning fixes and forgot file

* Move key exchange to own module

* Remove usage of ring::digest

* Remove ring from handshake entirely

* Implement ECDH for WebCrypto

* Remove the libp2p-secio feature

* Fix ring being included

* Address some concerns

* Provde some panics in WebCrypto

* Prove the Hmac panic

* Prove more panics
2018-10-01 15:42:40 +02:00
0614b0d44e secio: don't panic in agree_ephemeral. (#480)
Given that echoing back our local key and nonce would result in equal
digest values, we should treat this as an error instead of panicking.
2018-09-14 11:37:40 +02:00
6a5681aed7 secio: Add NULL cipher and allow more configuration. (#468)
* Introduce NULL cipher and allow more configuration.

* Back to using the hash-code for handshake.

Using `Endpoint` would be incompatible with the existing protocol.

* Add comments.
2018-09-12 09:10:05 +02:00
0a3d4cdfad Revert "remove rustc-serialize (#359) (#386)" (#466)
This reverts commit 73996885cb.
2018-09-07 14:05:42 +02:00
ea1f172397 Implement Send everywhere (#458) 2018-09-06 09:54:35 +02:00
e2960b4317 Add support for twofish cipher (#457) 2018-09-05 02:15:16 +02:00
2ea49718f3 Clean up directory structure (#426)
* Remove unused circular-buffer crate
* Move transports into subdirectory
* Move misc into subdirectory
* Move stores into subdirectory
* Move multiplexers
* Move protocols
* Move libp2p top layer
* Fix Test: skip doctest if secio isn't enabled
2018-08-29 11:24:44 +02:00