Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kik2005  
#1 Оставлено : 26 июня 2009 г. 18:10:00(UTC)
kik2005

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.06.2009(UTC)
Сообщений: 2

С помощью Sharpei собстна.
Можно пример?
Offline Юрий Маслов  
#2 Оставлено : 26 июня 2009 г. 20:04:55(UTC)
Юрий Маслов

Статус: Активный участник

Группы: Администраторы
Зарегистрирован: 29.12.2007(UTC)
Сообщений: 1,036
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 36 раз в 25 постах
КриптоПро Sharpei - программный продукт, позволяющий использовать средство криптографической защиты информации "КриптоПро CSP" на платформе Microsoft .Net Framework.
Иформация о продукте приведена тут http://www.cryptopro.ru/...ucts/sharpei/default.htm

Т.е. сам КриптоПро Sharpei ничего не шифрует. Это делает "КриптоПро CSP".
Поэтому если Вы хотите самостоятельно формировать почтовые сообщения в формате S/MIME на платформе Microsoft .Net Framework, то "КриптоПро Sharpei" предоставит Вам набор интерфейсов для доступа к криптографическим операциям .Net Cryptographic Provider.
Но "КриптоПро Sharpei" сам не умеет формировать почтовые сообщения в формате S/MIME.
С уважением,
КРИПТО-ПРО
Offline Челпанов А.  
#3 Оставлено : 29 июня 2009 г. 15:19:07(UTC)
Челпанов А.

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
Не пробовали, поэтому только пошагово в качестве отправной точки:

сформировать EnvelopedCms
перевести в ToBase64String
сформировать MailMessage
присоединить к нему CMS
выставить атрибуты attachment "application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m"
как-то так...

Попробуем отпишу, но быстро не обещаю...
С уважением, Александр.
Offline kik2005  
#4 Оставлено : 1 сентября 2009 г. 17:40:26(UTC)
kik2005

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.06.2009(UTC)
Сообщений: 2

Вопрос так и остался... Как не бился - неполучается. :(
Вообще задача состоит в том чтобы программно из .net подписать и зашифровать письмо с приаттаченым файлом.
Может вы уже попробовали и появился пример?
Offline Челпанов А.  
#5 Оставлено : 9 октября 2009 г. 23:55:49(UTC)
Челпанов А.

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
Примеры
Вложение(я):
EnvelopMessage.cs (6kb) загружен 59 раз(а).
SignMessage.cs (5kb) загружен 55 раз(а).
EnvelopSignMessage.cs (8kb) загружен 41 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
С уважением, Александр.
Offline liudmila  
#6 Оставлено : 11 января 2012 г. 18:07:53(UTC)
liudmila

Статус: Новичок

Группы: Участники
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 2

У меня тот же вопрос.
Как создать зашифрованное письмо с вложением из .net
В ваших примерах файл записывается в тело письма, после чего письмо шифруется.
А создать письмо с вложением и зашифровать не получается.
Offline liudmila  
#7 Оставлено : 17 января 2012 г. 19:47:03(UTC)
liudmila

Статус: Новичок

Группы: Участники
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 2

Нашла решение.
Отписываюсь для тех, кто столкнулся с той же проблемой.
Для шифрования письма с вложением я исполmзовала s/mime
Вот хороший пример, на котором я основывалась:
http://istern.dk/blog/20...ail%29.aspx#comment-1586

У меня это выглядит так:
// Построение сообщения с вложенным файлом
private static string BuildAttachedMessageContent(string attachmentFileName)
{
StringBuilder message = new StringBuilder();
string reportData = "";
using (StreamReader file = new StreamReader(attachmentFileName, Encoding.GetEncoding("windows-1251")))
{
try
{
reportData = file.ReadToEnd();
}
finally
{
file.Close();
}
}
byte[] data = Encoding.GetEncoding("windows-1251").GetBytes(reportData);
//Setup filecontent
String filecontent = Convert.ToBase64String(data, Base64FormattingOptions.InsertLineBreaks);

message.Append("Content-Type: ");
message.Append("application/octet-stream;");
string name = attachmentFileName.Substring(attachmentFileName.LastIndexOf('\\') + 1);
message.Append("name=" + name);
message.Append("\r\n");
message.Append("Content-Transfer-Encoding: base64\r\n\r\n");
message.Append(filecontent);
message.Append("\r\n\r\n");
return message.ToString();
}
// шифрование
private static byte[] DoEncrypt(string message, X509Certificate2 encryptionCertificates)
{
byte[] messageBytes = Encoding.ASCII.GetBytes(message);
EnvelopedCms envelopedCms = new EnvelopedCms(new ContentInfo(messageBytes));
envelopedCms.ContentEncryptionAlgorithm.Oid = new System.Security.Cryptography.Oid("1.2.643.2.2.21", "Gost28147-89");
CmsRecipient recipients = new CmsRecipient(SubjectIdentifierType.IssuerAndSerialNumber, encryptionCertificates);
envelopedCms.Encrypt(recipients);

return envelopedCms.Encode();
}

...
string content = BuildAttachedMessageContent(fileName);
encryptedBytes = DoEncrypt(content, cert);

MemoryStream stream = new MemoryStream(encryptedBytes);
AlternateView view = new AlternateView(stream, "application/pkcs7-mime; smime-type=enveloped-data;name=smime.p7m");
view.TransferEncoding = TransferEncoding.Base64;
message.AlternateViews.Add(view);
message.From = new MailAddress(from);
message.To.Add(address);

message.Subject = subject;

SmtpClient client = new SmtpClient(...);
client.Credentials = new NetworkCredential(....);
client.Send(message);
...
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.