Exemplo n.º 1
0
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
}