1
0
mirror of https://github.com/go-acme/lego.git synced 2025-07-17 12:17:44 +02:00

chore: use go1.23 (#2446)

This commit is contained in:
Ludovic Fernandez
2025-02-18 20:10:57 +01:00
committed by GitHub
parent 526ac35e5c
commit 0ab907c183
11 changed files with 36 additions and 56 deletions

View File

@ -20,7 +20,7 @@ func TestOrderService_NewWithOptions(t *testing.T) {
mux, apiURL := tester.SetupFakeAPI(t) mux, apiURL := tester.SetupFakeAPI(t)
// small value keeps test fast // small value keeps test fast
privateKey, errK := rsa.GenerateKey(rand.Reader, 512) privateKey, errK := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, errK, "Could not generate test key") require.NoError(t, errK, "Could not generate test key")
mux.HandleFunc("/newOrder", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/newOrder", func(w http.ResponseWriter, r *http.Request) {

View File

@ -6,7 +6,6 @@ import (
"crypto/rand" "crypto/rand"
"crypto/rsa" "crypto/rsa"
"encoding/pem" "encoding/pem"
"regexp"
"testing" "testing"
"time" "time"
@ -22,7 +21,7 @@ func TestGeneratePrivateKey(t *testing.T) {
} }
func TestGenerateCSR(t *testing.T) { func TestGenerateCSR(t *testing.T) {
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Error generating private key") require.NoError(t, err, "Error generating private key")
type expected struct { type expected struct {
@ -43,7 +42,7 @@ func TestGenerateCSR(t *testing.T) {
Domain: "lego.acme", Domain: "lego.acme",
MustStaple: true, MustStaple: true,
}, },
expected: expected{len: 245}, expected: expected{len: 379},
}, },
{ {
desc: "without SAN (empty)", desc: "without SAN (empty)",
@ -53,7 +52,7 @@ func TestGenerateCSR(t *testing.T) {
SAN: []string{}, SAN: []string{},
MustStaple: true, MustStaple: true,
}, },
expected: expected{len: 245}, expected: expected{len: 379},
}, },
{ {
desc: "with SAN", desc: "with SAN",
@ -63,7 +62,7 @@ func TestGenerateCSR(t *testing.T) {
SAN: []string{"a.lego.acme", "b.lego.acme", "c.lego.acme"}, SAN: []string{"a.lego.acme", "b.lego.acme", "c.lego.acme"},
MustStaple: true, MustStaple: true,
}, },
expected: expected{len: 296}, expected: expected{len: 430},
}, },
{ {
desc: "no domain", desc: "no domain",
@ -72,7 +71,7 @@ func TestGenerateCSR(t *testing.T) {
Domain: "", Domain: "",
MustStaple: true, MustStaple: true,
}, },
expected: expected{len: 225}, expected: expected{len: 359},
}, },
{ {
desc: "no domain with SAN", desc: "no domain with SAN",
@ -82,7 +81,7 @@ func TestGenerateCSR(t *testing.T) {
SAN: []string{"a.lego.acme", "b.lego.acme", "c.lego.acme"}, SAN: []string{"a.lego.acme", "b.lego.acme", "c.lego.acme"},
MustStaple: true, MustStaple: true,
}, },
expected: expected{len: 276}, expected: expected{len: 409},
}, },
{ {
desc: "private key nil", desc: "private key nil",
@ -101,7 +100,7 @@ func TestGenerateCSR(t *testing.T) {
SAN: []string{"example.org"}, SAN: []string{"example.org"},
EmailAddresses: []string{"foo@example.com", "bar@example.com"}, EmailAddresses: []string{"foo@example.com", "bar@example.com"},
}, },
expected: expected{len: 287}, expected: expected{len: 421},
}, },
} }
@ -124,17 +123,17 @@ func TestGenerateCSR(t *testing.T) {
} }
func TestPEMEncode(t *testing.T) { func TestPEMEncode(t *testing.T) {
buf := bytes.NewBufferString("TestingRSAIsSoMuchFun") key, err := rsa.GenerateKey(rand.Reader, 1024)
reader := MockRandReader{b: buf}
key, err := rsa.GenerateKey(reader, 32)
require.NoError(t, err, "Error generating private key") require.NoError(t, err, "Error generating private key")
data := PEMEncode(key) data := PEMEncode(key)
require.NotNil(t, data) require.NotNil(t, data)
exp := regexp.MustCompile(`^-----BEGIN RSA PRIVATE KEY-----\s+\S{60,}\s+-----END RSA PRIVATE KEY-----\s+`) p, rest := pem.Decode(data)
assert.Regexp(t, exp, string(data))
assert.Equal(t, "RSA PRIVATE KEY", p.Type)
assert.Empty(t, rest)
assert.Empty(t, p.Headers)
} }
func TestParsePEMCertificate(t *testing.T) { func TestParsePEMCertificate(t *testing.T) {
@ -186,11 +185,3 @@ func TestParsePEMPrivateKey(t *testing.T) {
_, err = ParsePEMPrivateKey([]byte("This is not PEM")) _, err = ParsePEMPrivateKey([]byte("This is not PEM"))
require.Errorf(t, err, "Expected to return an error for non-PEM input") require.Errorf(t, err, "Expected to return an error for non-PEM input")
} }
type MockRandReader struct {
b *bytes.Buffer
}
func (r MockRandReader) Read(p []byte) (int, error) {
return r.b.Read(p)
}

View File

@ -34,7 +34,7 @@ func (p *providerTimeoutMock) Timeout() (time.Duration, time.Duration) { ret
func TestChallenge_PreSolve(t *testing.T) { func TestChallenge_PreSolve(t *testing.T) {
_, apiURL := tester.SetupFakeAPI(t) _, apiURL := tester.SetupFakeAPI(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err) require.NoError(t, err)
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -116,7 +116,7 @@ func TestChallenge_PreSolve(t *testing.T) {
func TestChallenge_Solve(t *testing.T) { func TestChallenge_Solve(t *testing.T) {
_, apiURL := tester.SetupFakeAPI(t) _, apiURL := tester.SetupFakeAPI(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err) require.NoError(t, err)
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -203,7 +203,7 @@ func TestChallenge_Solve(t *testing.T) {
func TestChallenge_CleanUp(t *testing.T) { func TestChallenge_CleanUp(t *testing.T) {
_, apiURL := tester.SetupFakeAPI(t) _, apiURL := tester.SetupFakeAPI(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err) require.NoError(t, err)
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)

View File

@ -97,7 +97,7 @@ func TestChallenge(t *testing.T) {
return nil return nil
} }
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -166,7 +166,7 @@ func TestChallengeUnix(t *testing.T) {
return nil return nil
} }
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -190,7 +190,7 @@ func TestChallengeUnix(t *testing.T) {
func TestChallengeInvalidPort(t *testing.T) { func TestChallengeInvalidPort(t *testing.T) {
_, apiURL := tester.SetupFakeAPI(t) _, apiURL := tester.SetupFakeAPI(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 128) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -411,7 +411,7 @@ func testServeWithProxy(t *testing.T, header, extra *testProxyHeader, expectErro
return nil return nil
} }
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)

View File

@ -36,7 +36,7 @@ func TestValidate(t *testing.T) {
var statuses []string var statuses []string
privateKey, _ := rsa.GenerateKey(rand.Reader, 512) privateKey, _ := rsa.GenerateKey(rand.Reader, 1024)
mux.HandleFunc("/chlg", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/chlg", func(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost { if r.Method != http.MethodPost {

View File

@ -66,7 +66,7 @@ func TestChallenge(t *testing.T) {
return nil return nil
} }
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -95,7 +95,7 @@ func TestChallenge(t *testing.T) {
func TestChallengeInvalidPort(t *testing.T) { func TestChallengeInvalidPort(t *testing.T) {
_, apiURL := tester.SetupFakeAPI(t) _, apiURL := tester.SetupFakeAPI(t)
privateKey, err := rsa.GenerateKey(rand.Reader, 128) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)
@ -167,7 +167,7 @@ func TestChallengeIPaddress(t *testing.T) {
return nil return nil
} }
privateKey, err := rsa.GenerateKey(rand.Reader, 512) privateKey, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey) core, err := api.New(http.DefaultClient, "lego-test", apiURL+"/dir", "", privateKey)

2
go.mod
View File

@ -1,6 +1,6 @@
module github.com/go-acme/lego/v4 module github.com/go-acme/lego/v4
go 1.22.0 go 1.23.0
require ( require (
cloud.google.com/go/compute/metadata v0.6.0 cloud.google.com/go/compute/metadata v0.6.0

View File

@ -15,8 +15,7 @@ import (
func TestNewClient(t *testing.T) { func TestNewClient(t *testing.T) {
_, apiURL := tester.SetupFakeAPI(t) _, apiURL := tester.SetupFakeAPI(t)
keyBits := 32 // small value keeps test fast key, err := rsa.GenerateKey(rand.Reader, 1024)
key, err := rsa.GenerateKey(rand.Reader, keyBits)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
user := mockUser{ user := mockUser{

View File

@ -1,31 +1,18 @@
package internal package internal
import ( import (
"crypto/rand"
"crypto/rsa"
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"strings" "strings"
"testing" "testing"
"github.com/go-acme/lego/v4/certcrypto"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
const privateKey = `-----BEGIN RSA PRIVATE KEY-----
MIICWgIBAAKBgGFfgMY+DuO8l0RYrMLhcl6U/NigNIiOVhoo/xnYyoQALpWxBaBR
+iVJiBUYunQjKA33yAiY0AasCfSn1JB6asayQvGGn73xztLjkeCVLT+9e4nJ0A/o
dK8SOKBg9FFe70KJrWjJd626el0aVDJjtCE+QxJExA0UZbQp+XIyveQXAgMBAAEC
gYBHcL1XNWLRPaWx9GlUVfoGYMMd4HSKl/ueF+QKP59dt5B2LTnWhS7FOqzH5auu
17hkfx3ZCNzfeEuZn6T6F4bMtsQ6A5iT/DeRlG8tOPiCVZ/L0j6IFM78iIUT8XyA
miwnSy1xGSBA67yUmsLxFg2DtGCjamAkY0C5pccadaB7oQJBAKsIPpMXMni+Oo1I
kVxRyoIZgDxsMJiihG2YLVqo8rPtdErl+Lyg3ziVyg9KR6lFMaTBkYBTLoCPof3E
AB/jyucCQQCRv1cVnYNx+bfnXsBlcsCFDV2HkEuLTpxj7hauD4P3GcyLidSsUkn1
PiPunZqKpsQaIoxc/BzTOCcP19ifgqdRAkBJ8Cp9FE4xfKt7YJ/WtVVCoRubA3qO
wdNWPa99vgQOXN0lc/3wLevSXo8XxRjtyIgJndT1EQDNe0qglhcnsiaJAkBziAcR
/VAq0tZys2szf6kYTyXqxfj8Lo5NsHeN9oKXJ346xkEtb/VsT5vQFGJishsU1HoL
Y1W+IO7l4iW3G6xhAkACNwtqxSRRbVsNCUMENpKmYhsyN8QXJ8V+o2A9s+pl21Kz
HIIm179mUYCgO6iAHmkqxlFHFwprUBKdPrmP8qF9
-----END RSA PRIVATE KEY-----`
type Header struct { type Header struct {
Algorithm string `json:"alg"` Algorithm string `json:"alg"`
Type string `json:"typ"` Type string `json:"typ"`
@ -33,7 +20,10 @@ type Header struct {
} }
func TestPayload_buildToken(t *testing.T) { func TestPayload_buildToken(t *testing.T) {
signer, err := getRSASigner(privateKey, "sampleKeyId") key, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err)
signer, err := getRSASigner(string(certcrypto.PEMEncode(key)), "sampleKeyId")
require.NoError(t, err) require.NoError(t, err)
payload := Payload{IssuedAt: 1234, Expiry: 4321, Audience: "api.url", Issuer: "issuer", Subject: "subject"} payload := Payload{IssuedAt: 1234, Expiry: 4321, Audience: "api.url", Issuer: "issuer", Subject: "subject"}

View File

@ -320,7 +320,7 @@ func mustGeneratePrivateKeyFile(pwd string) string {
} }
func generatePrivateKey(pwd string) (*pem.Block, error) { func generatePrivateKey(pwd string) (*pem.Block, error) {
key, err := rsa.GenerateKey(rand.Reader, 512) key, err := rsa.GenerateKey(rand.Reader, 1024)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -27,7 +27,7 @@ func TestRegistrar_ResolveAccountByKey(t *testing.T) {
} }
}) })
key, err := rsa.GenerateKey(rand.Reader, 512) key, err := rsa.GenerateKey(rand.Reader, 1024)
require.NoError(t, err, "Could not generate test key") require.NoError(t, err, "Could not generate test key")
user := mockUser{ user := mockUser{