From: Adam Langley Date: Wed, 26 Oct 2016 20:51:44 +0000 (-0700) Subject: crypto/x509: use Certificate.Equals and CertPool.contains. X-Git-Tag: go1.8beta1~583 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4f1e7be51f401a5374c0def2df0773abc924b03c;p=gostls13.git crypto/x509: use Certificate.Equals and CertPool.contains. By using these utility functions, the code can be made a little shorter. Thanks to Omar Shafie for pointing this out in https://golang.org/cl/27393/. Change-Id: I33fd97cf7d60a31d0844ec16c12bba530dcc6f6d Reviewed-on: https://go-review.googlesource.com/32120 Run-TryBot: Adam Langley TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/crypto/x509/cert_pool.go b/src/crypto/x509/cert_pool.go index 8508cbacd7..fea33df379 100644 --- a/src/crypto/x509/cert_pool.go +++ b/src/crypto/x509/cert_pool.go @@ -4,10 +4,7 @@ package x509 -import ( - "bytes" - "encoding/pem" -) +import "encoding/pem" // CertPool is a set of certificates. type CertPool struct { @@ -67,7 +64,7 @@ func (s *CertPool) contains(cert *Certificate) bool { candidates := s.byName[string(cert.RawSubject)] for _, c := range candidates { - if bytes.Equal(cert.Raw, s.certs[c].Raw) { + if s.certs[c].Equal(cert) { return true } } @@ -82,10 +79,8 @@ func (s *CertPool) AddCert(cert *Certificate) { } // Check that the certificate isn't being added twice. - for _, c := range s.certs { - if c.Equal(cert) { - return - } + if s.contains(cert) { + return } n := len(s.certs)