Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ require (
github.com/shurcooL/graphql v0.0.0-20181231061246-d48a9a75455f // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/stretchr/testify v1.10.0
github.com/stretchr/testify v1.10.0 // indirect
github.com/vbatts/tar-split v0.12.1 // indirect
go.uber.org/automaxprocs v1.6.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
Expand Down
27 changes: 19 additions & 8 deletions pkg/spire/test/ca.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ import (
"github.com/spiffe/go-spiffe/v2/spiffeid"
"github.com/spiffe/go-spiffe/v2/svid/jwtsvid"
"github.com/spiffe/go-spiffe/v2/svid/x509svid"
"github.com/stretchr/testify/require"
"github.com/tektoncd/pipeline/pkg/spire/test/x509util"
)

Expand Down Expand Up @@ -123,13 +122,19 @@ func (ca *CA) CreateJWTSVID(id spiffeid.ID, audience []string) *jwtsvid.SVID {
},
new(jose.SignerOptions).WithType("JWT"),
)
require.NoError(ca.tb, err)
if err != nil {
ca.tb.Fatalf("failed to convert claims to Struct: %v", err)
}

signedToken, err := jwt.Signed(jwtSigner).Claims(claims).CompactSerialize()
require.NoError(ca.tb, err)
if err != nil {
ca.tb.Fatalf("failed to convert claims to Struct: %v", err)
}

svid, err := jwtsvid.ParseInsecure(signedToken, audience)
require.NoError(ca.tb, err)
if err != nil {
ca.tb.Fatalf("failed to convert claims to Struct: %v", err)
}
return svid
}

Expand Down Expand Up @@ -220,9 +225,13 @@ func CreateX509SVID(tb testing.TB, parent *x509.Certificate, parentKey crypto.Si

func CreateCertificate(tb testing.TB, tmpl, parent *x509.Certificate, pub, priv interface{}) *x509.Certificate {
certDER, err := x509.CreateCertificate(rand.Reader, tmpl, parent, pub, priv)
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to create listener: %v", err)
}
cert, err := x509.ParseCertificate(certDER)
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to create listener: %v", err)
}
return cert
}

Expand All @@ -242,7 +251,9 @@ func CreateWebCredentials(t testing.TB) (*x509.CertPool, *tls.Certificate) {
func NewSerial(tb testing.TB) *big.Int {
b := make([]byte, 8)
_, err := rand.Read(b)
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to create listener: %v", err)
}
return new(big.Int).SetBytes(b)
}

