Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Roadmap #10

Closed
33 of 37 tasks
cheatfate opened this issue Feb 6, 2019 · 5 comments
Closed
33 of 37 tasks

[WIP] Roadmap #10

cheatfate opened this issue Feb 6, 2019 · 5 comments

Comments

@cheatfate
Copy link
Contributor

cheatfate commented Feb 6, 2019

Cryptography

  • NIST P-256/384/521 curves, required to perform DHE.
  • NIST P-256/384/521 ECDSA required for peer identification.
  • RSA required for peer identification
  • ED25519 required for peer identification
  • SECP256k1 required for peer identification
  • ASN.1 DER encoder/decoder for (ECDSA, RSA public keys/private keys/signatures)
  • Key interface
  • Curve25519 required for noise-libp2p
  • Poly1305 required for noise-libp2p
  • ChaCha20 required for noise-libp2p

https://github.com/libp2p/go-libp2p-crypto

Network Interfaces

Storage and utility

Protocol negotiation

Stream Multiplexer

Connections

Connection manager

Transports

Protocols

Name resolution

Metrics

Swarm

This is actually main loop of any libp2p node which performs all the logic

@arnetheduck
Copy link
Contributor

Related eth2 ticket: ethresearch/p2p#4

@sinkingsugar
Copy link
Contributor

sinkingsugar commented Feb 13, 2020

About Curve25519 if @cheatfate and @dryajov agree I can refactor the current ed25519 code which actually includes (not sure if entirely) Curve25519, although very scalar code.
We also need X25519 for noise btw, again depends on Curve25519.
Let me know what you guys think please.
Or actually including a more optimized C library (since C is nim's assembly) could be another option.

@cheatfate
Copy link
Contributor Author

@sinkingsugar we do not need optimized C library, because we already has one - nim-bearssl.

Also i'm not sure what you mean under word refactor, because ed25519 is constant-time implementation and so i'm not sure it needs any refactor process. For some reason ed25519 is not part of TLS standard, while Curve25519 is, so i'm not sure is ed25519 implementation is enough to build Curve25519.

@sinkingsugar
Copy link
Contributor

@cheatfate I used bearssl fully anyway so don't worry about it!

@Menduist
Copy link
Contributor

Closing this since almost everything on this list is done now (except exotic multiplexers)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants