45 lines
914 B
Go
45 lines
914 B
Go
package security
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestGenerateKey(t *testing.T) {
|
|
k1, err := GenerateKey()
|
|
if err != nil {
|
|
t.Fatalf("GenerateKey: %v", err)
|
|
}
|
|
k2, err := GenerateKey()
|
|
if err != nil {
|
|
t.Fatalf("GenerateKey: %v", err)
|
|
}
|
|
if len(k1) != 64 {
|
|
t.Errorf("key length = %d, want 64 hex chars", len(k1))
|
|
}
|
|
if k1 == k2 {
|
|
t.Error("two generated keys are identical")
|
|
}
|
|
}
|
|
|
|
func TestGenerateSelfSignedCert(t *testing.T) {
|
|
dir := t.TempDir()
|
|
certFile := filepath.Join(dir, "cert.pem")
|
|
keyFile := filepath.Join(dir, "key.pem")
|
|
|
|
if err := GenerateSelfSignedCert(certFile, keyFile, []string{"localhost", "127.0.0.1"}); err != nil {
|
|
t.Fatalf("GenerateSelfSignedCert: %v", err)
|
|
}
|
|
|
|
for _, f := range []string{certFile, keyFile} {
|
|
info, err := os.Stat(f)
|
|
if err != nil {
|
|
t.Fatalf("Stat %s: %v", f, err)
|
|
}
|
|
if info.Size() == 0 {
|
|
t.Errorf("%s is empty", f)
|
|
}
|
|
}
|
|
}
|