mirror of
https://github.com/containers/skopeo.git
synced 2025-08-04 16:20:04 +00:00
Merge pull request #61 from runcom/fix-godoc
signature: remove pkg fixtures
This commit is contained in:
commit
1cf55db9be
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