Skip to content

Commit 23d54d3

Browse files
committed
fixes to make tests pass under Go tip
The old certificates in the tests are no longer considered valid and fail with a "x509: RSA key missing NULL parameters" error when parsing.
1 parent 9e208be commit 23d54d3

File tree

9 files changed

+108
-200
lines changed

9 files changed

+108
-200
lines changed

cert/cert_test.go

+43-36
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func checkNotAfter(c *gc.C, cert *x509.Certificate, expiry time.Time) {
4747
func (certSuite) TestParseCertificate(c *gc.C) {
4848
xcert, err := cert.ParseCert(caCertPEM)
4949
c.Assert(err, jc.ErrorIsNil)
50-
c.Assert(xcert.Subject.CommonName, gc.Equals, "juju testing")
50+
c.Assert(xcert.Subject.CommonName, gc.Equals, `juju-generated CA for model "juju testing"`)
5151

5252
xcert, err = cert.ParseCert(caKeyPEM)
5353
c.Check(xcert, gc.IsNil)
@@ -61,7 +61,7 @@ func (certSuite) TestParseCertificate(c *gc.C) {
6161
func (certSuite) TestParseCertAndKey(c *gc.C) {
6262
xcert, key, err := cert.ParseCertAndKey(caCertPEM, caKeyPEM)
6363
c.Assert(err, jc.ErrorIsNil)
64-
c.Assert(xcert.Subject.CommonName, gc.Equals, "juju testing")
64+
c.Assert(xcert.Subject.CommonName, gc.Equals, `juju-generated CA for model "juju testing"`)
6565
c.Assert(key, gc.NotNil)
6666

6767
c.Assert(xcert.PublicKey.(*rsa.PublicKey), gc.DeepEquals, &key.PublicKey)
@@ -298,51 +298,58 @@ func roundTime(t time.Time) time.Time {
298298
var (
299299
caCertPEM = `
300300
-----BEGIN CERTIFICATE-----
301-
MIIBnTCCAUmgAwIBAgIBADALBgkqhkiG9w0BAQUwJjENMAsGA1UEChMEanVqdTEV
302-
MBMGA1UEAxMManVqdSB0ZXN0aW5nMB4XDTEyMTExNDE0Mzg1NFoXDTIyMTExNDE0
303-
NDM1NFowJjENMAsGA1UEChMEanVqdTEVMBMGA1UEAxMManVqdSB0ZXN0aW5nMFow
304-
CwYJKoZIhvcNAQEBA0sAMEgCQQCCOOpn9aWKcKr2GQGtygwD7PdfNe1I9BYiPAqa
305-
2I33F5+6PqFdfujUKvoyTJI6XG4Qo/CECaaN9smhyq9DxzMhAgMBAAGjZjBkMA4G
306-
A1UdDwEB/wQEAwIABDASBgNVHRMBAf8ECDAGAQH/AgEBMB0GA1UdDgQWBBQQDswP
307-
FQGeGMeTzPbHW62EZbbTJzAfBgNVHSMEGDAWgBQQDswPFQGeGMeTzPbHW62EZbbT
308-
JzALBgkqhkiG9w0BAQUDQQAqZzN0DqUyEfR8zIanozyD2pp10m9le+ODaKZDDNfH
309-
8cB2x26F1iZ8ccq5IC2LtQf1IKJnpTcYlLuDvW6yB96g
301+
MIICHDCCAcagAwIBAgIUfzWn5ktGMxD6OiTgfiZyvKdM+ZYwDQYJKoZIhvcNAQEL
302+
BQAwazENMAsGA1UEChMEanVqdTEzMDEGA1UEAwwqanVqdS1nZW5lcmF0ZWQgQ0Eg
303+
Zm9yIG1vZGVsICJqdWp1IHRlc3RpbmciMSUwIwYDVQQFExwxMjM0LUFCQ0QtSVMt
304+
Tk9ULUEtUkVBTC1VVUlEMB4XDTE2MDkyMTEwNDgyN1oXDTI2MDkyODEwNDgyN1ow
305+
azENMAsGA1UEChMEanVqdTEzMDEGA1UEAwwqanVqdS1nZW5lcmF0ZWQgQ0EgZm9y
306+
IG1vZGVsICJqdWp1IHRlc3RpbmciMSUwIwYDVQQFExwxMjM0LUFCQ0QtSVMtTk9U
307+
LUEtUkVBTC1VVUlEMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL+0X+1zl2vt1wI4
308+
1Q+RnlltJyaJmtwCbHRhREXVGU7t0kTMMNERxqLnuNUyWRz90Rg8s9XvOtCqNYW7
309+
mypGrFECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMBAf8w
310+
HQYDVR0OBBYEFHueMLZ1QJ/2sKiPIJ28TzjIMRENMA0GCSqGSIb3DQEBCwUAA0EA
311+
ovZN0RbUHrO8q9Eazh0qPO4mwW9jbGTDz126uNrLoz1g3TyWxIas1wRJ8IbCgxLy
312+
XUrBZO5UPZab66lJWXyseA==
310313
-----END CERTIFICATE-----
311314
`
312315

313316
caKeyPEM = `
314317
-----BEGIN RSA PRIVATE KEY-----
315-
MIIBOwIBAAJBAII46mf1pYpwqvYZAa3KDAPs91817Uj0FiI8CprYjfcXn7o+oV1+
316-
6NQq+jJMkjpcbhCj8IQJpo32yaHKr0PHMyECAwEAAQJAYctedh4raLE+Ir0a3qnK
317-
pjQSfiUggtYTvTf7+tfAnZu946PX88ysr7XHPkXEGP4tWDTbl8BfGndrTKswVOx6
318-
RQIhAOT5OzafJneDQ5cuGLN/hxIPBLWxKT1/25O6dhtBlRyPAiEAkZfFvCtBZyKB
319-
JFwDdp+7gE98mXtaFrjctLWeFx797U8CIAnnqiMTwWM8H2ljyhfBtYMXeTmu3zzU
320-
0hfS4hcNwDiLAiEAkNXXU7YEPkFJD46ps1x7/s0UOutHV8tXZD44ou+l1GkCIQDO
321-
HOzuvYngJpoClGw0ipzJPoNZ2Z/GkdOWGByPeKu/8g==
318+
MIIBOgIBAAJBAL+0X+1zl2vt1wI41Q+RnlltJyaJmtwCbHRhREXVGU7t0kTMMNER
319+
xqLnuNUyWRz90Rg8s9XvOtCqNYW7mypGrFECAwEAAQJAMPa+JaUHgO6foxam/LIB
320+
0u95N3OgFR+dWeBaEsgKDclpREdJ0rXNI+3C3kwqeEZR4omoPlBeSEewSkwHxpmI
321+
0QIhAOjKiHZ5v6R8haleipbDzkGUnZW07hEwL5Ld4MNx/QQ1AiEA0tEzSSNAdM0C
322+
M/vY0x5mekIYai8/tFSEG9PJ3ZkpEy0CIQCo9B3YxwI1Un777vbs903iQQeiWP+U
323+
EAHnOQvhLgDxpQIgGkpml+9igW5zoOH+h02aQBLwEoXz7tw/YW0HFrCcE70CIGkS
324+
ve4WjiEqnQaHNAPy0hY/1DfIgBOSpOfnkFHOk9vX
322325
-----END RSA PRIVATE KEY-----
323326
`
324327

325-
nonCACert = `-----BEGIN CERTIFICATE-----
326-
MIIBmjCCAUagAwIBAgIBADALBgkqhkiG9w0BAQUwJjENMAsGA1UEChMEanVqdTEV
327-
MBMGA1UEAxMManVqdSB0ZXN0aW5nMB4XDTEyMTExNDE3MTU1NloXDTIyMTExNDE3
328-
MjA1NlowJjENMAsGA1UEChMEanVqdTEVMBMGA1UEAxMManVqdSB0ZXN0aW5nMFow
329-
CwYJKoZIhvcNAQEBA0sAMEgCQQC96/CsTTY1Va8et6QYNXwrssAi36asFlV/fksG
330-
hqRucidiz/+xHvhs9EiqEu7NGxeVAkcfIhXu6/BDlobtj2v5AgMBAAGjYzBhMA4G
331-
A1UdDwEB/wQEAwIABDAPBgNVHRMBAf8EBTADAgEBMB0GA1UdDgQWBBRqbxkIW4R0
332-
vmmkUoYuWg9sDob4jzAfBgNVHSMEGDAWgBRqbxkIW4R0vmmkUoYuWg9sDob4jzAL
333-
BgkqhkiG9w0BAQUDQQC3+KN8RppKdvlbP6fDwRC22PaCxd0PVyIHsn7I4jgpBPf8
334-
Z3codMYYA5/f0AmUsD7wi7nnJVPPLZK7JWu4VI/w
328+
nonCACert = `
329+
-----BEGIN CERTIFICATE-----
330+
MIIB8jCCAZygAwIBAgIVANueMZWTFEIx6AcNAWsG4VL4sUn5MA0GCSqGSIb3DQEB
331+
CwUAMGsxDTALBgNVBAoTBGp1anUxMzAxBgNVBAMMKmp1anUtZ2VuZXJhdGVkIENB
332+
IGZvciBtb2RlbCAianVqdSB0ZXN0aW5nIjElMCMGA1UEBRMcMTIzNC1BQkNELUlT
333+
LU5PVC1BLVJFQUwtVVVJRDAeFw0xNjA5MjExMDQ4MjdaFw0yNjA5MjgxMDQ4Mjda
334+
MBsxDTALBgNVBAoTBGp1anUxCjAIBgNVBAMTASowXDANBgkqhkiG9w0BAQEFAANL
335+
ADBIAkEAwZps3qpPu2FCAhbxolf/BvSa+dMal3AhPMe+lwTuSbtS81W+WSrbwUSI
336+
ZKSGHYDpFRN6ytNjt1oPbDNKDIR30wIDAQABo2cwZTAOBgNVHQ8BAf8EBAMCA6gw
337+
EwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFNNUDrcyP/4RbGBpKeC3gmfL
338+
kjlwMB8GA1UdIwQYMBaAFHueMLZ1QJ/2sKiPIJ28TzjIMRENMA0GCSqGSIb3DQEB
339+
CwUAA0EALiurKx//Qh5TQQ0TmT0P5f7OFLIs5XPSS98Lseb92h12CPNO4kB000Yh
340+
Xa7kZRGngwFbvjzqZ0eOfmo0l8M23A==
335341
-----END CERTIFICATE-----
336342
`
337343

338-
nonCAKey = `-----BEGIN RSA PRIVATE KEY-----
339-
MIIBOgIBAAJBAL3r8KxNNjVVrx63pBg1fCuywCLfpqwWVX9+SwaGpG5yJ2LP/7Ee
340-
+Gz0SKoS7s0bF5UCRx8iFe7r8EOWhu2Pa/kCAwEAAQJAdzuAxStUNPeuEWLJKkmp
341-
wuVdqocuZCtBUeE/yMEOyibZ9NLKSuDJuDorkoeoiBz2vyUITHkLp4jgNmCI8NGg
342-
AQIhAPZG9+3OghlzcqWR4nTho8KO/CuO9bu5G4jNEdIrSJ6BAiEAxWtoLZNMwI4Q
343-
kj2moFk9GdBXZV9I0t1VTwcDvVyeAXkCIDrfvldQPdO9wJOKK3vLkS1qpyf2lhIZ
344-
b1alx3PZuxOBAiAthPltYMRWtar+fTaZTFo5RH+SQSkibaRI534mQF+ySQIhAIml
345-
yiWVLC2XrtwijDu1fwh/wtFCb/bPvqvgG5wgAO+2
344+
nonCAKey = `
345+
-----BEGIN RSA PRIVATE KEY-----
346+
MIIBOwIBAAJBAMGabN6qT7thQgIW8aJX/wb0mvnTGpdwITzHvpcE7km7UvNVvlkq
347+
28FEiGSkhh2A6RUTesrTY7daD2wzSgyEd9MCAwEAAQJBAKfeuOvRjVUSneOl9Vsp
348+
Je7oBcD9dR8+kPNc1zungN7YVhIuxqvzXJSPeMGsHloPI+BcFFXv3t+eVCDT9sPL
349+
L+ECIQDq1nqVIEX3k5nn6eI0L5CQbIfEyvWGJ/mOGSo9TWdN+QIhANMMsopPb9ct
350+
Z61LqPmTtNX4nhHyMEjxbUzqzsZzsRcrAiBeYyhP6fHVSXERopK1kOyU79o+Aalf
351+
a4/FSl4M16CO2QIgOBQZpNKyvxRbhhqijZ6H4IstRUt7NQahqlyCEQ1Qsv0CIQDQ
352+
tUzgFwUpd6NVButkqWGqnmBeKUOs97dqSyOzN9Nk8w==
346353
-----END RSA PRIVATE KEY-----
347354
`
348355
)

cmd/juju/application/upgradecharm_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ func (s *UpgradeCharmErrorsStateSuite) TestSwitchAndPathFails(c *gc.C) {
321321
func (s *UpgradeCharmErrorsStateSuite) TestInvalidRevision(c *gc.C) {
322322
s.deployService(c)
323323
err := runUpgradeCharm(c, "riak", "--revision=blah")
324-
c.Assert(err, gc.ErrorMatches, `invalid value "blah" for flag --revision: strconv.ParseInt: parsing "blah": invalid syntax`)
324+
c.Assert(err, gc.ErrorMatches, `invalid value "blah" for flag --revision: strconv.(ParseInt|Atoi): parsing "blah": invalid syntax`)
325325
}
326326

327327
type BaseUpgradeCharmStateSuite struct{}

environs/config/config_test.go

+19-48
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"gopkg.in/juju/charmrepo.v2-unstable"
2121
"gopkg.in/juju/environschema.v1"
2222

23+
"github.com/juju/juju/cert"
2324
"github.com/juju/juju/environs/config"
2425
"github.com/juju/juju/juju/osenv"
2526
"github.com/juju/juju/testing"
@@ -469,8 +470,8 @@ var configTests = []configTest{
469470
"logforward-enabled": true,
470471
"syslog-host": "localhost:1234",
471472
"syslog-ca-cert": "abc",
472-
"syslog-client-cert": caCert,
473-
"syslog-client-key": caKey,
473+
"syslog-client-cert": testing.CACert,
474+
"syslog-client-key": testing.CAKey,
474475
}),
475476
err: `invalid syslog forwarding config: validating TLS config: parsing CA certificate: no certificates found`,
476477
}, {
@@ -482,8 +483,8 @@ var configTests = []configTest{
482483
"logforward-enabled": true,
483484
"syslog-host": "localhost:1234",
484485
"syslog-ca-cert": invalidCACert,
485-
"syslog-client-cert": caCert,
486-
"syslog-client-key": caKey,
486+
"syslog-client-cert": testing.CACert,
487+
"syslog-client-key": testing.CAKey,
487488
}),
488489
err: `invalid syslog forwarding config: validating TLS config: parsing CA certificate: asn1: syntax error: data truncated`,
489490
}, {
@@ -492,9 +493,9 @@ var configTests = []configTest{
492493
attrs: minimalConfigAttrs.Merge(testing.Attrs{
493494
"logforward-enabled": true,
494495
"syslog-host": "10.0.0.1:12345",
495-
"syslog-ca-cert": caCert,
496+
"syslog-ca-cert": testing.CACert,
496497
"syslog-client-cert": invalidCACert,
497-
"syslog-client-key": caKey,
498+
"syslog-client-key": testing.CAKey,
498499
}),
499500
err: `invalid syslog forwarding config: validating TLS config: parsing client key pair: asn1: syntax error: data truncated`,
500501
}, {
@@ -503,8 +504,8 @@ var configTests = []configTest{
503504
attrs: minimalConfigAttrs.Merge(testing.Attrs{
504505
"logforward-enabled": true,
505506
"syslog-host": "10.0.0.1:12345",
506-
"syslog-ca-cert": caCert,
507-
"syslog-client-cert": caCert,
507+
"syslog-ca-cert": testing.CACert,
508+
"syslog-client-cert": testing.CACert,
508509
"syslog-client-key": invalidCAKey,
509510
}),
510511
err: `invalid syslog forwarding config: validating TLS config: parsing client key pair: (crypto/)?tls: failed to parse private key`,
@@ -514,9 +515,9 @@ var configTests = []configTest{
514515
attrs: minimalConfigAttrs.Merge(testing.Attrs{
515516
"logforward-enabled": true,
516517
"syslog-host": "10.0.0.1:12345",
517-
"syslog-ca-cert": caCert,
518-
"syslog-client-cert": caCert,
519-
"syslog-client-key": caKey2,
518+
"syslog-ca-cert": testing.CACert,
519+
"syslog-client-cert": testing.ServerCert,
520+
"syslog-client-key": serverKey2,
520521
}),
521522
err: `invalid syslog forwarding config: validating TLS config: parsing client key pair: (crypto/)?tls: private key does not match public key`,
522523
}, {
@@ -1183,43 +1184,13 @@ func (s *specializedCharmRepo) WithTestMode() charmrepo.Interface {
11831184
return s
11841185
}
11851186

1186-
var caCert = `
1187-
-----BEGIN CERTIFICATE-----
1188-
MIIBjDCCATigAwIBAgIBADALBgkqhkiG9w0BAQUwHjENMAsGA1UEChMEanVqdTEN
1189-
MAsGA1UEAxMEcm9vdDAeFw0xMjExMDkxNjQwMjhaFw0yMjExMDkxNjQ1MjhaMB4x
1190-
DTALBgNVBAoTBGp1anUxDTALBgNVBAMTBHJvb3QwWTALBgkqhkiG9w0BAQEDSgAw
1191-
RwJAduA1Gnb2VJLxNGfG4St0Qy48Y3q5Z5HheGtTGmti/FjlvQvScCFGCnJG7fKA
1192-
Knd7ia3vWg7lxYkIvMPVP88LAQIDAQABo2YwZDAOBgNVHQ8BAf8EBAMCAKQwEgYD
1193-
VR0TAQH/BAgwBgEB/wIBATAdBgNVHQ4EFgQUlvKX8vwp0o+VdhdhoA9O6KlOm00w
1194-
HwYDVR0jBBgwFoAUlvKX8vwp0o+VdhdhoA9O6KlOm00wCwYJKoZIhvcNAQEFA0EA
1195-
LlNpevtFr8gngjAFFAO/FXc7KiZcCrA5rBfb/rEy297lIqmKt5++aVbLEPyxCIFC
1196-
r71Sj63TUTFWtRZAxvn9qQ==
1197-
-----END CERTIFICATE-----
1198-
`[1:]
1199-
1200-
var caKey = `
1201-
-----BEGIN RSA PRIVATE KEY-----
1202-
MIIBOQIBAAJAduA1Gnb2VJLxNGfG4St0Qy48Y3q5Z5HheGtTGmti/FjlvQvScCFG
1203-
CnJG7fKAKnd7ia3vWg7lxYkIvMPVP88LAQIDAQABAkEAsFOdMSYn+AcF1M/iBfjo
1204-
uQWJ+Zz+CgwuvumjGNsUtmwxjA+hh0fCn0Ah2nAt4Ma81vKOKOdQ8W6bapvsVDH0
1205-
6QIhAJOkLmEKm4H5POQV7qunRbRsLbft/n/SHlOBz165WFvPAiEAzh9fMf70std1
1206-
sVCHJRQWKK+vw3oaEvPKvkPiV5ui0C8CIGNsvybuo8ald5IKCw5huRlFeIxSo36k
1207-
m3OVCXc6zfwVAiBnTUe7WcivPNZqOC6TAZ8dYvdWo4Ifz3jjpEfymjid1wIgBIJv
1208-
ERPyv2NQqIFQZIyzUP7LVRIWfpFFOo9/Ww/7s5Y=
1209-
-----END RSA PRIVATE KEY-----
1210-
`[1:]
1211-
1212-
var caKey2 = `
1213-
-----BEGIN RSA PRIVATE KEY-----
1214-
MIIBOQIBAAJBAJkSWRrr81y8pY4dbNgt+8miSKg4z6glp2KO2NnxxAhyyNtQHKvC
1215-
+fJALJj+C2NhuvOv9xImxOl3Hg8fFPCXCtcCAwEAAQJATQNzO11NQvJS5U6eraFt
1216-
FgSFQ8XZjILtVWQDbJv8AjdbEgKMHEy33icsAKIUAx8jL9kjq6K9kTdAKXZi9grF
1217-
UQIhAPD7jccIDUVm785E5eR9eisq0+xpgUIa24Jkn8cAlst5AiEAopxVFl1auer3
1218-
GP2In3pjdL4ydzU/gcRcYisoJqwHpM8CIHtqmaXBPeq5WT9ukb5/dL3+5SJCtmxA
1219-
jQMuvZWRe6khAiBvMztYtPSDKXRbCZ4xeQ+kWSDHtok8Y5zNoTeu4nvDrwIgb3Al
1220-
fikzPveC5g6S6OvEQmyDz59tYBubm2XHgvxqww0=
1221-
-----END RSA PRIVATE KEY-----
1222-
`[1:]
1187+
var serverKey2 = func() string {
1188+
_, key, err := cert.NewDefaultServer(testing.CACert, testing.CAKey, nil)
1189+
if err != nil {
1190+
panic(err)
1191+
}
1192+
return string(key)
1193+
}()
12231194

12241195
var invalidCAKey = `
12251196
-----BEGIN RSA PRIVATE KEY-----

logfwd/record_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ func (s *LocationSuite) TestParseLocationMissingLine(c *gc.C) {
131131
func (s *LocationSuite) TestParseLocationBogusLine(c *gc.C) {
132132
_, err := logfwd.ParseLocation(validLocation.Module, "spam.go:xxx")
133133

134-
c.Check(err, gc.ErrorMatches, `failed to parse sourceLine: line number must be non-negative integer: strconv.ParseInt: parsing "xxx": invalid syntax`)
134+
c.Check(err, gc.ErrorMatches, `failed to parse sourceLine: line number must be non-negative integer: strconv.(ParseInt|Atoi): parsing "xxx": invalid syntax`)
135135
}
136136

137137
func (s *LocationSuite) TestValidateValid(c *gc.C) {

0 commit comments

Comments
 (0)