func (s *certSuite) TestFingerprint(c *gc.C) { certPEM := []byte(testCertPEM) cert := lxdclient.NewCert(certPEM, nil) fingerprint, err := cert.Fingerprint() c.Assert(err, jc.ErrorIsNil) c.Check(fingerprint, gc.Equals, testCertFingerprint) }
func (s *certFunctionalSuite) TestGenerateCert(c *gc.C) { // This test involves the filesystem. certPEM, keyPEM, err := lxdclient.GenCertAndKey() c.Assert(err, jc.ErrorIsNil) cert := lxdclient.NewCert(certPEM, keyPEM) checkValidCert(c, &cert) }
func (s *certSuite) TestWriteKeyPEM(c *gc.C) { cert := lxdclient.NewCert(s.certPEM, s.keyPEM) var pemfile bytes.Buffer err := cert.WriteKeyPEM(&pemfile) c.Assert(err, jc.ErrorIsNil) c.Check(pemfile.String(), gc.Equals, string(s.keyPEM)) }
func (s *certSuite) TestX509Okay(c *gc.C) { certPEM := []byte(testCertPEM) cert := lxdclient.NewCert(certPEM, nil) x509Cert, err := cert.X509() c.Assert(err, jc.ErrorIsNil) block, _ := pem.Decode(certPEM) c.Assert(block, gc.NotNil) c.Check(string(x509Cert.Raw), gc.Equals, string(block.Bytes)) }
// clientConfig builds a LXD Config based on the env config and returns it. func (c *environConfig) clientConfig() (lxdclient.Config, error) { remote := lxdclient.Remote{ Name: "juju-remote", Host: c.remoteURL(), } if c.clientCert() != "" { certPEM := []byte(c.clientCert()) keyPEM := []byte(c.clientKey()) cert := lxdclient.NewCert(certPEM, keyPEM) cert.Name = fmt.Sprintf("juju cert for env %q", c.Name()) remote.Cert = &cert } cfg := lxdclient.Config{ Namespace: c.namespace(), Dirname: lxdclient.ConfigPath("juju-" + c.namespace()), Remote: remote, } cfg, err := cfg.WithDefaults() if err != nil { return cfg, errors.Trace(err) } return cfg, nil }
func (s *certSuite) TestValidateMissingKeyPEM(c *gc.C) { cert := lxdclient.NewCert(s.certPEM, nil) err := cert.Validate() c.Check(err, jc.Satisfies, errors.IsNotValid) }
func (s *certSuite) TestValidateOkay(c *gc.C) { cert := lxdclient.NewCert(s.certPEM, s.keyPEM) err := cert.Validate() c.Check(err, jc.ErrorIsNil) }
func (s *certSuite) TestNewCert(c *gc.C) { cert := lxdclient.NewCert(s.certPEM, s.keyPEM) checkCert(c, cert, s.certPEM, s.keyPEM) }
func (s *certSuite) TestX509BadPEM(c *gc.C) { cert := lxdclient.NewCert(s.certPEM, s.keyPEM) _, err := cert.X509() c.Check(err, gc.ErrorMatches, `invalid cert PEM \(\d+ bytes\)`) }