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

Add NewGCMTLS13 for Go TLS 1.3 support #132

Merged
merged 1 commit into from
Jan 5, 2024
Merged

Add NewGCMTLS13 for Go TLS 1.3 support #132

merged 1 commit into from
Jan 5, 2024

Conversation

dagood
Copy link
Collaborator

@dagood dagood commented Dec 21, 2023

Implements NewGCMTLS13 by extending NewGCMTLS and incorporating the logic described in the boringssl implementation at https://github.com/google/boringssl/blob/d1831d78c867ba51b3992ccc213fd201d2f4b0f1/crypto/fipsmodule/cipher/e_aes.c#L1397-L1403.

golang/go@4106de9 is in master and the go1.22rc1 tag, and it depends on a new NewGCMTLS13 function in the boring backend. I found out about this when it broke our upstream sync CI. It adds crypto/internal/boring NewGCMTLS13, calling _goboringcrypto_EVP_aead_aes_128_gcm_tls13. It didn't look all that complicated once I got to the boringssl implementation, so I thought I would try writing this PR.


The code comment I added is a little long-winded. It took me a bit to understand how the RFC applied. Maybe it's easier to see for people who are already more familiar with how these funcs are used, and the comment can be cut down.

Copy link
Collaborator

@ueno ueno left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

Copy link
Collaborator

@qmuntal qmuntal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

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

Successfully merging this pull request may close these issues.

4 participants