| 
	Статус: Участник
 Группы: Участники
Зарегистрирован: 30.03.2021(UTC)
 Сообщений: 13
 
 | 
            
		      
                Автор: Андрей *  Вы сделали RAW, а необходимо CMS. Спасибо! | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Участник
 Группы: Участники
Зарегистрирован: 30.03.2021(UTC)
 Сообщений: 13
 
 | 
            
		      
                Здравствуйте Если в данной теме, изначально посвященной другому вопросу, обсуждать данный вопрос некорректно, могу создать новую С присоединенной CMS-подписью все работает. Также необходимо формировать открепленную. Отвечающая требованиям подпись формируется с помощью утилиты csptest следующей командой: Цитата:csptest -sfsign -sign -in "C:\temp\Test.txt" -out "C:\temp\Out.txt" -my "Значение атрибута CN" -base64 -detached -add В рабочей программе для создания прикрепленной CMS-подписи в SignedCms сделал параметр Detached true вместо false, но получившаяся подпись получилась длиннее, чем сделанная с помощью csptest, и не соответствует требования Далее открыл пример DetachedSignature.cs и запустил его, добавив лишь кодирование получившегося результата в base64: Convert.ToBase64String(encodedSignature). Результат аналогичный. Код программы: https://bitbucket.org/pr...gn/src/master/Program.cs Подпись из csptest: https://bitbucket.org/pr...c/master/CSPTestSign.txt Подпись из программы: https://bitbucket.org/pr...c/master/ProgramSign.txt Можете пожалуйста дать наводку, что нужно сделать, что формируемая в программе подпись соответствовала подписи, формируемой в CSPTest? | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                в коде на c# - вкладывается вся цепочка в cms, в csptest - только сертификат подписанта.
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 |  | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Участник
 Группы: Участники
Зарегистрирован: 30.03.2021(UTC)
 Сообщений: 13
 
 |  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                Автор: anton26  Особенность ГОСТ-алгоритма - значение подписи всегда разное.  Проверить просто - несколько раз подписать и сверить файлы. | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                + дата\время подписания, в подписанных атрибутах меняется. | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Участник
 Группы: Участники
 Зарегистрирован: 16.09.2021(UTC) Сообщений: 26   | 
            
		      
                Автор: Андрей *  Вы сделали RAW, а необходимо CMS.
 
 Добрый день! Вы написали, что тем кодом получена RAW подпись. Я решил им воспользоваться, но не получил её. Сам код в сокращённом виде (я поменял X509IncludeOption.EndCertOnly на X509IncludeOption.None): Код:        
        private static byte[] SignRaw(byte[] dataToSign, X509Certificate2 signerCert)
        {
            ContentInfo contentInfo = new ContentInfo(dataToSign);
            SignedCms signedCms = new SignedCms(contentInfo, true);
            CmsSigner cmsSigner = new CmsSigner(signerCert);
            cmsSigner.IncludeOption = X509IncludeOption.None;
            signedCms.ComputeSignature(cmsSigner);
            return signedCms.Encode();
        }
 Что нужно в нём изменить для получения RAW? Или это невозможно таким методом? | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                Автор: ZiCold  Автор: Андрей *  Вы сделали RAW, а необходимо CMS.
 
 Добрый день! Вы написали, что тем кодом получена RAW подпись. Я решил им воспользоваться, но не получил её. Сам код в сокращённом виде (я поменял X509IncludeOption.EndCertOnly на X509IncludeOption.None): Код:        
        private static byte[] SignRaw(byte[] dataToSign, X509Certificate2 signerCert)
        {
            ContentInfo contentInfo = new ContentInfo(dataToSign);
            SignedCms signedCms = new SignedCms(contentInfo, true);
            CmsSigner cmsSigner = new CmsSigner(signerCert);
            cmsSigner.IncludeOption = X509IncludeOption.None;
            signedCms.ComputeSignature(cmsSigner);
            return signedCms.Encode();
        }
 Что нужно в нём изменить для получения RAW? Или это невозможно таким методом? SignedCms делает cms, raw получается через утилиты,  КриптоПро.Net (csp provider) или p\invoke + низкоуровневые процедуры. | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                в том сообщении ошибка, там не raw, а cms  | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close