Expand Down Expand Up @@ -299,4 +310,4 @@ func (ca *CA) chain(includeRoot bool) []*x509.Certificate {
next = next.parent
}
return chain
}
}
21 changes: 15 additions & 6 deletions pkg/spire/test/fakebundleendpoint/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import (
"github.com/spiffe/go-spiffe/v2/bundle/spiffebundle"
"github.com/spiffe/go-spiffe/v2/spiffetls/tlsconfig"
"github.com/spiffe/go-spiffe/v2/svid/x509svid"
"github.com/stretchr/testify/assert"
"github.com/tektoncd/pipeline/pkg/spire/test"
"github.com/tektoncd/pipeline/pkg/spire/test/x509util"
)
Expand Down Expand Up @@ -82,7 +81,9 @@ func New(tb testing.TB, option ...ServerOption) *Server {

func (s *Server) Shutdown() {
err := s.httpServer.Shutdown(context.Background())
assert.NoError(s.tb, err)
if err!=nil {
s.tb.Errorf("unexpected error: %v", err)
}
s.wg.Wait()
}

Expand All @@ -109,7 +110,9 @@ func (s *Server) start() error {
s.wg.Add(1)
go func() {
err := s.httpServer.ServeTLS(ln, "", "")
assert.EqualError(s.tb, err, http.ErrServerClosed.Error())
if err != nil || err.Error()!=http.ErrServerClosed.Error(){
s.tb.Errorf("expected error %q, got %v",http.ErrServerClosed.Error(),err)
}
s.wg.Done()
ln.Close()
}()
Expand All @@ -123,12 +126,18 @@ func (s *Server) testbundle(w http.ResponseWriter, r *http.Request) {
}

bb, err := s.bundles[0].Marshal()
assert.NoError(s.tb, err)
if err != nil {
s.tb.Errorf("unexpected error: %v", err)
}
s.bundles = s.bundles[1:]
w.Header().Add("Content-Type", "application/json")
b, err := w.Write(bb)
assert.NoError(s.tb, err)
assert.Equal(s.tb, len(bb), b)
if err != nil {
s.tb.Errorf("unexpected error: %v", err)
}
if len(bb) != b {
s.tb.Errorf("expected written bytes %d, got %d", len(bb), b)
}
}

type serverOption func(*Server)
Expand Down
26 changes: 18 additions & 8 deletions pkg/spire/test/fakeworkloadapi/workload_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ import (
"github.com/spiffe/go-spiffe/v2/proto/spiffe/workload"
"github.com/spiffe/go-spiffe/v2/svid/jwtsvid"
"github.com/spiffe/go-spiffe/v2/svid/x509svid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/tektoncd/pipeline/pkg/spire/test/pemutil"
"github.com/tektoncd/pipeline/pkg/spire/test/x509util"
"google.golang.org/grpc"
Expand Down Expand Up @@ -67,7 +65,9 @@ func New(tb testing.TB) *WorkloadAPI {
}

listener, err := newListener()
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to create listener: %v", err)
}

server := grpc.NewServer()
workload.RegisterSpiffeWorkloadAPIServer(server, &workloadAPIWrapper{w: w})
Expand Down Expand Up @@ -127,7 +127,9 @@ func (w *WorkloadAPI) SetJWTBundles(jwtBundles ...*jwtbundle.Bundle) {
}
for _, bundle := range jwtBundles {
bundleBytes, err := bundle.Marshal()
assert.NoError(w.tb, err)
if err != nil {
w.tb.Fatalf("failed to marshal JWT bundle: %v", err)
}
resp.Bundles[bundle.TrustDomain().String()] = bundleBytes
}

Expand All @@ -151,9 +153,13 @@ func (w *WorkloadAPI) SetX509Bundles(x509Bundles ...*x509bundle.Bundle) {
}
for _, bundle := range x509Bundles {
bundleBytes, err := bundle.Marshal()
assert.NoError(w.tb, err)
if err != nil {
w.tb.Fatalf("failed to marshal X509 bundle: %v", err)
}
bundlePem, err := pemutil.ParseCertificates(bundleBytes)
assert.NoError(w.tb, err)
if err != nil {
w.tb.Fatalf("failed to parse certificates: %v", err)
}

var rawBytes []byte
for _, c := range bundlePem {
Expand Down Expand Up @@ -222,7 +228,9 @@ func (r *X509SVIDResponse) ToProto(tb testing.TB) *workload.X509SVIDResponse {
if svid.PrivateKey != nil {
var err error
keyDER, err = x509.MarshalPKCS8PrivateKey(svid.PrivateKey)
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to marshal private key: %v", err)
}
}
pb.Svids = append(pb.Svids, &workload.X509SVID{
SpiffeId: svid.ID.String(),
Expand Down Expand Up @@ -381,7 +389,9 @@ func (w *WorkloadAPI) validateJWTSVID(_ context.Context, req *workload.ValidateJ
return nil, status.Error(codes.InvalidArgument, err.Error())
}
claims, err := structFromValues(jwtSvid.Claims)
require.NoError(w.tb, err)
if err != nil {
w.tb.Fatalf("failed to convert claims to Struct: %v", err)
}

return &workload.ValidateJWTSVIDResponse{
SpiffeId: jwtSvid.ID.String(),
Expand Down
12 changes: 7 additions & 5 deletions pkg/spire/test/keys.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ import (
"crypto/rand"
"strings"
"testing"

"github.com/stretchr/testify/require"
)

// Methods to generate private keys. If generation starts slowing down test
Expand All @@ -32,15 +30,19 @@ import (
// NewEC256Key returns an ECDSA key over the P256 curve
func NewEC256Key(tb testing.TB) *ecdsa.PrivateKey {
key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to marshal private key: %v", err)
}
return key
}

// NewKeyID returns a random id useful for identifying keys
func NewKeyID(tb testing.TB) string {
choices := make([]byte, 32)
_, err := rand.Read(choices)
require.NoError(tb, err)
if err != nil {
tb.Fatalf("failed to marshal private key: %v", err)
}
return keyIDFromBytes(choices)
}

Expand All @@ -51,4 +53,4 @@ func keyIDFromBytes(choices []byte) string {
builder.WriteByte(alphabet[int(choice)%len(alphabet)])
}
return builder.String()
}
}
Loading