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

Implement TLS v1.3, including X25519 and Ed25519, especially within X509 certs. #345

Closed
catbref opened this issue May 15, 2018 · 6 comments
Assignees

Comments

@catbref
Copy link

catbref commented May 15, 2018

Now that TLS v1.3 has been approved by the IETF can it be implemented into BC please?

Note that section 9.1 "Mandatory-to-Implement Cipher Suites" states that "A TLS-compliant application [...] SHOULD support key exchange with X25519 [RFC7748]."

You have some X25519-related code already and I can submit a pull request for most of the Ed25519/X509 aspect however I am new to the BC codebase so it would need serious reviewing.

@peterdettman peterdettman self-assigned this May 16, 2018
@peterdettman
Copy link
Collaborator

Work on Ed25519 is under way and TLS 1.3 is beginning shortly.

@lapo-luchini
Copy link

lapo-luchini commented May 16, 2018

There is something regarding Ed25519 in open-keychain#2.
Edit: whoops, I noticed only later that the person opening it is the same that opened this one.

@catbref
Copy link
Author

catbref commented May 16, 2018

Yes, and I've just now submitted a pull-request with code based on the above but reworked for more seamless integration with bcgit:master.
I'm not claiming my pull-request is good-to-go but could help save a bit of time.
One issue is that there could be duplication of X25519/Ed25519 math code.

@vikram919
Copy link

@catbref

One issue is that there could be duplication of X25519/Ed25519 math code.

?

@catbref
Copy link
Author

catbref commented May 18, 2018

There's existing X25519 math code under core/src/main/java/org/bouncycastle/math/ec/rfc7748
and in pull request #347 fresh math code for Ed25519 which might end up duplicating some of the above.

I understand that there's a possible path to/from Ed25519/X25519 keys but that's beyond my skills.

@peterdettman
Copy link
Collaborator

Closing as TLS 1.3 is in place now.

We do not yet enable it for the "TLS" SSLContext though; you currently need to use "TLSv1.3" explicitly, or else enable it on the individual sockets/engines, or use jdk.tls.client.protocols/jdk.tls.server.protocols system properties.

Relative to TLS 1.2, it is currently missing session resumption. Relative to the full TLS 1.3 spec it is missing several of the new features, e.g. early data, half-close. Specific issues can be raised for these, although they are not likely to be on our roadmap for this year.

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