func (s *signedSuite) SetUpSuite(c *gc.C) { var imageData = map[string]string{ "/unsigned/streams/v1/index.json": unsignedIndex, "/unsigned/streams/v1/tools_metadata.json": unsignedProduct, } // Set up some signed data from the unsigned data. // Overwrite the product path to use the sjson suffix. rawUnsignedIndex := strings.Replace( unsignedIndex, "streams/v1/tools_metadata.json", "streams/v1/tools_metadata.sjson", -1) r := bytes.NewReader([]byte(rawUnsignedIndex)) signedData, err := simplestreams.Encode( r, sstesting.SignedMetadataPrivateKey, sstesting.PrivateKeyPassphrase) c.Assert(err, gc.IsNil) imageData["/signed/streams/v1/index.sjson"] = string(signedData) // Replace the tools path in the unsigned data with a different one so we can test that the right // tools path is used. rawUnsignedProduct := strings.Replace( unsignedProduct, "juju-1.13.0", "juju-1.13.1", -1) r = bytes.NewReader([]byte(rawUnsignedProduct)) signedData, err = simplestreams.Encode( r, sstesting.SignedMetadataPrivateKey, sstesting.PrivateKeyPassphrase) c.Assert(err, gc.IsNil) imageData["/signed/streams/v1/tools_metadata.sjson"] = string(signedData) testRoundTripper.Sub = jujutest.NewCannedRoundTripper( imageData, map[string]int{"signedtest://unauth": http.StatusUnauthorized}) s.origKey = tools.SetSigningPublicKey(sstesting.SignedMetadataPublicKey) }
func (s *signedSuite) TearDownSuite(c *gc.C) { testRoundTripper.Sub = nil tools.SetSigningPublicKey(s.origKey) }