]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/x509: use fingerprint map for (*CertPool).contains
authorFilippo Valsorda <filippo@golang.org>
Mon, 9 Nov 2020 13:00:09 +0000 (14:00 +0100)
committerFilippo Valsorda <filippo@golang.org>
Mon, 9 Nov 2020 14:41:38 +0000 (14:41 +0000)
This fell through the cracks from the CL 229917 comments.

Change-Id: I22584107f1e8111f9c523f45307dd50e1e5f4b8f
Reviewed-on: https://go-review.googlesource.com/c/go/+/268339
Trust: Filippo Valsorda <filippo@golang.org>
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/crypto/x509/cert_pool.go

index c23ccf1b39607270d035b96b9a72bb01a35283f8..bcc5db3b703ae3f188f15ab36207110659e8560c 100644 (file)
@@ -161,18 +161,7 @@ func (s *CertPool) contains(cert *Certificate) bool {
        if s == nil {
                return false
        }
-       candidates := s.byName[string(cert.RawSubject)]
-       for _, i := range candidates {
-               c, err := s.cert(i)
-               if err != nil {
-                       return false
-               }
-               if c.Equal(cert) {
-                       return true
-               }
-       }
-
-       return false
+       return s.haveSum[sha256.Sum224(cert.Raw)]
 }
 
 // AddCert adds a certificate to a pool.