From feccfb8adaf5a0ce93a0dafa31336ccb6f41c618 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Mon, 9 Nov 2020 14:00:09 +0100 Subject: [PATCH] crypto/x509: use fingerprint map for (*CertPool).contains 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 Run-TryBot: Filippo Valsorda TryBot-Result: Go Bot Reviewed-by: Brad Fitzpatrick --- src/crypto/x509/cert_pool.go | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/src/crypto/x509/cert_pool.go b/src/crypto/x509/cert_pool.go index c23ccf1b39..bcc5db3b70 100644 --- a/src/crypto/x509/cert_pool.go +++ b/src/crypto/x509/cert_pool.go @@ -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. -- 2.50.0