Update gotuf

Update gotuf for timestamp expiration change

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
This commit is contained in:
Derek McGowan 2015-07-29 17:09:26 -07:00
parent 659dd2a047
commit ac5feeb82a
5 changed files with 9 additions and 25 deletions

2
Godeps/Godeps.json generated
View File

@ -87,7 +87,7 @@
}, },
{ {
"ImportPath": "github.com/endophage/gotuf", "ImportPath": "github.com/endophage/gotuf",
"Rev": "5f508200b262dc8f56362523f621417853192812" "Rev": "8898f45c7eff3f623777957c2541ff8088a06fe9"
}, },
{ {
"ImportPath": "github.com/go-sql-driver/mysql", "ImportPath": "github.com/go-sql-driver/mysql",

View File

@ -23,7 +23,7 @@ var (
type signedMeta struct { type signedMeta struct {
Type string `json:"_type"` Type string `json:"_type"`
Expires string `json:"expires"` Expires time.Time `json:"expires"`
Version int `json:"version"` Version int `json:"version"`
} }
@ -85,7 +85,7 @@ func verifyMeta(s *data.Signed, role string, minVersion int) error {
} }
if IsExpired(sm.Expires) { if IsExpired(sm.Expires) {
logrus.Errorf("Metadata for %s expired", role) logrus.Errorf("Metadata for %s expired", role)
return ErrExpired{Role: role, Expired: sm.Expires} return ErrExpired{Role: role, Expired: sm.Expires.Format("Mon Jan 2 15:04:05 MST 2006")}
} }
if sm.Version < minVersion { if sm.Version < minVersion {
return ErrLowVersion{sm.Version, minVersion} return ErrLowVersion{sm.Version, minVersion}
@ -94,15 +94,8 @@ func verifyMeta(s *data.Signed, role string, minVersion int) error {
return nil return nil
} }
var IsExpired = func(t string) bool { var IsExpired = func(t time.Time) bool {
ts, err := time.Parse(time.RFC3339, t) return t.Before(time.Now())
if err != nil {
ts, err = time.Parse("2006-01-02 15:04:05 MST", t)
if err != nil {
return false
}
}
return ts.Sub(time.Now()) <= 0
} }
func VerifySignatures(s *data.Signed, role string, db *keys.KeyDB) error { func VerifySignatures(s *data.Signed, role string, db *keys.KeyDB) error {

View File

@ -132,7 +132,7 @@ func Test(t *testing.T) {
role: "root", role: "root",
name: "expired", name: "expired",
exp: &expiredTime, exp: &expiredTime,
err: ErrExpired{"root", expiredTime.Format("2006-01-02 15:04:05 MST")}, err: ErrExpired{"root", expiredTime.Format("Mon Jan 2 15:04:05 MST 2006")},
}, },
} }
for _, run := range tests { for _, run := range tests {
@ -151,7 +151,7 @@ func Test(t *testing.T) {
} }
if run.keys == nil && run.s == nil { if run.keys == nil && run.s == nil {
k, _ := cryptoService.Create("root", data.ED25519Key) k, _ := cryptoService.Create("root", data.ED25519Key)
meta := &signedMeta{Type: run.typ, Version: run.ver, Expires: run.exp.Format("2006-01-02 15:04:05 MST")} meta := &signedMeta{Type: run.typ, Version: run.ver, Expires: *run.exp}
b, err := cjson.Marshal(meta) b, err := cjson.Marshal(meta)
assert.NoError(t, err) assert.NoError(t, err)

View File

@ -5,9 +5,3 @@ type ErrMetaNotFound struct{}
func (err ErrMetaNotFound) Error() string { func (err ErrMetaNotFound) Error() string {
return "no trust data available" return "no trust data available"
} }
type ErrKeyNotAvailable struct{}
func (err ErrKeyNotAvailable) Error() string {
return "could not retrieve timestamp public key"
}

View File

@ -204,9 +204,6 @@ func (s HTTPStore) GetKey(role string) ([]byte, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if resp.StatusCode != 200 {
return nil, ErrKeyNotAvailable{}
}
defer resp.Body.Close() defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body) body, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {