config: update logic for checking overlapping certificates (#4216)

* config: update logic for checking overlapping certificates

* add test

* go mod tidy
This commit is contained in:
Caleb Doxsey 2023-06-01 09:30:46 -06:00 committed by GitHub
parent 3a791542d4
commit baf964f44a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 216 additions and 138 deletions

View file

@ -3,6 +3,7 @@ package config
import (
"context"
"crypto/tls"
"crypto/x509"
"encoding/base64"
"encoding/pem"
"fmt"
@ -735,13 +736,17 @@ func TestOptions_ApplySettings(t *testing.T) {
cert3, err := cryptutil.GenerateCertificate(nil, "not.example.com")
require.NoError(t, err)
certsIndex := cryptutil.NewCertificatesIndex()
xc1, _ := x509.ParseCertificate(cert1.Certificate[0])
certsIndex.Add(xc1)
settings := &config.Settings{
Certificates: []*config.Settings_Certificate{
{CertBytes: encodeCert(cert2)},
{CertBytes: encodeCert(cert3)},
},
}
options.ApplySettings(ctx, settings)
options.ApplySettings(ctx, certsIndex, settings)
assert.Len(t, options.CertificateFiles, 2, "should prevent adding duplicate certificates")
})
}