74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package mtls
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/ed25519"
 | 
						|
	"crypto/x509"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestNewCa(t *testing.T) {
 | 
						|
	bcrt, key, err := NewCA(
 | 
						|
		CertificateOrganization("test_org"),
 | 
						|
		CertificateOrganizationalUnit("test_unit"),
 | 
						|
		CertificateIsCA(true),
 | 
						|
	)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	if _, ok := key.(ed25519.PrivateKey); !ok {
 | 
						|
		t.Fatalf("key is not ed25519")
 | 
						|
	}
 | 
						|
 | 
						|
	crt, err := x509.ParseCertificate(bcrt)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	if !crt.IsCA {
 | 
						|
		t.Fatalf("crt IsCA invalid %v", crt)
 | 
						|
	}
 | 
						|
	if crt.Subject.Organization[0] != "test_org" {
 | 
						|
		t.Fatalf("crt subject invalid %v", crt.Subject)
 | 
						|
	}
 | 
						|
	if crt.Subject.OrganizationalUnit[0] != "test_unit" {
 | 
						|
		t.Fatalf("crt subject invalid %v", crt.Subject)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestNewIntermediate(t *testing.T) {
 | 
						|
	bcrt, cakey, err := NewCA(
 | 
						|
		CertificateOrganization("test_org"),
 | 
						|
		CertificateOrganizationalUnit("test_unit"),
 | 
						|
	)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	cacrt, err := x509.ParseCertificate(bcrt)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	bcrt, ikey, err := NewIntermediate(cacrt, cakey,
 | 
						|
		CertificateOrganization("test_org"),
 | 
						|
		CertificateOrganizationalUnit("test_unit"),
 | 
						|
	)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	_ = ikey
 | 
						|
	icrt, err := x509.ParseCertificate(bcrt)
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
 | 
						|
	if icrt.IsCA {
 | 
						|
		t.Fatalf("crt IsCA invalid %v", icrt)
 | 
						|
	}
 | 
						|
	if icrt.Subject.Organization[0] != "test_org" {
 | 
						|
		t.Fatalf("crt subject invalid %v", icrt.Subject)
 | 
						|
	}
 | 
						|
	if icrt.Subject.OrganizationalUnit[0] != "test_unit" {
 | 
						|
		t.Fatalf("crt subject invalid %v", icrt.Subject)
 | 
						|
	}
 | 
						|
}
 |