Commit Graph

47 Commits

Author SHA1 Message Date
27ecd4b0ed Mock dependencies that are excluded in readthedocs
It seems preferable to import just fastecdsa. But if you do that,
then some kind of side-effect doesn't happen, which means that `sec1` is
not available as an attribute on `fastecdsa.encoding`.

So we specifically mock the sub-modules as well.
2019-11-27 14:07:14 -08:00
b8ec43a859 remove type:ignore for working pycryptodome type
I didn't dig deeper, it looks like pycryptodome must have fixed their
pkcs1_15.new andd pkcs1_15.verify type signatures.
2019-11-15 11:25:03 -08:00
ded3792924 Merge pull request #331 from dmuhs/fix/docs-format
Add automatic docstring formatting
2019-10-28 09:39:52 -06:00
f2bfc68f6d Re-generate protobufs 2019-10-25 18:51:57 +09:00
bafdd8512d Enforce pre-summary newline in docstrings 2019-10-24 20:10:45 +02:00
eef505f2d9 Add automatic docstring formatter and apply 2019-10-24 08:41:10 +02:00
75ec2facce linter fix 2019-09-24 10:07:33 -07:00
487c923791 add ed25519 private key deserializer 2019-09-24 10:06:35 -07:00
bbd8279811 Add explicit exception if we are missing a deserializer 2019-09-24 09:51:32 -07:00
6e53849604 Delete utils in favor of serialization module 2019-09-24 09:51:31 -07:00
5fdca2ffb2 Add public key implementation 2019-09-24 09:51:31 -07:00
fa7d1d66a8 Fix import path 2019-09-24 09:51:31 -07:00
b142964d31 Adds support for verifying ed25519 signatures, for secio 2019-09-24 09:51:31 -07:00
451ec2664a Address incorrect typing in pycryptodome dependency 2019-09-04 10:19:27 -07:00
f86ba7283d Implement signing for RSA
- mainly for use in `secio` w/ RSA-based identities b/t peers
2019-09-04 10:12:43 -07:00
25f504ad35 Allow RSA public key type when deserializing keys 2019-09-04 10:12:43 -07:00
30456f8018 Use a different ECC backend with a compatible serializer
This library has the ``SEC1`` encoder which is compatible
with the serialization of ECC keys/points used in the Go libp2p impl
2019-09-03 13:44:25 -07:00
fa0acd9fc5 Apply PR feedback 2019-08-26 10:03:12 -07:00
c1ffb03f77 Update comment to reflect correct function 2019-08-26 09:51:49 -07:00
7c004a4e14 Mypy fixes 2019-08-24 22:38:26 +02:00
b8c0ef9ebb Fix bugs in secio implementation 2019-08-24 22:38:25 +02:00
1adef05e94 Typing and linting fixes 2019-08-24 22:37:45 +02:00
8e913a3faa Dispatch serialization of keys based on key type
- Add some tests to check high-level roundtrip
2019-08-24 22:37:45 +02:00
af2e50aaf4 Add facility for authenticated encryption 2019-08-24 22:37:45 +02:00
228c17ae9e Add ECDH key exchange utility 2019-08-24 22:37:44 +02:00
fb13dfa7b3 Add sign and verify operations for secp256k1 keys 2019-08-24 22:37:44 +02:00
3c97a5a0ed Add ECC key implementation 2019-08-24 22:37:44 +02:00
b516579256 Remove the unnecessary RSAPrivateKey.from_bytes 2019-08-22 22:54:14 +08:00
3e04480d62 Raise HandshakeFailure in transport
Change the exception handling flow.
Raise `SecurityUpgradeFailure` in security_multistream.
2019-08-22 22:53:48 +08:00
921bfb65cc Verify the remote pubkey and peer_id
- Add `from_bytes` in RSAPublicKey and Secp256k1PublicKey
- Add `pubkey_from_protobuf` to parse pubkey from protobuf
- Verify key and peer_id in `InsecureSession.run_handshake`
2019-08-22 22:53:48 +08:00
5192944724 Update pb 2019-08-22 22:53:46 +08:00
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
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
f2c31f6fe3 Fix isort 2019-08-16 11:03:16 +08:00
e37b8bcf19 mypy: Add read_buffer_nonblocking in Mplex 2019-08-16 11:03:16 +08:00
9a4e23a803 mypy protobuf plugin requires keyword-based initializers 2019-08-15 16:36: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
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
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
ad20d8cb00 Make a KeyPair dataclass for passing around key pairs 2019-08-14 09:00:40 -07:00
61f78c8feb Add abstraction for a cryptographic key 2019-08-14 09:00:39 -07:00