diff --git a/src/XstReader.Api/XstMessage.cs b/src/XstReader.Api/XstMessage.cs index 4b4be59..89dd8ca 100644 --- a/src/XstReader.Api/XstMessage.cs +++ b/src/XstReader.Api/XstMessage.cs @@ -642,20 +642,31 @@ private void ReadSignedOrEncryptedMessage(byte[] messageBytes) } else { - string decryptedMessage = Crypto.DecryptWithCert(messageBytes); - string cleartextMessage; - - //Message is only signed - if (decryptedMessage.Contains("filename=smime.p7m")) + try { - cleartextMessage = Crypto.DecodeSigned(decryptedMessage); + string decryptedMessage = Crypto.DecryptWithCert(messageBytes); + string cleartextMessage; + + //Message is only signed + if (decryptedMessage.Contains("filename=smime.p7m")) + { + cleartextMessage = Crypto.DecodeSigned(decryptedMessage); + } + // message is only encrypted not signed + else + { + cleartextMessage = decryptedMessage; + } + ParseMimeMessage(cleartextMessage); } - // message is only encrypted not signed - else + catch (Exception ex) { - cleartextMessage = decryptedMessage; - } - ParseMimeMessage(cleartextMessage); + if (!Environment.GetCommandLineArgs().Contains("--suppressCryptoErrors")) + { + throw ex; + } + System.Diagnostics.Debug.WriteLine(ex); + }; } //remove P7M encrypted file from attachments list