-
Notifications
You must be signed in to change notification settings - Fork 50
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 delegated credentials, as seen in #26 #28
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some general comments. @claucece
Yes, we are iterating in this codebase, and happy to review as many times as needed. |
Oh, perfect! Every now and then when I finish a task of the issue, I'll mark it for review ;) Thanks so much! |
a82dde8
to
9d69f90
Compare
this should probably be rebased on the |
@thomwiggers the idea to have a separate branch is to be able to integrate to golang (which won't integrate probably the KEM TLS exp): that is why it differs from the cf branch. |
359046f
to
b6252ee
Compare
@bwesterb @armfazh @chris-wood ready for review as a first version. I might add some refactors and other ideas in the mean time; but should we good now. Sorry for opening and closing it as a draft but I had some conflicts with go1.15 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
few comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not intimately familiar with the Go Tls implementation nor with delegated credentials, so this "approve" should be read as a "I didn't see anything fishy". Looks good, well documented.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initial (partial) review, I have yet to look at delegated_credentials.go and delegated_credentials_test.go
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking good! I left some comments for areas and things that might warrant further investigation. Please let me know if anything is not clear. :-)
6b6a8f5
to
996ba2f
Compare
996ba2f
to
ff75370
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First round! Some high level things:
- Unless there's a good reason to keep it, I think the
GetDelegatedCredential
callback should be replaced with a list of DCs. See inline comment for details. - Can you modify the package comment at the top of
tls.go
to document the fact that this package implements draft-ietf-tls-subcerts-09? - Please make sure all comments are wrapped at 80 characters.
- For data serialization, use "golang.org/x/crypto/cryptobyte". This make the code much easier to read and verify.
- Please remove any empty lines you added and add back any you removed. One of our goals for this repo is to minimize differences with upstream Go wherever possible
Hi @cjpatton ! Thanks for this! I'll only solve this week the small comments, as any large change will likely break the code of kem-tls needed for Friday. Thanks! |
bdee57d
to
2aab885
Compare
f5589e0
to
fa58fea
Compare
Rebased. |
8237cce
to
3cd5592
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few comments that need addressing first
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last round for me. Just minor comments left.
// with TLS 1.3. If this is nil, then the server will not offer | ||
// a DelegatedCredential. If the call returns nil, the server is also | ||
// not offering a DelegatedCredential. | ||
GetDelegatedCredential func(*ClientHelloInfo, *CertificateRequestInfo) (*DelegatedCredential, crypto.PrivateKey, error) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm good with whichever way you land here. (Consider this comment non-blocking.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unrequesting changes in order to unblock merge :)
ebe950e
to
4b94b48
Compare
Closing this, as it will only be experimental. |
4b94b48
to
3615e61
Compare
Rebased. Merging as-is, with existing approvals. Note that future changes to crypto/tls and crypto/x509 will need approval from the respective codeowners. |
For #26