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",