- Round-trip, fresh nonce, redaction, previous_keys fallback - LoadAppKey rejects empty/short/undecodable keys - key:generate prints 32-byte base64; DecryptLaravelPayload fixture
41 lines
904 B
Go
41 lines
904 B
Go
package lagoon
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/base64"
|
|
"strings"
|
|
"testing"
|
|
|
|
"git.golem15.com/golem15/summercms/bonfire"
|
|
)
|
|
|
|
func TestEncryptedKeyGeneratePrints32ByteBase64(t *testing.T) {
|
|
cmd := KeyGenerateCommand()
|
|
if cmd.Name != "key:generate" {
|
|
t.Fatalf("Name = %q", cmd.Name)
|
|
}
|
|
if cmd.Run == nil {
|
|
t.Fatal("Run is nil")
|
|
}
|
|
|
|
var buf bytes.Buffer
|
|
out := bonfire.NewOutput(strings.NewReader(""), &buf, &buf)
|
|
if err := cmd.Run(context.Background(), nil, out); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
line := strings.TrimSpace(buf.String())
|
|
fields := strings.Fields(line)
|
|
if len(fields) == 0 {
|
|
t.Fatal("key:generate produced no output")
|
|
}
|
|
encoded := fields[len(fields)-1]
|
|
raw, err := base64.StdEncoding.DecodeString(encoded)
|
|
if err != nil {
|
|
t.Fatalf("output %q is not base64: %v", encoded, err)
|
|
}
|
|
if len(raw) != 32 {
|
|
t.Fatalf("decoded key length = %d, want 32", len(raw))
|
|
}
|
|
}
|