Atom Лента - Форум КриптоПро - Тема:C# и криптопро - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:C#ikriptopro-10:1Copyright 2024 Форум КриптоПро2024-03-28T15:05:03Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruЧелпанов А.https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=26&name=Челпанов А.Челпанов А.https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=26&name=Челпанов А.veprhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2039&name=veprЧелпанов А.https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=26&name=Челпанов А.veprhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2039&name=veprveprhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2039&name=veprveprhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2039&name=veprЧелпанов А.https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=26&name=Челпанов А.veprhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=2039&name=veprgvihttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=1712&name=gviЧелпанов А.https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=26&name=Челпанов А.YetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid10479:1C# и криптопро<table class="content postContainer_Alt" width="100%"><tr><td>.Net Framework <br />Описание классов в MSDN namespace System.Security.Cryptography.Pkcs<br />Один из примеров в MSDN статья под названием "How to: Envelope a Message for One Recipient"<br />КриптоПро Sharpei пример из SimpleCS.zip CMS\G_EnvelopedSingleRecepient.cs (в КриптоПро Sharpei SDK небольшое описание примера)<br /><br />CryptoAPI <br />В MSDN статья под названием "Encoding Enveloped Data" - описание и рядом примеры <br />В MSDN описание функции CryptEncryptMessage в ней примеры и рядом описание других функций.<br />Примеры в КриптоПро CSP SDK : каталог sdk\samples\CSP\CryptMessages<br />В Microsoft Platform SDK: Samples\Security\CryptoApi\EncryptMessage\CPP\<br /><br />Capicom <br />Из MSDN Статья "EnvelopedData Object" - описание объекта<br />Пример в КриптоПро CSP SDK: sdk\samples\CSP\CEnvelop\CEnvelop.vbs"<br />В Microsoft Platform SDK Samples\Security\capicom\vbs</td></tr></table>2009-12-16T13:31:14+03:002009-12-16T13:31:14+03:00Челпанов А.<table class="content postContainer_Alt" width="100%"><tr><td>.Net Framework <br />Описание классов в MSDN namespace System.Security.Cryptography.Pkcs<br />Один из примеров в MSDN статья под названием "How to: Envelope a Message for One Recipient"<br />КриптоПро Sharpei пример из SimpleCS.zip CMS\G_EnvelopedSingleRecepient.cs (в КриптоПро Sharpei SDK небольшое описание примера)<br /><br />CryptoAPI <br />В MSDN статья под названием "Encoding Enveloped Data" - описание и рядом примеры <br />В MSDN описание функции CryptEncryptMessage в ней примеры и рядом описание других функций.<br />Примеры в КриптоПро CSP SDK : каталог sdk\samples\CSP\CryptMessages<br />В Microsoft Platform SDK: Samples\Security\CryptoApi\EncryptMessage\CPP\<br /><br />Capicom <br />Из MSDN Статья "EnvelopedData Object" - описание объекта<br />Пример в КриптоПро CSP SDK: sdk\samples\CSP\CEnvelop\CEnvelop.vbs"<br />В Microsoft Platform SDK Samples\Security\capicom\vbs</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10435:1C# и криптопро<table class="content postContainer" width="100%"><tr><td>буду признателен за ссылку на пример</td></tr></table>2009-12-14T21:14:49+03:002009-12-14T21:14:49+03:00vepr<table class="content postContainer" width="100%"><tr><td>буду признателен за ссылку на пример</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10424:1C# и криптопро<table class="content postContainer_Alt" width="100%"><tr><td>Вектор инициализации, сессионный ключ и открытый ключ можно сохранять в файле.<br />Посмотрите формат PKCS #7/CMS. Этот формат поддерживается в .Net, в CryptoApi, CapiCom... Может будет удобнее использовать его, а не изобретать собственный</td></tr></table>2009-12-14T15:42:31+03:002009-12-14T15:42:31+03:00Челпанов А.<table class="content postContainer_Alt" width="100%"><tr><td>Вектор инициализации, сессионный ключ и открытый ключ можно сохранять в файле.<br />Посмотрите формат PKCS #7/CMS. Этот формат поддерживается в .Net, в CryptoApi, CapiCom... Может будет удобнее использовать его, а не изобретать собственный</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10422:1C# и криптопро<table class="content postContainer" width="100%"><tr><td>разобрался с шифровкой-дешифровкой! Вопрос в том обязательно ли сохранять файлы pubkey,вектора инициализации, сессионного ключа. Можно ли эти данные прятать в сам файл? Или куда их можно прятать?</td></tr></table>2009-12-14T15:29:14+03:002009-12-14T15:29:14+03:00vepr<table class="content postContainer" width="100%"><tr><td>разобрался с шифровкой-дешифровкой! Вопрос в том обязательно ли сохранять файлы pubkey,вектора инициализации, сессионного ключа. Можно ли эти данные прятать в сам файл? Или куда их можно прятать?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10410:1C# и криптопро<table class="content postContainer_Alt" width="100%"><tr><td>Прочитал документацию и нашёл хороший пример<br /><a rel="nofollow" href="http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1323" title="http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1323">http://www.delphikingdom...witem.asp?catalogid=1323</a><br />То что на Delphi - не смущает, хочу понять принцип работы функций cryptoAPI. Долго разбирал описанный класс, не совсем всё понял.<br /><br /> У меня сейчас задача простая - зашифровать и расшифровать файл. В примере файл сразу шифруется и расшифровывается.<br />Я попробовал зашифровать файл отдельно, <br />а расшифровать не получается - получаю ошибку во время импорта ключа...<br />Общий принцип шифрования написан такой <br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />Общая схема шифрования такова.<br />Получаем хэндл своей ключевой пары<br />Импортируем открытый ключ получателя на свою ключевую пару<br />Генерируем сессионный ключ (указываем алгоритм шифрования)<br />Устанавливаем режим шифрования<br />Экспортируем сессионный ключ в зашифрованном виде<br />Извлекаем вектор инициализации<br />Шифруем сообщение.<br /></div></div><br />расшифровки<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />Для успешной расшифровки получателю необходимо иметь:<br />Публичный ключ отправителя<br />Свою ключевую пару, на публичном ключе которой шифровался сессионный ключ<br />Шифрованный сессионный ключ<br />Вектор инициализации<br />Зашифрованные данные.<br />Режим шифрования<br />Идентификатор алгоритма шифрования<br /></div></div><br />Я создал контекст, сгенерл ключи, экспортировал их потом <br />что-то с вектором инициализации делаю - и далее шифрую CryptEncrypt<br />И как работать, если контейнер есть? Т.Е. я сделал контекст с именем имеющегося контекста, как потом ключи брать<br />Какова последовательность работы? Общие принципы понятны, а поконкретнее?<br /></td></tr></table>2009-12-13T23:10:52+03:002009-12-13T23:10:52+03:00vepr<table class="content postContainer_Alt" width="100%"><tr><td>Прочитал документацию и нашёл хороший пример<br /><a rel="nofollow" href="http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1323" title="http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1323">http://www.delphikingdom...witem.asp?catalogid=1323</a><br />То что на Delphi - не смущает, хочу понять принцип работы функций cryptoAPI. Долго разбирал описанный класс, не совсем всё понял.<br /><br /> У меня сейчас задача простая - зашифровать и расшифровать файл. В примере файл сразу шифруется и расшифровывается.<br />Я попробовал зашифровать файл отдельно, <br />а расшифровать не получается - получаю ошибку во время импорта ключа...<br />Общий принцип шифрования написан такой <br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />Общая схема шифрования такова.<br />Получаем хэндл своей ключевой пары<br />Импортируем открытый ключ получателя на свою ключевую пару<br />Генерируем сессионный ключ (указываем алгоритм шифрования)<br />Устанавливаем режим шифрования<br />Экспортируем сессионный ключ в зашифрованном виде<br />Извлекаем вектор инициализации<br />Шифруем сообщение.<br /></div></div><br />расшифровки<br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br />Для успешной расшифровки получателю необходимо иметь:<br />Публичный ключ отправителя<br />Свою ключевую пару, на публичном ключе которой шифровался сессионный ключ<br />Шифрованный сессионный ключ<br />Вектор инициализации<br />Зашифрованные данные.<br />Режим шифрования<br />Идентификатор алгоритма шифрования<br /></div></div><br />Я создал контекст, сгенерл ключи, экспортировал их потом <br />что-то с вектором инициализации делаю - и далее шифрую CryptEncrypt<br />И как работать, если контейнер есть? Т.Е. я сделал контекст с именем имеющегося контекста, как потом ключи брать<br />Какова последовательность работы? Общие принципы понятны, а поконкретнее?<br /></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10357:1C# и криптопро<table class="content postContainer" width="100%"><tr><td>Хорошо - читаю</td></tr></table>2009-12-09T11:56:39+03:002009-12-09T11:56:39+03:00vepr<table class="content postContainer" width="100%"><tr><td>Хорошо - читаю</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10356:1C# и криптопро<table class="content postContainer_Alt" width="100%"><tr><td>Это зависит от целей утилиты... Если все-таки для рабочих целей (на наш сервер), то я бы посоветовал почитать руководство.</td></tr></table>2009-12-09T10:22:02+03:002009-12-09T10:22:02+03:00Челпанов А.<table class="content postContainer_Alt" width="100%"><tr><td>Это зависит от целей утилиты... Если все-таки для рабочих целей (на наш сервер), то я бы посоветовал почитать руководство.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10350:1C# и криптопро<table class="content postContainer" width="100%"><tr><td>Ну тогда вариант такой получается - делать консольную софтинку с приёмомо параметров на С++.<br />Начать с чего?<br />С руководства?</td></tr></table>2009-12-08T19:24:28+03:002009-12-08T19:24:28+03:00vepr<table class="content postContainer" width="100%"><tr><td>Ну тогда вариант такой получается - делать консольную софтинку с приёмомо параметров на С++.<br />Начать с чего?<br />С руководства?</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10319:1C# и криптопро<table class="content postContainer_Alt" width="100%"><tr><td></td></tr></table>2009-12-08T13:25:26+03:002009-12-08T13:25:26+03:00gvi<table class="content postContainer_Alt" width="100%"><tr><td></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid10316:1C# и криптопро<table class="content postContainer" width="100%"><tr><td>Это придется делать либо на C++ либо через P/Invoke, других путей мне не изветсно... :(. Могу дать отправную точку в MSDN CryptSignAndEncodeCertificate.<br />Мне все равно не понятно зачем программная генерация самоподписанных сертификатов... Для тестов можно и утилитами обойтись, как рабочее решение все равно нельзя использовать.</td></tr></table>2009-12-08T13:13:44+03:002009-12-08T13:13:44+03:00Челпанов А.<table class="content postContainer" width="100%"><tr><td>Это придется делать либо на C++ либо через P/Invoke, других путей мне не изветсно... :(. Могу дать отправную точку в MSDN CryptSignAndEncodeCertificate.<br />Мне все равно не понятно зачем программная генерация самоподписанных сертификатов... Для тестов можно и утилитами обойтись, как рабочее решение все равно нельзя использовать.</td></tr></table>