示例#1
0
        /// <summary>
        /// Генерирует строку зашифрованный текст&защифрованный ключ&вектор&ЭЦП
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static MimeMessage GenEncryptedMsg(MimeMessage msg, string body, List <string> attachments, RSABookInfo book)
        {
            // encryptedMsg – конечная зашифрованная строка
            var encryptedMsg = "";
            var mailMsg      = msg;
            var tdesKeys     = TripleDES.GenKey();
            var tdesTxt      = Convert.ToBase64String(TripleDES.Encrypt(body, tdesKeys[0], tdesKeys[1]));
            var encryptedKey = Convert.ToBase64String(RSA.Encrypt(tdesKeys[0], book.EmailPublic));
            var iv           = Convert.ToBase64String(tdesKeys[1]);
            var builder      = new BodyBuilder();

            encryptedMsg += tdesTxt + "&" + encryptedKey + "&" + iv;

            // Подпись ЭЦП при помощи DSA
            //encryptedMsg += DSA.CreateSign(encryptedMsg, book.OwnPrivateECP);

            builder.TextBody = encryptedMsg;
            builder.HtmlBody = encryptedMsg;
            foreach (var item in attachments)
            {
                builder.Attachments.Add(item);
            }
            mailMsg.Body = builder.ToMessageBody();

            return(mailMsg);
        }