public static byte[] DecryptReportFile(string encryptedReportfilePath, string privateKeyXmlPath) { var encryptedReport = EncryptedReport.FromFile(encryptedReportfilePath); var encryptedSessionKey = Convert.FromBase64String(encryptedReport.SessionKey); var privateKeyXml = File.ReadAllText(privateKeyXmlPath); var decryptedSessionKey = DecryptSessionKey(encryptedSessionKey, privateKeyXml); var encryptedContent = Convert.FromBase64String(encryptedReport.OutBuffer); var decryptedContent = Encryption.DecryptReport(decryptedSessionKey, encryptedContent); return(decryptedContent); }
public static void EncryptReportFile(string reportFilePath, string encryptedReportPath, string publicKeyXmlPath) { var reportData = File.ReadAllBytes(reportFilePath); var publicKeyXml = File.ReadAllText(publicKeyXmlPath); var(sessionKey, iv) = Encryption.GenerateSessionKey(); var encryptedKey = Encryption.EncryptSessionKey(sessionKey, publicKeyXml); var encryptedData = Encryption.EncryptReport(sessionKey, iv, reportData); var encryptedReport = new EncryptedReport(); encryptedReport.SessionKey = Convert.ToBase64String(encryptedKey); encryptedReport.OutBuffer = Convert.ToBase64String(encryptedData); encryptedReport.ToFile(encryptedReportPath); }