Commit Graph

745 Commits

Author SHA1 Message Date
e1d3f1601f Satisfy mypy 2019-08-20 19:28:32 +02:00
87d943aa39 Internalize the protobuf serialization to the concept of a Key
Given its use across various components of `libp2p` (not just peer IDs),
it makes the abstraction cleaner to pull the serialization into the
key class and expose the canonical serialization to bytes.
2019-08-20 19:01:36 +02:00
5d611801c7 Fix isort 2019-08-18 19:51:04 +08:00
86d4ce1da8 Add delim_encode and delim_read
- Add `StreamCommunicator` and `RawConnectionCommunicator`, read/write
messages with delim codec, with `IMuxedStream` and `IRawConnection`
respectively.
- Use it in `Multiselect` and `MultiselectClient`.
2019-08-18 19:51:04 +08:00
8cd23abfe2 Remove the leftover merge related stuff 2019-08-16 11:03:16 +08:00
e293b89925 Fix mypy
It seems the stub doesn't allow default value for params
2019-08-16 11:03:16 +08:00
c5f32bf431 PR feedback for MplexStream.read 2019-08-16 11:03:16 +08:00
8699568d43 Update libp2p/stream_muxer/mplex/mplex_stream.py
Co-Authored-By: Alex Stokes <r.alex.stokes@gmail.com>
2019-08-16 11:03:16 +08:00
f2c31f6fe3 Fix isort 2019-08-16 11:03:16 +08:00
b27cd0f24f Use bytearray over bytes
To avoid copies.
2019-08-16 11:03:16 +08:00
92320523d5 Add the missing exceptions.py 2019-08-16 11:03:16 +08:00
e37b8bcf19 mypy: Add read_buffer_nonblocking in Mplex 2019-08-16 11:03:16 +08:00
f281e3e1db flake8 2019-08-16 11:03:16 +08:00
9f8276fa84 Support read(n=-1)
Now, `n=-1` indicates that we want to read until EOF. However, now we
only read until we have no new message.
2019-08-16 11:03:16 +08:00
9cb6ec1c48 Modify the behavior of MplexStream.read 2019-08-16 11:03:16 +08:00
2485a00e24 Modify NetStream to read n bytes 2019-08-16 11:03:16 +08:00
dbdbcf7440 Merge pull request #250 from ralexstokes/add-secio-groundwork
Add secio groundwork
2019-08-15 19:32:17 -07:00
7535a02da7 Clean up key gen 2019-08-15 19:24:30 -07:00
d17e6f3392 Fix some test imports that got botched in rebase 2019-08-15 16:46:23 -07:00
9a4e23a803 mypy protobuf plugin requires keyword-based initializers 2019-08-15 16:36:32 -07:00
82bae341a7 Run isort over files that were missing it 2019-08-15 16:33:35 -07:00
2e3ffb9d53 Use types for {Private,Public}Key and address other missing type hints 2019-08-15 16:33:34 -07:00
e7d2681fc0 Move base implementations into BaseSession 2019-08-15 16:33:34 -07:00
cda74dd382 Update tests for new logic 2019-08-15 16:33:34 -07:00
9e18d7561d Supply local priv and pub key when upgrading to a secure transport 2019-08-15 16:33:34 -07:00
7942b7eaa7 Expose writer 2019-08-15 16:33:34 -07:00
20dd7d777a More efficiently remove trailing newline from message 2019-08-15 16:33:34 -07:00
0ebc8ffb21 Wire some missing properties up 2019-08-15 16:33:34 -07:00
02e073d85a Keep the host's private key for use in transports 2019-08-15 16:33:33 -07:00
879cbf1abd Add an "insecure session" that satisfies the ISecureConn interface 2019-08-15 16:33:33 -07:00
fb43728661 Mark some slow tests as such 2019-08-15 16:33:33 -07:00
1e5357a1e1 Update the ISecureConn interface following the reference and simplify accordingly 2019-08-15 16:33:33 -07:00
ab7653526f Code cleanup / formatting 2019-08-15 16:33:33 -07:00
b98025c379 Move security transports into their respective sub-packages 2019-08-15 16:33:33 -07:00
d50e1b6872 Use direct types over indirect types 2019-08-15 16:33:32 -07:00
ff5eaf2429 Merge pull request #249 from ralexstokes/fix-mypy-protos
Add `mypy` protobufs plugin and regenerate protobufs
2019-08-15 16:15:26 -07:00
b0e57c2be4 Merge pull request #245 from mhchia/fix/add-initpy-pb
Add the missing __init__.py in pb/
2019-08-15 16:04:09 -07:00
0f81ca42a6 Add mypy protobufs plugin and regenerate protobufs 2019-08-15 16:01:44 -07:00
97308c897e Add the missing __init__.py in pb/
Error: https://circleci.com/gh/mhchia/trinity/5342?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link
2019-08-15 21:03:45 +08:00
125c5d8e2c Adjust inheritance so that the MRO is clear for the chain of keys 2019-08-14 09:30:23 -07:00
3b19104284 Add missing ABC declaration following PR feedback in #240. 2019-08-14 09:25:54 -07:00
9977933fd1 Merge pull request #240 from ralexstokes/allow-multiple-identity-types
Allow multiple peer identity types (via different cryptosystems)
2019-08-14 09:13:02 -07:00
08e6f2a30c Update libp2p/crypto/secp256k1.py
pass the secret on to `coincurve` lib

Co-Authored-By: NIC Lin <twedusuck@gmail.com>
2019-08-14 09:02:06 -07:00
53e583a068 Update libp2p/crypto/secp256k1.py
Pass the secret on to `coincurve` lib

Co-Authored-By: NIC Lin <twedusuck@gmail.com>
2019-08-14 09:02:06 -07:00
67744bcb0f Add a basic interop test for Go and Python peer IDs 2019-08-14 09:00:40 -07:00
ad20d8cb00 Make a KeyPair dataclass for passing around key pairs 2019-08-14 09:00:40 -07:00
329bd4eb0f Clean up peer ID tests 2019-08-14 09:00:40 -07:00
6506079a36 Generate peer IDs according to the spec 2019-08-14 09:00:39 -07:00
f9e859a8e9 Clean up peer.ID 2019-08-14 09:00:39 -07:00
c40314a043 Use new RSA key type 2019-08-14 09:00:39 -07:00