mirror of
https://github.com/containers/skopeo.git
synced 2025-08-01 23:07:51 +00:00
Remove signature/fixtures subpackage
This will make the output of godoc cleaner, we can't filter out the subpackage otherwise. Also copy the needed fixture into the integration subpackage, instead of referring to it using ../signature/fixtures (and we can't import signature/fixtures_info-test.go now). Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
parent
7522e6c99c
commit
7c5db83261
26
integration/fixtures/image.manifest.json
Normal file
26
integration/fixtures/image.manifest.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"schemaVersion": 2,
|
||||||
|
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
|
||||||
|
"config": {
|
||||||
|
"mediaType": "application/vnd.docker.container.image.v1+json",
|
||||||
|
"size": 7023,
|
||||||
|
"digest": "sha256:b5b2b2c507a0944348e0303114d8d93aaaa081732b86451d9bce1f432a537bc7"
|
||||||
|
},
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
|
||||||
|
"size": 32654,
|
||||||
|
"digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
|
||||||
|
"size": 16724,
|
||||||
|
"digest": "sha256:3c3a4604a545cdc127456d94e421cd355bca5b528f4a9c1905b15da2eb4a4c6b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
|
||||||
|
"size": 73109,
|
||||||
|
"digest": "sha256:ec4b8955958665577945c89419d1af06b5f7636b4ac3da7f12184802ad867736"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
6
integration/fixtures_info_test.go
Normal file
6
integration/fixtures_info_test.go
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
const (
|
||||||
|
// TestImageManifestDigest is the Docker manifest digest of "fixtures/image.manifest.json"
|
||||||
|
TestImageManifestDigest = "sha256:20bf21ed457b390829cdbeec8795a7bea1626991fda603e0d01b4e7f60427e55"
|
||||||
|
)
|
@ -9,7 +9,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
"github.com/projectatomic/skopeo/signature/fixtures"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -97,7 +96,7 @@ func (s *SigningSuite) TearDownTest(c *check.C) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SigningSuite) TestSignVerifySmoke(c *check.C) {
|
func (s *SigningSuite) TestSignVerifySmoke(c *check.C) {
|
||||||
manifestPath := "../signature/fixtures/image.manifest.json"
|
manifestPath := "fixtures/image.manifest.json"
|
||||||
dockerReference := "testing/smoketest"
|
dockerReference := "testing/smoketest"
|
||||||
|
|
||||||
sigOutput, err := ioutil.TempFile("", "sig")
|
sigOutput, err := ioutil.TempFile("", "sig")
|
||||||
@ -111,5 +110,5 @@ func (s *SigningSuite) TestSignVerifySmoke(c *check.C) {
|
|||||||
out, err = exec.Command(skopeoBinary, "standalone-verify", manifestPath,
|
out, err = exec.Command(skopeoBinary, "standalone-verify", manifestPath,
|
||||||
dockerReference, s.fingerprint, sigOutput.Name()).CombinedOutput()
|
dockerReference, s.fingerprint, sigOutput.Name()).CombinedOutput()
|
||||||
c.Assert(err, check.IsNil, check.Commentf("%s", out))
|
c.Assert(err, check.IsNil, check.Commentf("%s", out))
|
||||||
c.Assert(string(out), check.Equals, "Signature verified, digest "+fixtures.TestImageManifestDigest+"\n")
|
c.Assert(string(out), check.Equals, "Signature verified, digest "+TestImageManifestDigest+"\n")
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/projectatomic/skopeo/signature/fixtures"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@ -16,26 +15,26 @@ func TestSignDockerManifest(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Successful signing
|
// Successful signing
|
||||||
signature, err := SignDockerManifest(manifest, fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
signature, err := SignDockerManifest(manifest, TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
verified, err := VerifyDockerManifestSignature(signature, manifest, fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
verified, err := VerifyDockerManifestSignature(signature, manifest, TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, fixtures.TestImageSignatureReference, verified.DockerReference)
|
assert.Equal(t, TestImageSignatureReference, verified.DockerReference)
|
||||||
assert.Equal(t, fixtures.TestImageManifestDigest, verified.DockerManifestDigest)
|
assert.Equal(t, TestImageManifestDigest, verified.DockerManifestDigest)
|
||||||
|
|
||||||
// Error computing Docker manifest
|
// Error computing Docker manifest
|
||||||
invalidManifest, err := ioutil.ReadFile("fixtures/v2s1-invalid-signatures.manifest.json")
|
invalidManifest, err := ioutil.ReadFile("fixtures/v2s1-invalid-signatures.manifest.json")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = SignDockerManifest(invalidManifest, fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
_, err = SignDockerManifest(invalidManifest, TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// Error creating blob to sign
|
// Error creating blob to sign
|
||||||
_, err = SignDockerManifest(manifest, "", mech, fixtures.TestKeyFingerprint)
|
_, err = SignDockerManifest(manifest, "", mech, TestKeyFingerprint)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// Error signing
|
// Error signing
|
||||||
_, err = SignDockerManifest(manifest, fixtures.TestImageSignatureReference, mech, "this fingerprint doesn't exist")
|
_, err = SignDockerManifest(manifest, TestImageSignatureReference, mech, "this fingerprint doesn't exist")
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,33 +47,33 @@ func TestVerifyDockerManifestSignature(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Successful verification
|
// Successful verification
|
||||||
sig, err := VerifyDockerManifestSignature(signature, manifest, fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
sig, err := VerifyDockerManifestSignature(signature, manifest, TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, fixtures.TestImageSignatureReference, sig.DockerReference)
|
assert.Equal(t, TestImageSignatureReference, sig.DockerReference)
|
||||||
assert.Equal(t, fixtures.TestImageManifestDigest, sig.DockerManifestDigest)
|
assert.Equal(t, TestImageManifestDigest, sig.DockerManifestDigest)
|
||||||
|
|
||||||
// For extra paranoia, test that we return nil data on error.
|
// For extra paranoia, test that we return nil data on error.
|
||||||
|
|
||||||
// Error computing Docker manifest
|
// Error computing Docker manifest
|
||||||
invalidManifest, err := ioutil.ReadFile("fixtures/v2s1-invalid-signatures.manifest.json")
|
invalidManifest, err := ioutil.ReadFile("fixtures/v2s1-invalid-signatures.manifest.json")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
sig, err = VerifyDockerManifestSignature(signature, invalidManifest, fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
sig, err = VerifyDockerManifestSignature(signature, invalidManifest, TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
// Error verifying signature
|
// Error verifying signature
|
||||||
corruptSignature, err := ioutil.ReadFile("fixtures/corrupt.signature")
|
corruptSignature, err := ioutil.ReadFile("fixtures/corrupt.signature")
|
||||||
sig, err = VerifyDockerManifestSignature(corruptSignature, manifest, fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
sig, err = VerifyDockerManifestSignature(corruptSignature, manifest, TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
// Key fingerprint mismatch
|
// Key fingerprint mismatch
|
||||||
sig, err = VerifyDockerManifestSignature(signature, manifest, fixtures.TestImageSignatureReference, mech, "unexpected fingerprint")
|
sig, err = VerifyDockerManifestSignature(signature, manifest, TestImageSignatureReference, mech, "unexpected fingerprint")
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
// Docker manifest digest mismatch
|
// Docker manifest digest mismatch
|
||||||
sig, err = VerifyDockerManifestSignature(signature, []byte("unexpected manifest"), fixtures.TestImageSignatureReference, mech, fixtures.TestKeyFingerprint)
|
sig, err = VerifyDockerManifestSignature(signature, []byte("unexpected manifest"), TestImageSignatureReference, mech, TestKeyFingerprint)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package fixtures
|
package signature
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// TestImageManifestDigest is the Docker manifest digest of "image.manifest.json"
|
// TestImageManifestDigest is the Docker manifest digest of "image.manifest.json"
|
@ -4,7 +4,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/projectatomic/skopeo/signature/fixtures"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@ -32,13 +31,13 @@ func TestGPGSigningMechanismSign(t *testing.T) {
|
|||||||
|
|
||||||
// Successful signing
|
// Successful signing
|
||||||
content := []byte("content")
|
content := []byte("content")
|
||||||
signature, err := mech.Sign(content, fixtures.TestKeyFingerprint)
|
signature, err := mech.Sign(content, TestKeyFingerprint)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
signedContent, signingFingerprint, err := mech.Verify(signature)
|
signedContent, signingFingerprint, err := mech.Verify(signature)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.EqualValues(t, content, signedContent)
|
assert.EqualValues(t, content, signedContent)
|
||||||
assert.Equal(t, fixtures.TestKeyFingerprint, signingFingerprint)
|
assert.Equal(t, TestKeyFingerprint, signingFingerprint)
|
||||||
|
|
||||||
// Error signing
|
// Error signing
|
||||||
_, err = mech.Sign(content, "this fingerprint doesn't exist")
|
_, err = mech.Sign(content, "this fingerprint doesn't exist")
|
||||||
@ -62,7 +61,7 @@ func TestGPGSigningMechanismVerify(t *testing.T) {
|
|||||||
content, signingFingerprint, err := mech.Verify(signature)
|
content, signingFingerprint, err := mech.Verify(signature)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, []byte("This is not JSON\n"), content)
|
assert.Equal(t, []byte("This is not JSON\n"), content)
|
||||||
assert.Equal(t, fixtures.TestKeyFingerprint, signingFingerprint)
|
assert.Equal(t, TestKeyFingerprint, signingFingerprint)
|
||||||
|
|
||||||
// For extra paranoia, test that we return nil data on error.
|
// For extra paranoia, test that we return nil data on error.
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/projectatomic/skopeo/signature/fixtures"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
@ -147,16 +146,16 @@ func TestSign(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Successful signing
|
// Successful signing
|
||||||
signature, err := sig.sign(mech, fixtures.TestKeyFingerprint)
|
signature, err := sig.sign(mech, TestKeyFingerprint)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
verified, err := verifyAndExtractSignature(mech, signature, fixtures.TestKeyFingerprint, sig.DockerReference)
|
verified, err := verifyAndExtractSignature(mech, signature, TestKeyFingerprint, sig.DockerReference)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, sig.Signature, *verified)
|
assert.Equal(t, sig.Signature, *verified)
|
||||||
|
|
||||||
// Error creating blob to sign
|
// Error creating blob to sign
|
||||||
_, err = privateSignature{}.sign(mech, fixtures.TestKeyFingerprint)
|
_, err = privateSignature{}.sign(mech, TestKeyFingerprint)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// Error signing
|
// Error signing
|
||||||
@ -172,36 +171,36 @@ func TestVerifyAndExtractSignature(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Successful verification
|
// Successful verification
|
||||||
sig, err := verifyAndExtractSignature(mech, signature, fixtures.TestKeyFingerprint, fixtures.TestImageSignatureReference)
|
sig, err := verifyAndExtractSignature(mech, signature, TestKeyFingerprint, TestImageSignatureReference)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, fixtures.TestImageSignatureReference, sig.DockerReference)
|
assert.Equal(t, TestImageSignatureReference, sig.DockerReference)
|
||||||
assert.Equal(t, fixtures.TestImageManifestDigest, sig.DockerManifestDigest)
|
assert.Equal(t, TestImageManifestDigest, sig.DockerManifestDigest)
|
||||||
|
|
||||||
// For extra paranoia, test that we return a nil signature object on error.
|
// For extra paranoia, test that we return a nil signature object on error.
|
||||||
|
|
||||||
// Completely invalid signature.
|
// Completely invalid signature.
|
||||||
sig, err = verifyAndExtractSignature(mech, []byte{}, fixtures.TestKeyFingerprint, fixtures.TestImageSignatureReference)
|
sig, err = verifyAndExtractSignature(mech, []byte{}, TestKeyFingerprint, TestImageSignatureReference)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
sig, err = verifyAndExtractSignature(mech, []byte("invalid signature"), fixtures.TestKeyFingerprint, fixtures.TestImageSignatureReference)
|
sig, err = verifyAndExtractSignature(mech, []byte("invalid signature"), TestKeyFingerprint, TestImageSignatureReference)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
// Valid signature of non-JSON
|
// Valid signature of non-JSON
|
||||||
invalidBlobSignature, err := ioutil.ReadFile("./fixtures/invalid-blob.signature")
|
invalidBlobSignature, err := ioutil.ReadFile("./fixtures/invalid-blob.signature")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
sig, err = verifyAndExtractSignature(mech, invalidBlobSignature, fixtures.TestKeyFingerprint, fixtures.TestImageSignatureReference)
|
sig, err = verifyAndExtractSignature(mech, invalidBlobSignature, TestKeyFingerprint, TestImageSignatureReference)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
// Valid signature with a wrong key
|
// Valid signature with a wrong key
|
||||||
sig, err = verifyAndExtractSignature(mech, signature, "unexpected fingerprint", fixtures.TestImageSignatureReference)
|
sig, err = verifyAndExtractSignature(mech, signature, "unexpected fingerprint", TestImageSignatureReference)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
|
|
||||||
// Valid signature with a wrong image reference
|
// Valid signature with a wrong image reference
|
||||||
sig, err = verifyAndExtractSignature(mech, signature, fixtures.TestKeyFingerprint, "unexpected docker reference")
|
sig, err = verifyAndExtractSignature(mech, signature, TestKeyFingerprint, "unexpected docker reference")
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Nil(t, sig)
|
assert.Nil(t, sig)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user