diff --git a/actions_resource.go b/actions_resource.go
index ad0454c1cc7414bb62197597b83e5e444abb7c53..c31d952d60f8ab10ac8ed0c0a7d883bf0064590a 100644
--- a/actions_resource.go
+++ b/actions_resource.go
@@ -442,8 +442,15 @@ func parseOpenPGPKey(data []byte, email string) (key *crypto.Key, err error) {
 	var found bool
 	var identities []string
 	for _, identity := range entity.Identities {
-		identities = append(identities, identity.UserId.Email)
-		if identity.UserId.Email == email {
+		// Some keys can have an empty Email field, but will
+		// contain an email address in the Id field.
+		idEmail := identity.UserId.Email
+		if idEmail == "" && strings.Contains(identity.UserId.Id, "@") {
+			idEmail = identity.UserId.Id
+		}
+
+		identities = append(identities, idEmail)
+		if idEmail == email {
 			found = true
 			break
 		}