소스 검색

tris: move Commit to just before key share generation

In particular move it to after cipher suite negotiation and after
HelloRetryRequest check.
v1.2.3
Filippo Valsorda 7 년 전
committed by Peter Wu
부모
커밋
0d97989e0d
2개의 변경된 파일8개의 추가작업 그리고 9개의 파일을 삭제
  1. +6
    -0
      13.go
  2. +2
    -9
      handshake_server.go

+ 6
- 0
13.go 파일 보기

@@ -53,6 +53,12 @@ CurvePreferenceLoop:
return errors.New("tls: HelloRetryRequest not implemented") // TODO(filippo)
}

if committer, ok := c.conn.(Committer); ok {
if err := committer.Commit(); err != nil {
return err
}
}

privateKey, serverKS, err := config.generateKeyShare(ks.group)
if err != nil {
c.sendAlert(alertInternalError)


+ 2
- 9
handshake_server.go 파일 보기

@@ -160,6 +160,7 @@ func (hs *serverHandshakeState) readClientHello() (isResume bool, err error) {

if c.config.GetConfigForClient != nil {
if newConfig, err := c.config.GetConfigForClient(hs.clientHelloInfo()); err != nil {
c.out.traceErr, c.in.traceErr = nil, nil // disable tracing
c.sendAlert(alertInternalError)
return false, err
} else if newConfig != nil {
@@ -287,21 +288,13 @@ Curves:

hs.cert, err = c.config.getCertificate(hs.clientHelloInfo())
if err != nil {
c.out.traceErr, c.in.traceErr = nil, nil // disable tracing
c.sendAlert(alertInternalError)
return false, err
}
if hs.clientHello.scts && hs.hello != nil { // TODO: TLS 1.3 SCTs
if hs.clientHello.scts && hs.hello != nil {
hs.hello.scts = hs.cert.SignedCertificateTimestamps
}

if committer, ok := c.conn.(Committer); ok { // TODO: probably committing too early
err = committer.Commit()
if err != nil {
return false, err
}
}

if priv, ok := hs.cert.PrivateKey.(crypto.Signer); ok {
switch priv.Public().(type) {
case *ecdsa.PublicKey:


불러오는 중...
취소
저장