| 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 13.07.2021(UTC) Сообщений: 5  Откуда: Ростов-на-ДонуСказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Нужен пример кода на C# для подписания строки, получаемой из "Честного Знака". Какие библиотеки необходимо установить для этого? С чего можно начать хотя бы? В криптографии не силен. Отредактировано пользователем 13 июля 2021 г. 14:42:02(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,234 Сказал(а) «Спасибо»: 105 разПоблагодарили: 296 раз в 276 постах
 
 | 
            
		      
                Добрый день! в 5.0 не выйдет. либо Net 4.8 либо Net Core 3.1 примеры есть на этом форуме. к примеру тут | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 13.07.2021(UTC) Сообщений: 5  Откуда: Ростов-на-ДонуСказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Автор: Санчир Момолдаев  Добрый день! в 5.0 не выйдет. либо Net 4.8 либо Net Core 3.1 примеры есть на этом форуме. к примеру тут Я вообще в этом деле сундук. Где можно прочесть про способы подписания строк? Есть ли документация на эту тему? Я нашел CoreFX на GitHub, но в dotnet Core 5.0 это дело не работает от слова "совсем", как Вы правильно заметили. Описание по установке CoreFx кстати не очень внятное. Например п. 7  Цитата:Скопировать сборки NetStandard из репозитория NetStandard.Library в локальную директорию nuget ($env:userprofile\.nuget\packages\) с заменой. Как скопировать? Вместе с папками, отдельно содержимое из каждой папки в одну? И что значит в этом случае "с заменой"? К сожалению, вернуться к Net Core 3.1 возможности нет... Не существует ли иных способов подписания строки, через внешние приложения, плагины и т.д? Типа вызвал внешнее приложение, а в качестве параметров сунул ему строку и ссылку на сертификат. Заранее благодарен за помощь. Отредактировано пользователем 14 июля 2021 г. 9:14:42(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                Внешнее приложение: cryptcp, текст сохранить в файл, для подписания - указывать отпечаток сертификата.
 Документация к приложению командной строки в pdf, на странице загрузки csp 5R2
 | 
|  | 
    | 
              1 пользователь поблагодарил Андрей * за этот пост. |  | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 13.07.2021(UTC) Сообщений: 5  Откуда: Ростов-на-ДонуСказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Автор: Андрей *  Внешнее приложение: cryptcp, текст сохранить в файл, для подписания - указывать отпечаток сертификата.
 Документация к приложению командной строки в pdf, на странице загрузки csp 5R2
 Спасибо. Буду пробовать. | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 13.07.2021(UTC) Сообщений: 5  Откуда: Ростов-на-ДонуСказал(а) «Спасибо»: 1 раз
 | 
            
		      
                В итоге проблема решена. Приложение называется csptest.exe. Для Windows оно находится в папке C:\Program Files\Crypto Pro\CSP\ и устанавливается вместе с Crypto Pro. Если нужны подробности, то могу осветить вкратце. Там есть определенные тонкости с применением ключей. Перед написанием программы, проверьте наличие приложения. Отредактировано пользователем 17 марта 2022 г. 15:54:52(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 13.07.2021(UTC) Сообщений: 5  Откуда: Ростов-на-ДонуСказал(а) «Спасибо»: 1 раз
 | 
            
		      
                Автор: Yuriy.Semenov  В итоге проблема решена.Приложение называется csptest.exe.
 Для Windows оно находится в папке C:\Program Files\Crypto Pro\CSP\ и устанавливается вместе с Crypto Pro.
 Если нужны подробности, то могу осветить вкратце.
 Там есть определенные тонкости с применением ключей.
 Перед написанием программы, проверьте наличие приложения.
 Отвечаю сам себе. Может кому-нибудь пригодится. Порядок действий для "Честного знака" следующий: 1. Подготавливаем данные, куда будем сохранять токен и отпечаток подписи, которой подписываем документ. 2. Get запросом получаем строку для подписи, сохраняем её в файл и запоминаем её uuid. 3. Подписываем строку с помощью утилиты csptest.exe Для этого запускаем её с ключами: C:\Program Files\Crypto Pro\CSP\csptest.exe -sfsign -sign -in <файл со строкой для подписи> -my <отпечаток подписи> -out <файл с подписанной строкой> -addsigtime -base64 -add 4. В файле с подписанной строкой удаляем все пробелы и переводы строк. 5. Составляем JSON файл: { "uuid" : "<запомненный в п. 2 uuid>", "data" : "<подписанная строка без пробелов и переводов строк>" } 5. Post запросом отправляем полученный JSON и в ответ получаем токен. Код прислать не могу, связан корпоративной этикой. У меня это дело работает с Net 6.0 и библиотекой RestSharp 108.0.1 Естественно, электронная подпись должна быть зарегистрирована в "Честном знаке" в качестве подписи пользователя личного кабинета. Отредактировано пользователем 13 декабря 2022 г. 11:15:55(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Новичок
 Группы: Участники
 Зарегистрирован: 22.12.2022(UTC) Сообщений: 1  Откуда: Пенза | 
            
		      
                Так проще будет
 using (var webClient = new WebClient())
 {
 var authKey = webClient.DownloadString("https://markirovka.crpt.ru/api/v4/true-api/auth/key");
 parsed = JObject.Parse(authKey);
 
 authUuid = parsed["uuid"] + string.Empty;
 authData = parsed["data"] + string.Empty;
 }
 
 //Подписываем строку сертификатом
 var signData = Convert.ToBase64String(SignAttached(Encoding.UTF8.GetBytes(authData), cert));
 var json = JsonConvert.SerializeObject(new { uuid = authUuid, data = signData });
 .....................
 
 
 public static byte[] SignAttached(byte[] dataToSign, X509Certificate2 certificate)
 {
 ContentInfo contentInfo = new ContentInfo(dataToSign);
 SignedCms cms = new SignedCms(contentInfo, false);
 CmsSigner signer = new CmsSigner(certificate);
 cms.ComputeSignature(signer);
 return cms.Encode();
 }
 | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
 Сообщений: 468
 
 Сказал(а) «Спасибо»: 43 разПоблагодарили: 69 раз в 61 постах
 
 | 
            
		      
                Через DLLImport не пробовали capilite "подключать" и вызывать функции CryptAcquireContextA, CryptCreateHash, CryptHashData и CryptSignHashA, а CAdES формировать через другую либу (или через тот же capilite)? Отредактировано пользователем 23 декабря 2022 г. 10:51:38(UTC)
 | Причина: Не указана | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close