From 595e152de442d7af247924ea5e45177a21307671 Mon Sep 17 00:00:00 2001 From: Levi Durfee Date: Thu, 8 Jan 2026 10:58:05 -0500 Subject: Start writing tests --- internal/goaes_test.go | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 internal/goaes_test.go (limited to 'internal/goaes_test.go') diff --git a/internal/goaes_test.go b/internal/goaes_test.go new file mode 100644 index 0000000..c965e54 --- /dev/null +++ b/internal/goaes_test.go @@ -0,0 +1,83 @@ +package internal_test + +import ( + "os" + "testing" + + "github.com/nerdsec/goaes/internal" +) + +const totalIterationTests = 100 + +func TestNewDEK(t *testing.T) { + for range totalIterationTests { + dek, err := internal.NewDEK() + if err != nil { + t.Errorf("failed to create dek. error: %v", err) + } + + if len(dek) < 32 { + t.Errorf("dek too small") + } + } +} + +func TestNewSalt(t *testing.T) { + for range totalIterationTests { + salt, err := internal.NewSalt() + if err != nil { + t.Errorf("failed to create salt. error: %v", err) + } + + if len(salt) < 32 { + t.Errorf("salt too small") + } + } +} + +func TestNewKEKFromEnvB64(t *testing.T) { + tests := []struct { + name string + passphraseEnvVar string + passphrase string + salt internal.Salt + wantErr bool + }{ + { + name: "Valid base64", + passphraseEnvVar: "GOAES_PASSPHRASE", + passphrase: "dJyHOdMbG94EMvQGQrs6YZiXGiAGQgDYtx6+eqLufQg=", + salt: []byte("kD+tNSxjss1XchcyyrKJyZBGg2mdmhh/IO3I87WW2Ds="), + wantErr: false, + }, + { + name: "Invalid passphrase base64", + passphraseEnvVar: "GOAES_PASSPHRASE", + passphrase: "dJyHOdMbG94EMvQGQrs6YZiXGiAGQgDYtx6eqLufQg=", + salt: []byte("kD+tNSxjss1XchcyyrKJyZBGg2mdmhh/IO3I87WW2Ds="), + wantErr: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := os.Setenv(tt.passphraseEnvVar, tt.passphrase) + if err != nil { + t.Fatal("failed to set env var") + } + + _, gotErr := internal.NewKEKFromEnvB64(tt.passphraseEnvVar, tt.salt) + if gotErr != nil { + if !tt.wantErr { + t.Errorf("NewKEKFromEnvB64() failed: %v", gotErr) + } + + return + } + + if tt.wantErr { + t.Fatal("NewKEKFromEnvB64() succeeded unexpectedly") + } + }) + } +} -- cgit v1.2.3