...

Source file src/github.com/emissary-ingress/emissary/v3/cmd/apiext/ca_test.go

Documentation: github.com/emissary-ingress/emissary/v3/cmd/apiext

     1  package apiext
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  	k8sTypesCoreV1 "k8s.io/api/core/v1"
     8  
     9  	"github.com/datawire/dlib/dlog"
    10  )
    11  
    12  func TestCA(t *testing.T) {
    13  	caKey, caKeyBytes, err := genKey()
    14  	require.NoError(t, err)
    15  	require.NotNil(t, caKey)
    16  	require.True(t, len(caKeyBytes) > 0, "caKeyBytes should be non-empty")
    17  
    18  	caCertBytes, err := genCACert(caKey)
    19  	require.NoError(t, err)
    20  	require.True(t, len(caCertBytes) > 0, "caCertBytes should be non-empty")
    21  
    22  	ca, err := parseCA(&k8sTypesCoreV1.Secret{
    23  		Type: k8sTypesCoreV1.SecretTypeTLS,
    24  		Data: map[string][]byte{
    25  			k8sTypesCoreV1.TLSPrivateKeyKey: caKeyBytes,
    26  			k8sTypesCoreV1.TLSCertKey:       caCertBytes,
    27  		},
    28  	})
    29  	require.NoError(t, err)
    30  	require.NotNil(t, ca)
    31  
    32  	ctx := dlog.NewTestContext(t, true)
    33  
    34  	a, err := ca.GenServerCert(ctx, "foo")
    35  	require.NoError(t, err)
    36  	require.NotNil(t, a)
    37  
    38  	b, err := ca.GenServerCert(ctx, "foo")
    39  	require.NoError(t, err)
    40  	require.NotNil(t, b)
    41  
    42  	// pointer equality
    43  	require.True(t, a == b, "because of caching, certs should be pointer-equal")
    44  }
    45  

View as plain text