Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(32)

Unified Diff: cert/cert_test.go

Issue 13832045: environs/httpstorage: authentication support
Patch Set: Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cert/cert.go ('k') | environs/config/config.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cert/cert_test.go
=== modified file 'cert/cert_test.go'
--- cert/cert_test.go 2013-09-13 14:48:13 +0000
+++ cert/cert_test.go 2013-09-24 05:42:43 +0000
@@ -76,12 +76,12 @@
caCert, _, err := cert.ParseCertAndKey(caCertPEM, caKeyPEM)
c.Assert(err, gc.IsNil)
- srvCertPEM, srvKeyPEM, err := cert.NewServer("juju test", caCertPEM, caKeyPEM, expiry)
+ var noHostnames []string
+ srvCertPEM, srvKeyPEM, err := cert.NewServer(caCertPEM, caKeyPEM, expiry, noHostnames)
c.Assert(err, gc.IsNil)
srvCert, srvKey, err := cert.ParseCertAndKey(srvCertPEM, srvKeyPEM)
c.Assert(err, gc.IsNil)
- c.Assert(err, gc.IsNil)
c.Assert(srvCert.Subject.CommonName, gc.Equals, "*")
c.Assert(srvCert.NotAfter.Equal(expiry), gc.Equals, true)
c.Assert(srvCert.BasicConstraintsValid, gc.Equals, false)
@@ -90,6 +90,41 @@
checkTLSConnection(c, caCert, srvCert, srvKey)
}
+func (certSuite) TestNewServerHostnames(c *gc.C) {
+ type test struct {
+ hostnames []string
+ expectedDNSNames []string
+ expectedIPAddresses []net.IP
+ }
+ tests := []test{{
+ []string{},
+ nil,
+ nil,
+ }, {
+ []string{"example.com"},
+ []string{"example.com"},
+ nil,
+ }, {
+ []string{"example.com", "127.0.0.1"},
+ []string{"example.com"},
+ []net.IP{net.IPv4(127, 0, 0, 1).To4()},
+ }, {
+ []string{"::1"},
+ nil,
+ []net.IP{net.IPv6loopback},
+ }}
+ for i, t := range tests {
+ c.Logf("test %d: %v", i, t.hostnames)
+ expiry := roundTime(time.Now().AddDate(1, 0, 0))
+ srvCertPEM, srvKeyPEM, err := cert.NewServer(caCertPEM, caKeyPEM, expiry, t.hostnames)
+ c.Assert(err, gc.IsNil)
+ srvCert, _, err := cert.ParseCertAndKey(srvCertPEM, srvKeyPEM)
+ c.Assert(err, gc.IsNil)
+ c.Assert(srvCert.DNSNames, gc.DeepEquals, t.expectedDNSNames)
+ c.Assert(srvCert.IPAddresses, gc.DeepEquals, t.expectedIPAddresses)
+ }
+}
+
func (certSuite) TestWithNonUTCExpiry(c *gc.C) {
expiry, err := time.Parse("2006-01-02 15:04:05.999999999 -0700 MST", "2012-11-28 15:53:57 +0100 CET")
c.Assert(err, gc.IsNil)
@@ -98,14 +133,16 @@
c.Assert(err, gc.IsNil)
c.Assert(xcert.NotAfter.Equal(expiry), gc.Equals, true)
- certPEM, _, err = cert.NewServer("foo", certPEM, keyPEM, expiry)
+ var noHostnames []string
+ certPEM, _, err = cert.NewServer(certPEM, keyPEM, expiry, noHostnames)
xcert, err = cert.ParseCert(certPEM)
c.Assert(err, gc.IsNil)
c.Assert(xcert.NotAfter.Equal(expiry), gc.Equals, true)
}
func (certSuite) TestNewServerWithInvalidCert(c *gc.C) {
- srvCert, srvKey, err := cert.NewServer("foo", nonCACert, nonCAKey, time.Now())
+ var noHostnames []string
+ srvCert, srvKey, err := cert.NewServer(nonCACert, nonCAKey, time.Now(), noHostnames)
c.Check(srvCert, gc.IsNil)
c.Check(srvKey, gc.IsNil)
c.Assert(err, gc.ErrorMatches, "CA certificate is not a valid CA")
@@ -116,7 +153,8 @@
caCert, caKey, err := cert.NewCA("foo", now.Add(1*time.Minute))
c.Assert(err, gc.IsNil)
- srvCert, _, err := cert.NewServer("foo", caCert, caKey, now.Add(3*time.Minute))
+ var noHostnames []string
+ srvCert, _, err := cert.NewServer(caCert, caKey, now.Add(3*time.Minute), noHostnames)
c.Assert(err, gc.IsNil)
err = cert.Verify(srvCert, caCert, now)
@@ -139,7 +177,7 @@
err = cert.Verify(srvCert, caCert2, now)
c.Check(err, gc.ErrorMatches, "x509: certificate signed by unknown authority")
- srvCert2, _, err := cert.NewServer("bar", caCert2, caKey2, now.Add(1*time.Minute))
+ srvCert2, _, err := cert.NewServer(caCert2, caKey2, now.Add(1*time.Minute), noHostnames)
c.Assert(err, gc.IsNil)
// Check new server certificate against original CA.
« no previous file with comments | « cert/cert.go ('k') | environs/config/config.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b