github.com/status-im/status-go@v1.1.0/server/certs_test.go (about) 1 package server 2 3 import ( 4 "net" 5 "testing" 6 "time" 7 8 "github.com/btcsuite/btcutil/base58" 9 "github.com/stretchr/testify/suite" 10 11 "github.com/status-im/status-go/server/servertest" 12 ) 13 14 func TestCerts(t *testing.T) { 15 suite.Run(t, new(CertsSuite)) 16 } 17 18 type CertsSuite struct { 19 suite.Suite 20 servertest.TestKeyComponents 21 servertest.TestCertComponents 22 } 23 24 func (s *CertsSuite) SetupSuite() { 25 s.SetupKeyComponents(s.T()) 26 s.SetupCertComponents(s.T()) 27 } 28 29 func (s *CertsSuite) TestToECDSA() { 30 k := ToECDSA(base58.Decode(servertest.DB58)) 31 s.Require().NotNil(k.PublicKey.X) 32 s.Require().NotNil(k.PublicKey.Y) 33 34 s.Require().Zero(k.PublicKey.X.Cmp(s.X)) 35 s.Require().Zero(k.PublicKey.Y.Cmp(s.Y)) 36 s.Require().Zero(k.D.Cmp(s.D)) 37 38 b58 := base58.Encode(s.D.Bytes()) 39 s.Require().Equal(servertest.DB58, b58) 40 } 41 42 func (s *CertsSuite) TestGenerateX509Cert() { 43 notBefore := time.Now() 44 notAfter := notBefore.Add(time.Hour) 45 46 c1 := GenerateX509Cert(s.SN, notBefore, notAfter, []net.IP{}, []string{Localhost}) 47 s.Require().Exactly([]string{Localhost}, c1.DNSNames) 48 s.Require().Empty(c1.IPAddresses) 49 50 c2 := GenerateX509Cert(s.SN, notBefore, notAfter, []net.IP{LocalHostIP}, []string{}) 51 s.Require().Len(c2.IPAddresses, 1) 52 s.Require().Equal(LocalHostIP.String(), c2.IPAddresses[0].String()) 53 s.Require().Empty(c2.DNSNames) 54 }