bifurcation / mint

A Minimal TLS 1.3 Implementation in Go
MIT License
224 stars 36 forks source link

Enhance dtls2 #177

Closed ekr closed 6 years ago

ekr commented 6 years ago

This is really enormous, and as noted in the comments, not quite done, but I also want to get it landed before we have more rebase issues.

@bifurcation: LMK if you want me to file issues for the known deficiencies

ekr commented 6 years ago

You asked about moving the new states into .Next(). My claim is that they are part of the state machine, so I moved them, and it also has to be able to re-enter after WouldBlock and we already have machinery for that.

bifurcation commented 6 years ago

OK, reentering after WouldBlock seems like a good enough reason.

ekr commented 6 years ago

Oops. Thanks

On Mon, Feb 26, 2018 at 3:02 PM, Richard Barnes notifications@github.com wrote:

@bifurcation commented on this pull request.

In conn.go https://github.com/bifurcation/mint/pull/177#discussion_r170765152:

@@ -788,6 +781,31 @@ func (c *Conn) Handshake() Alert { if connected { c.state = state.(stateConnected) c.handshakeComplete = true +

  • if !c.isClient {
  • // Send NewSessionTicket if configured to
  • if c.config.SendSessionTickets {

If that's your intent, then you need to move the early data copy up into !c.isClient. Right now, it's parallel.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/bifurcation/mint/pull/177#discussion_r170765152, or mute the thread https://github.com/notifications/unsubscribe-auth/ABD1oayA27GkTyCTBm3slduif2iXr0feks5tYzfpgaJpZM4SRXKw .

ekr commented 6 years ago

Do you think you could help me with the state diagram?

ekr commented 6 years ago

WRT nextState for WaitEOED. The issue is you also need to queue up the key changes, so I'm not sure how much it helps.

ekr commented 6 years ago

@bifurcation: PTAL. This might need one more once-over before landing, but I think we're close

ekr commented 6 years ago

@bifurcation: Please review but do not land. I want to write some more tests to make sure that this CL didn't break stuff.