Files
k3s/pkg/authenticator/hash/scrypt_test.go
Derek Nola d66f873a12 [Release-1.31] GHA Artifacts + Testing Backports July 2025 (#12610)
* Move to more secure split trivy workflow based on labels, not comments (#12592)

Signed-off-by: Derek Nola <derek.nola@suse.com>

* Add basic fuzz test

Signed-off-by: Derek Nola <derek.nola@suse.com>

* Add retry around common timeout for hardened docker test (#12601)

Signed-off-by: Derek Nola <derek.nola@suse.com>

* Remove ghcr build cache (#12602)

Signed-off-by: Derek Nola <derek.nola@suse.com>

* Migrate K3s Release Artifacts to GHA (#12606)

Signed-off-by: Derek Nola <derek.nola@suse.com>

---------

Signed-off-by: Derek Nola <derek.nola@suse.com>
2025-07-11 10:55:51 -07:00

58 lines
1.2 KiB
Go

package hash
import (
"strings"
"testing"
)
func Test_UnitSCrypt_VerifyHash(t *testing.T) {
type args struct {
secretKey string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "Basic Hash Test",
args: args{
secretKey: "hello world",
},
},
{
name: "Long Hash Test",
args: args{
secretKey: strings.Repeat("A", 720),
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
hasher := NewSCrypt()
hash, _ := hasher.CreateHash(tt.args.secretKey)
if err := hasher.VerifyHash(hash, tt.args.secretKey); (err != nil) != tt.wantErr {
t.Errorf("SCrypt.VerifyHash() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func FuzzVerifyHash(f *testing.F) {
hasher := NewSCrypt()
validSecret := "my-secret-password"
validHash, _ := hasher.CreateHash(validSecret)
// Seed the fuzzer with some valid and invalid inputs
f.Add(validHash, validSecret)
f.Add(validHash, "wrong-password")
f.Add("", "")
f.Add("$1:deadbeef:f:8:1:corrupt-hash", "any-password")
f.Add("", validSecret)
f.Add(validHash, "")
f.Fuzz(func(t *testing.T, hash, secretKey string) {
_ = hasher.VerifyHash(hash, secretKey)
})
}