distribution/registry/auth/token/fuzz_test.go

54 lines
1 KiB
Go
Raw Normal View History

package token
import (
"testing"
fuzz "github.com/AdaLogics/go-fuzz-headers"
"github.com/go-jose/go-jose/v4"
)
func FuzzToken1(f *testing.F) {
f.Fuzz(func(t *testing.T, data []byte) {
ff := fuzz.NewConsumer(data)
rawToken, err := ff.GetString()
if err != nil {
return
}
verifyOps := VerifyOptions{}
err = ff.GenerateStruct(&verifyOps)
if err != nil {
return
}
token, err := NewToken(rawToken, []jose.SignatureAlgorithm{jose.EdDSA, jose.RS384})
if err != nil {
return
}
_, err = token.Verify(verifyOps)
if err != nil {
return
}
_, _ = token.VerifySigningKey(verifyOps)
})
}
func FuzzToken2(f *testing.F) {
f.Fuzz(func(t *testing.T, data []byte) {
ff := fuzz.NewConsumer(data)
verifyOps := VerifyOptions{}
err := ff.GenerateStruct(&verifyOps)
if err != nil {
return
}
token := &Token{}
err = ff.GenerateStruct(token)
if err != nil {
return
}
_, err = token.Verify(verifyOps)
if err != nil {
return
}
_, _ = token.VerifySigningKey(verifyOps)
})
}