|
|
@@ -351,6 +351,7 @@ CurvePreferenceLoop: |
|
|
|
c.phase = waitingClientFinished |
|
|
|
} |
|
|
|
|
|
|
|
hs.c.Group = hs.hello.keyShare.group |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
@@ -459,6 +460,7 @@ func (hs *serverHandshakeState) readClientFinished13(hasConfirmLock bool) error |
|
|
|
c.in.traceErr, c.out.traceErr = nil, nil |
|
|
|
c.phase = handshakeConfirmed |
|
|
|
atomic.StoreInt32(&c.handshakeConfirmed, 1) |
|
|
|
hs.c.Group = hs.hello.keyShare.group |
|
|
|
|
|
|
|
// Any read operation after handshakeRunning and before handshakeConfirmed |
|
|
|
// will be holding this lock, which we release as soon as the confirmation |
|
|
@@ -470,7 +472,6 @@ func (hs *serverHandshakeState) readClientFinished13(hasConfirmLock bool) error |
|
|
|
if hasConfirmLock { |
|
|
|
c.confirmMutex.Unlock() |
|
|
|
} |
|
|
|
|
|
|
|
return hs.sendSessionTicket13() // TODO: do in a goroutine |
|
|
|
} |
|
|
|
|
|
|
@@ -532,7 +533,6 @@ func (hs *serverHandshakeState) sendCertificate13() error { |
|
|
|
if _, err := c.writeRecord(recordTypeHandshake, verifyMsg.marshal()); err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|