74 lines
2.0 KiB
Go
74 lines
2.0 KiB
Go
package pki
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestGenerateCA(t *testing.T) {
|
|
// Create a temporary directory for the test
|
|
tempDir, err := os.MkdirTemp("", "kat-pki-test")
|
|
if err != nil {
|
|
t.Fatalf("Failed to create temp directory: %v", err)
|
|
}
|
|
defer os.RemoveAll(tempDir)
|
|
|
|
// Define paths for CA key and certificate
|
|
keyPath := filepath.Join(tempDir, "ca.key")
|
|
certPath := filepath.Join(tempDir, "ca.crt")
|
|
|
|
// Generate CA
|
|
err = GenerateCA(tempDir, keyPath, certPath)
|
|
if err != nil {
|
|
t.Fatalf("GenerateCA failed: %v", err)
|
|
}
|
|
|
|
// Verify files exist
|
|
if _, err := os.Stat(keyPath); os.IsNotExist(err) {
|
|
t.Errorf("CA key file was not created at %s", keyPath)
|
|
}
|
|
if _, err := os.Stat(certPath); os.IsNotExist(err) {
|
|
t.Errorf("CA certificate file was not created at %s", certPath)
|
|
}
|
|
|
|
// Load and verify CA certificate
|
|
caCert, err := LoadCACertificate(certPath)
|
|
if err != nil {
|
|
t.Fatalf("Failed to load CA certificate: %v", err)
|
|
}
|
|
|
|
// Verify CA properties
|
|
if !caCert.IsCA {
|
|
t.Errorf("Certificate is not marked as CA")
|
|
}
|
|
if caCert.Subject.CommonName != "KAT Root CA" {
|
|
t.Errorf("Unexpected CA CommonName: got %s, want %s", caCert.Subject.CommonName, "KAT Root CA")
|
|
}
|
|
if len(caCert.Subject.Organization) == 0 || caCert.Subject.Organization[0] != "KAT System" {
|
|
t.Errorf("Unexpected CA Organization: got %v, want [KAT System]", caCert.Subject.Organization)
|
|
}
|
|
|
|
// Load and verify CA key
|
|
_, err = LoadCAPrivateKey(keyPath)
|
|
if err != nil {
|
|
t.Fatalf("Failed to load CA private key: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestGetPKIPathFromClusterConfig(t *testing.T) {
|
|
// Test with empty backup path
|
|
pkiPath := GetPKIPathFromClusterConfig("")
|
|
if pkiPath != DefaultPKIDir {
|
|
t.Errorf("Expected default PKI path %s, got %s", DefaultPKIDir, pkiPath)
|
|
}
|
|
|
|
// Test with backup path
|
|
backupPath := "/opt/kat/backups"
|
|
expectedPKIPath := "/opt/kat/pki"
|
|
pkiPath = GetPKIPathFromClusterConfig(backupPath)
|
|
if pkiPath != expectedPKIPath {
|
|
t.Errorf("Expected PKI path %s, got %s", expectedPKIPath, pkiPath)
|
|
}
|
|
}
|