diff --git a/protonmail/auth.go b/protonmail/auth.go index e971844..8b75e2b 100644 --- a/protonmail/auth.go +++ b/protonmail/auth.go @@ -280,7 +280,8 @@ func (c *Client) Unlock(auth *Auth, passphrase string) (openpgp.EntityList, erro for _, key := range addr.Keys { entity, err := key.Entity() if err != nil { - return nil, fmt.Errorf("failed to read key %q: %v", addr.Email, err) + log.Printf("warning: failed to read key %q: %v", addr.Email, err) + continue } found := false @@ -303,6 +304,10 @@ func (c *Client) Unlock(auth *Auth, passphrase string) (openpgp.EntityList, erro } } + if len(keyRing) == 0 { + return nil, fmt.Errorf("failed to unlock any key") + } + return keyRing, nil }