func processEncrypted(m *pgpmail.Message, result *ProcessIncomingResult, passphrase []byte) error { status := m.DecryptWith(keymgr.KeySource(), passphrase) result.DecryptResult = status.Code result.VerifyResult = status.VerifyStatus.Code if status.Code == pgpmail.DecryptFailed { result.FailureMessage = status.FailureMessage } else if status.VerifyStatus.Code == pgpmail.VerifyFailed { result.FailureMessage = status.VerifyStatus.FailureMessage } if status.Code == pgpmail.DecryptPassphraseNeeded && status.KeyIds != nil { for _, id := range status.KeyIds { result.EncryptedKeyIds = append(result.EncryptedKeyIds, encodeKeyId(id)) } } if status.Code == pgpmail.DecryptSuccess { result.EmailBody = m.String() } return nil }