include role name in ErrUnknownRole
Change-Id: Iff184e98ce6335ef41b0e9c08547a9cc842f0afb
diff --git a/verify/errors.go b/verify/errors.go
index 08ef217..30d445b 100644
--- a/verify/errors.go
+++ b/verify/errors.go
@@ -11,7 +11,6 @@
ErrNoSignatures = errors.New("tuf: data has no signatures")
ErrInvalid = errors.New("tuf: signature verification failed")
ErrWrongMethod = errors.New("tuf: invalid signature type")
- ErrUnknownRole = errors.New("tuf: unknown role")
ErrRoleThreshold = errors.New("tuf: valid signatures did not meet threshold")
ErrWrongMetaType = errors.New("tuf: meta file has wrong type")
ErrExists = errors.New("tuf: key already in db")
@@ -22,6 +21,14 @@
ErrInvalidThreshold = errors.New("tuf: invalid role threshold")
)
+type ErrUnknownRole struct {
+ Role string
+}
+
+func (e ErrUnknownRole) Error() string {
+ return fmt.Sprintf("tuf: unknown role %q", e.Role)
+}
+
type ErrExpired struct {
Expired time.Time
}
diff --git a/verify/verify.go b/verify/verify.go
index ee07210..786f705 100644
--- a/verify/verify.go
+++ b/verify/verify.go
@@ -48,7 +48,7 @@
roleData := db.GetRole(role)
if roleData == nil {
- return ErrUnknownRole
+ return ErrUnknownRole{role}
}
var decoded map[string]interface{}
diff --git a/verify/verify_test.go b/verify/verify_test.go
index bab6d8f..69c89d6 100644
--- a/verify/verify_test.go
+++ b/verify/verify_test.go
@@ -74,7 +74,7 @@
{
name: "unknown role",
role: "foo",
- err: ErrUnknownRole,
+ err: ErrUnknownRole{"foo"},
},
{
name: "signature wrong length",