Пример #1
0
        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);
        }
Пример #2
0
        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);
        }