Skip to content

Commit

Permalink
Add unit coverage and restore len() count
Browse files Browse the repository at this point in the history
  • Loading branch information
beautifulentropy committed Jan 15, 2025
1 parent 525dfc3 commit c32768b
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 1 deletion.
5 changes: 4 additions & 1 deletion cmd/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,10 @@ func (hc *HMACKeyConfig) Load() ([]byte, error) {
}

if len(decoded) != 32 {
return nil, errors.New("validating HMAC key, must be exactly 256 bits (32 bytes) after decoding")
return nil, fmt.Errorf(
"validating HMAC key, must be exactly 256 bits (32 bytes) after decoding, got %d",
len(decoded),
)
}
return decoded, nil
}
55 changes: 55 additions & 0 deletions cmd/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,58 @@ func TestTLSConfigLoad(t *testing.T) {
})
}
}

func TestHMACKeyConfigLoad(t *testing.T) {
t.Parallel()

tests := []struct {
name string
content string
expectedErr bool
}{
{
name: "Valid key",
content: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
expectedErr: false,
},
{
name: "Empty file",
content: "",
expectedErr: true,
},
{
name: "Just under 256-bit",
content: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789ab",
expectedErr: true,
},
{
name: "Just over 256-bit",
content: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01",
expectedErr: true,
},
}

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()

tempKeyFile, err := os.CreateTemp("", "*")
if err != nil {
t.Fatalf("failed to create temp file: %v", err)
}
defer os.Remove(tempKeyFile.Name())

_, err = tempKeyFile.WriteString(tt.content)
if err != nil {
t.Fatalf("failed to write to temp file: %v", err)
}
tempKeyFile.Close()

hmacKeyConfig := HMACKeyConfig{KeyFile: tempKeyFile.Name()}
_, err = hmacKeyConfig.Load()
if (err != nil) != tt.expectedErr {
t.Errorf("expected error: %v, got: %v", tt.expectedErr, err)
}
})
}
}

0 comments on commit c32768b

Please sign in to comment.