From 152388b3a3bd177be86acb44fc1ef1a26b993073 Mon Sep 17 00:00:00 2001 From: greatroar <61184462+greatroar@users.noreply.github.com> Date: Fri, 9 Sep 2022 14:22:38 +0200 Subject: [PATCH] lib/tlsutil: Use crypto.Signer interface (#8526) *rsa.PrivateKey and *ecdsa.PrivateKey are both Signers, which have a method to get the public key. No need for the type switch. --- lib/tlsutil/tlsutil.go | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/lib/tlsutil/tlsutil.go b/lib/tlsutil/tlsutil.go index f2d3a3b8d..e184d16dd 100644 --- a/lib/tlsutil/tlsutil.go +++ b/lib/tlsutil/tlsutil.go @@ -115,7 +115,7 @@ func generateCertificate(commonName string, lifetimeDays int) (*pem.Block, *pem. BasicConstraintsValid: true, } - derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv) + derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, priv.Public(), priv) if err != nil { return nil, nil, fmt.Errorf("create cert: %w", err) } @@ -235,17 +235,6 @@ func (c *UnionedConnection) Read(b []byte) (n int, err error) { return c.Conn.Read(b) } -func publicKey(priv interface{}) interface{} { - switch k := priv.(type) { - case *rsa.PrivateKey: - return &k.PublicKey - case *ecdsa.PrivateKey: - return &k.PublicKey - default: - return nil - } -} - func pemBlockForKey(priv interface{}) (*pem.Block, error) { switch k := priv.(type) { case *rsa.PrivateKey: