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  }