mirror of
https://github.com/docker/docs.git
synced 2026-10-31 10:34:26 +03:00
Adding new vendored gotuf
Signed-off-by: Diogo Monica <diogo@docker.com>
This commit is contained in:
2
Godeps/Godeps.json
generated
2
Godeps/Godeps.json
generated
@@ -47,7 +47,7 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/endophage/gotuf",
|
||||
"Rev": "060b7012cc28711473151872690ce9a0be9ab501"
|
||||
"Rev": "66da486b58ef378c96433af965f61ca0efaccb9a"
|
||||
},
|
||||
{
|
||||
"ImportPath": "github.com/go-sql-driver/mysql",
|
||||
|
||||
3
Godeps/_workspace/src/github.com/endophage/gotuf/CONTRIBUTORS
generated
vendored
Normal file
3
Godeps/_workspace/src/github.com/endophage/gotuf/CONTRIBUTORS
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
Aaron Lehmann <aaron.lehmann@docker.com> (github: aaronlehmann)
|
||||
Lewis Marshall <lewis@flynn.io> (github: lmars)
|
||||
Jonathan Rudenberg <jonathan@flynn.io> (github: titanous)
|
||||
55
Godeps/_workspace/src/github.com/endophage/gotuf/signed/sign_test.go
generated
vendored
55
Godeps/_workspace/src/github.com/endophage/gotuf/signed/sign_test.go
generated
vendored
@@ -1,14 +1,22 @@
|
||||
package signed
|
||||
|
||||
import (
|
||||
"encoding/pem"
|
||||
"testing"
|
||||
|
||||
"github.com/endophage/gotuf/data"
|
||||
"github.com/endophage/gotuf/keys"
|
||||
)
|
||||
|
||||
const (
|
||||
testKeyPEM1 = "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAnKuXZeefa2LmgxaL5NsM\nzKOHNe+x/nL6ik+lDBCTV6OdcwAhHQS+PONGhrChIUVR6Vth3hUCrreLzPO73Oo5\nVSCuRJ53UronENl6lsa5mFKP8StYLvIDITNvkoT3j52BJIjyNUK9UKY9As2TNqDf\nBEPIRp28ev/NViwGOEkBu2UAbwCIdnDXm8JQErCZA0Ydm7PKGgjLbFsFGrVzqXHK\n6pdzJXlhr9yap3UpgQ/iO9JtoEYB2EXsnSrPc9JRjR30bNHHtnVql3fvinXrAEwq\n3xmN4p+R4VGzfdQN+8Kl/IPjqWB535twhFYEG/B7Ze8IwbygBjK3co/KnOPqMUrM\nBI8ztvPiogz+MvXb8WvarZ6TMTh8ifZI96r7zzqyzjR1hJulEy3IsMGvz8XS2J0X\n7sXoaqszEtXdq5ef5zKVxkiyIQZcbPgmpHLq4MgfdryuVVc/RPASoRIXG4lKaTJj\n1ANMFPxDQpHudCLxwCzjCb+sVa20HBRPTnzo8LSZkI6jAgMBAAE=\n-----END PUBLIC KEY-----"
|
||||
testKeyID1 = "51324b59d4888faa91219ebbe5a3876bb4efb21f0602ddf363cd4c3996ded3d4"
|
||||
|
||||
testKeyPEM2 = "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEArvqUPYb6JJROPJQglPTj\n5uDrsxQKl34Mo+3pSlBVuD6puE4lDnG649a2YksJy+C8ZIPJgokn5w+C3alh+dMe\nzbdWHHxrY1h9CLpYz5cbMlE16303ubkt1rvwDqEezG0HDBzPaKj4oP9YJ9x7wbsq\ndvFcy+Qc3wWd7UWcieo6E0ihbJkYcY8chRXVLg1rL7EfZ+e3bq5+ojA2ECM5JqzZ\nzgDpqCv5hTCYYZp72MZcG7dfSPAHrcSGIrwg7whzz2UsEtCOpsJTuCl96FPN7kAu\n4w/WyM3+SPzzr4/RQXuY1SrLCFD8ebM2zHt/3ATLhPnGmyG5I0RGYoegFaZ2AViw\nlqZDOYnBtgDvKP0zakMtFMbkh2XuNBUBO7Sjs0YcZMjLkh9gYUHL1yWS3Aqus1Lw\nlI0gHS22oyGObVBWkZEgk/Foy08sECLGao+5VvhmGpfVuiz9OKFUmtPVjWzRE4ng\niekEu4drSxpH41inLGSvdByDWLpcTvWQI9nkgclh3AT/AgMBAAE=\n-----END PUBLIC KEY-----"
|
||||
testKeyID2 = "26f2f5c0fbfa98823bf1ad39d5f3b32575895793baf80f1df675597d5b95dba8"
|
||||
)
|
||||
|
||||
type MockCryptoService struct {
|
||||
testKey keys.PublicKey
|
||||
testKey data.PublicKey
|
||||
}
|
||||
|
||||
func (mts *MockCryptoService) Sign(keyIDs []string, _ []byte) ([]data.Signature, error) {
|
||||
@@ -19,12 +27,12 @@ func (mts *MockCryptoService) Sign(keyIDs []string, _ []byte) ([]data.Signature,
|
||||
return sigs, nil
|
||||
}
|
||||
|
||||
func (mts *MockCryptoService) Create() (*keys.PublicKey, error) {
|
||||
func (mts *MockCryptoService) Create(_ string) (*data.PublicKey, error) {
|
||||
return &mts.testKey, nil
|
||||
}
|
||||
|
||||
func (mts *MockCryptoService) PublicKeys(keyIDs ...string) (map[string]*keys.PublicKey, error) {
|
||||
keys := map[string]*keys.PublicKey{"testID": &mts.testKey}
|
||||
func (mts *MockCryptoService) PublicKeys(keyIDs ...string) (map[string]*data.PublicKey, error) {
|
||||
keys := map[string]*data.PublicKey{"testID": &mts.testKey}
|
||||
return keys, nil
|
||||
}
|
||||
|
||||
@@ -32,8 +40,10 @@ var _ CryptoService = &MockCryptoService{}
|
||||
|
||||
// Test signing and ensure the expected signature is added
|
||||
func TestBasicSign(t *testing.T) {
|
||||
testKey, _ := pem.Decode([]byte(testKeyPEM1))
|
||||
k := data.NewPublicKey("rsa", testKey.Bytes)
|
||||
signer := Signer{&MockCryptoService{
|
||||
testKey: keys.PublicKey{ID: "testID"},
|
||||
testKey: *k,
|
||||
}}
|
||||
key, err := signer.Create("root")
|
||||
if err != nil {
|
||||
@@ -47,7 +57,7 @@ func TestBasicSign(t *testing.T) {
|
||||
t.Fatalf("Incorrect number of signatures: %d", len(testData.Signatures))
|
||||
}
|
||||
|
||||
if testData.Signatures[0].KeyID != "testID" {
|
||||
if testData.Signatures[0].KeyID != testKeyID1 {
|
||||
t.Fatalf("Wrong signature ID returned: %s", testData.Signatures[0].KeyID)
|
||||
}
|
||||
|
||||
@@ -57,20 +67,21 @@ func TestBasicSign(t *testing.T) {
|
||||
// for the key (N.B. MockCryptoService.Sign will still be called again, but Signer.Sign
|
||||
// should be cleaning previous signatures by the KeyID when asked to sign again)
|
||||
func TestReSign(t *testing.T) {
|
||||
testKey, _ := pem.Decode([]byte(testKeyPEM1))
|
||||
k := data.NewPublicKey("rsa", testKey.Bytes)
|
||||
signer := Signer{&MockCryptoService{
|
||||
testKey: keys.PublicKey{},
|
||||
testKey: *k,
|
||||
}}
|
||||
key := keys.PublicKey{ID: "testID"}
|
||||
testData := data.Signed{}
|
||||
|
||||
signer.Sign(&testData, &key)
|
||||
signer.Sign(&testData, &key)
|
||||
signer.Sign(&testData, k)
|
||||
signer.Sign(&testData, k)
|
||||
|
||||
if len(testData.Signatures) != 1 {
|
||||
t.Fatalf("Incorrect number of signatures: %d", len(testData.Signatures))
|
||||
}
|
||||
|
||||
if testData.Signatures[0].KeyID != "testID" {
|
||||
if testData.Signatures[0].KeyID != testKeyID1 {
|
||||
t.Fatalf("Wrong signature ID returned: %s", testData.Signatures[0].KeyID)
|
||||
}
|
||||
|
||||
@@ -78,19 +89,21 @@ func TestReSign(t *testing.T) {
|
||||
|
||||
func TestMultiSign(t *testing.T) {
|
||||
signer := Signer{&MockCryptoService{}}
|
||||
key := keys.PublicKey{ID: "testID1"}
|
||||
testData := data.Signed{}
|
||||
|
||||
signer.Sign(&testData, &key)
|
||||
testKey, _ := pem.Decode([]byte(testKeyPEM1))
|
||||
key := data.NewPublicKey("rsa", testKey.Bytes)
|
||||
signer.Sign(&testData, key)
|
||||
|
||||
key = keys.PublicKey{ID: "testID2"}
|
||||
signer.Sign(&testData, &key)
|
||||
testKey, _ = pem.Decode([]byte(testKeyPEM2))
|
||||
key = data.NewPublicKey("rsa", testKey.Bytes)
|
||||
signer.Sign(&testData, key)
|
||||
|
||||
if len(testData.Signatures) != 2 {
|
||||
t.Fatalf("Incorrect number of signatures: %d", len(testData.Signatures))
|
||||
}
|
||||
|
||||
keyIDs := map[string]struct{}{"testID1": struct{}{}, "testID2": struct{}{}}
|
||||
keyIDs := map[string]struct{}{testKeyID1: struct{}{}, testKeyID2: struct{}{}}
|
||||
for _, sig := range testData.Signatures {
|
||||
if _, ok := keyIDs[sig.KeyID]; !ok {
|
||||
t.Fatalf("Got a signature we didn't expect: %s", sig.KeyID)
|
||||
@@ -100,8 +113,10 @@ func TestMultiSign(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCreate(t *testing.T) {
|
||||
testKey, _ := pem.Decode([]byte(testKeyPEM1))
|
||||
k := data.NewPublicKey("rsa", testKey.Bytes)
|
||||
signer := Signer{&MockCryptoService{
|
||||
testKey: keys.PublicKey{ID: "testID"},
|
||||
testKey: *k,
|
||||
}}
|
||||
|
||||
key, err := signer.Create("root")
|
||||
@@ -109,7 +124,7 @@ func TestCreate(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if key.ID != "testID" {
|
||||
t.Fatalf("Expected key ID not found: %s", key.ID)
|
||||
if key.ID() != testKeyID1 {
|
||||
t.Fatalf("Expected key ID not found: %s", key.ID())
|
||||
}
|
||||
}
|
||||
|
||||
8
Godeps/_workspace/src/github.com/endophage/gotuf/signed/verifiers_test.go
generated
vendored
8
Godeps/_workspace/src/github.com/endophage/gotuf/signed/verifiers_test.go
generated
vendored
@@ -1,10 +1,10 @@
|
||||
package signed
|
||||
|
||||
import (
|
||||
"crypto"
|
||||
"crypto/rsa"
|
||||
"crypto/sha256"
|
||||
"crypto/x509"
|
||||
_ "crypto"
|
||||
_ "crypto/rsa"
|
||||
_ "crypto/sha256"
|
||||
_ "crypto/x509"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
||||
28
Godeps/_workspace/src/github.com/endophage/gotuf/signed/verify_test.go
generated
vendored
28
Godeps/_workspace/src/github.com/endophage/gotuf/signed/verify_test.go
generated
vendored
@@ -23,7 +23,7 @@ func (VerifySuite) Test(c *C) {
|
||||
signer := NewSigner(trust)
|
||||
type test struct {
|
||||
name string
|
||||
keys []*keys.PublicKey
|
||||
keys []*data.PublicKey
|
||||
roles map[string]*data.Role
|
||||
s *data.Signed
|
||||
ver int
|
||||
@@ -81,7 +81,7 @@ func (VerifySuite) Test(c *C) {
|
||||
k, _ := signer.Create("root")
|
||||
signer.Sign(t.s, k)
|
||||
t.keys = append(t.keys, k)
|
||||
t.roles["root"].KeyIDs = append(t.roles["root"].KeyIDs, k.ID)
|
||||
t.roles["root"].KeyIDs = append(t.roles["root"].KeyIDs, k.ID())
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -139,7 +139,7 @@ func (VerifySuite) Test(c *C) {
|
||||
{
|
||||
name: "expired",
|
||||
exp: &expiredTime,
|
||||
err: ErrExpired{expiredTime},
|
||||
err: ErrExpired{expiredTime.Format("2006-01-02 15:04:05 MST")},
|
||||
},
|
||||
}
|
||||
for _, t := range tests {
|
||||
@@ -154,24 +154,27 @@ func (VerifySuite) Test(c *C) {
|
||||
t.exp = &expires
|
||||
}
|
||||
if t.typ == "" {
|
||||
t.typ = t.role
|
||||
t.typ = data.TUFTypes[t.role]
|
||||
}
|
||||
if t.keys == nil && t.s == nil {
|
||||
k, _ := signer.Create("root")
|
||||
meta := &signedMeta{Type: t.typ, Version: t.ver, Expires: *t.exp}
|
||||
meta := &signedMeta{Type: t.typ, Version: t.ver, Expires: t.exp.Format("2006-01-02 15:04:05 MST")}
|
||||
|
||||
b, err := cjson.Marshal(meta)
|
||||
c.Assert(err, IsNil)
|
||||
s := &data.Signed{Signed: b}
|
||||
signer.Sign(s, k)
|
||||
t.s = s
|
||||
t.keys = []*keys.PublicKey{k}
|
||||
t.keys = []*data.PublicKey{k}
|
||||
}
|
||||
if t.roles == nil {
|
||||
t.roles = map[string]*data.Role{
|
||||
"root": &data.Role{
|
||||
KeyIDs: []string{t.keys[0].ID},
|
||||
Threshold: 1,
|
||||
RootRole: data.RootRole{
|
||||
KeyIDs: []string{t.keys[0].ID()},
|
||||
Threshold: 1,
|
||||
},
|
||||
Name: "root",
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -181,11 +184,10 @@ func (VerifySuite) Test(c *C) {
|
||||
|
||||
db := keys.NewDB()
|
||||
for _, k := range t.keys {
|
||||
err := db.AddKey(k)
|
||||
c.Assert(err, IsNil)
|
||||
db.AddKey(k)
|
||||
}
|
||||
for n, r := range t.roles {
|
||||
err := db.AddRole(n, r)
|
||||
for _, r := range t.roles {
|
||||
err := db.AddRole(r)
|
||||
c.Assert(err, IsNil)
|
||||
}
|
||||
|
||||
@@ -203,5 +205,5 @@ func assertErrExpired(c *C, err error, expected ErrExpired) {
|
||||
if !ok {
|
||||
c.Fatalf("expected err to have type ErrExpired, got %T", err)
|
||||
}
|
||||
c.Assert(actual.Expired.Unix(), Equals, expected.Expired.Unix())
|
||||
c.Assert(actual.Expired, Equals, expected.Expired)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user