mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package certmanager
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
"os"
|
||
|
|
"path/filepath"
|
||
|
|
"runtime"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestSaveAndLoadCARoundTrip(t *testing.T) {
|
||
|
|
dir := t.TempDir()
|
||
|
|
|
||
|
|
ca, err := GenerateCA(DefaultCertManagerConfig())
|
||
|
|
require.NoError(t, err)
|
||
|
|
|
||
|
|
require.NoError(t, SaveCA(dir, ca))
|
||
|
|
|
||
|
|
if runtime.GOOS != "windows" {
|
||
|
|
keyInfo, err := os.Stat(CAKeyPath(dir))
|
||
|
|
require.NoError(t, err)
|
||
|
|
assert.Equal(t, os.FileMode(0o600), keyInfo.Mode().Perm())
|
||
|
|
|
||
|
|
certInfo, err := os.Stat(CACertPath(dir))
|
||
|
|
require.NoError(t, err)
|
||
|
|
assert.Equal(t, os.FileMode(0o644), certInfo.Mode().Perm())
|
||
|
|
}
|
||
|
|
|
||
|
|
loaded, err := LoadCA(dir)
|
||
|
|
require.NoError(t, err)
|
||
|
|
assert.Equal(t, ca.Certificate, loaded.Certificate)
|
||
|
|
assert.Equal(t, ca.PrivateKey, loaded.PrivateKey)
|
||
|
|
require.NotNil(t, loaded.X509Cert)
|
||
|
|
require.NotNil(t, loaded.PrivKey)
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestLoadCAMissingIsNotExist(t *testing.T) {
|
||
|
|
_, err := LoadCA(filepath.Join(t.TempDir(), "nope"))
|
||
|
|
require.Error(t, err)
|
||
|
|
assert.True(t, errors.Is(err, os.ErrNotExist))
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestPersistentConfigIsLongLived(t *testing.T) {
|
||
|
|
assert.Equal(t, 3650, PersistentCACertManagerConfig().CAValidityDays)
|
||
|
|
}
|