Files
certmanager/internal/logic/x509_test.go
Олег Бородин eb218c4bf6 certmanager updated
2024-08-06 08:19:01 +02:00

65 lines
1.5 KiB
Go

package logic
import (
//"crypto/x509"
"fmt"
"os"
"strings"
"testing"
//"time"
"github.com/stretchr/testify/require"
"sigs.k8s.io/yaml"
)
func TestCertChainChecker(t *testing.T) {
var err error
serviceCertBytes, err := os.ReadFile("testchain_a01.crt")
require.NoError(t, err)
require.NotZero(t, len(serviceCertBytes))
serviceCert, err := ParseEncodedCerificate(string(serviceCertBytes))
require.NoError(t, err)
require.NotNil(t, serviceCert)
certChain := make([]*CertificateCortege, 0)
for i := 1; i < 4; i++ {
certBytes, err := os.ReadFile(fmt.Sprintf("testchain_a%02d.crt", i))
require.NoError(t, err)
require.NotZero(t, len(certBytes))
cert, err := ParseEncodedCerificate(string(certBytes))
require.NoError(t, err)
require.NotNil(t, cert)
certCortege := &CertificateCortege{
CertString: string(certBytes),
CertObj: cert,
}
fmt.Printf("Subject: %s\n", cert.Subject.String())
fmt.Printf("Issuer: %s\n\n\n", cert.Issuer.String())
//expired := cert.NotAfter.Before(time.Now())
//require.False(t, expired)
certChain = append(certChain, certCortege)
}
topIssuerCN := serviceCert.Issuer.String()
resChain, err := CheckCertificateChain(topIssuerCN, certChain)
require.NoError(t, err)
require.NotNil(t, resChain)
}
func printObj(label string, obj any) {
objBytes, _ := yaml.Marshal(obj)
objString := string(objBytes)
if strings.Count(objString, "\n") < 2 {
fmt.Printf("==== %s: %s\n", label, objString)
} else {
fmt.Printf("==== %s ::\n%s\n", label, objString)
}
}