Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 17.10.2010(UTC) Сообщений: 147  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 2 раз Поблагодарили: 10 раз в 9 постах
  
	 
	
     | 
    
        
            
		      
                Вот этот код неизменно падает с Segmentation fault на вызове CryptEncrypt: Код:void segfaultTest(HCRYPTPROV hProvider)
{
    HCRYPTKEY kek;
    if (!CryptGenKey(hProvider, CALG_G28147, CRYPT_EXPORTABLE, &kek))
    {
        DBG_OUT_E("Can't generate KEK");
        return;
    }
    DWORD dparam = ZERO_PADDING;
    if (!CryptSetKeyParam(kek, KP_PADDING, (BYTE*)&dparam, 0))
    {
        DBG_OUT_E("Can't set ZERO_PADDING for generated KEK.");
        return;
    }
    dparam = CRYPT_MODE_ECB;
    if (!CryptSetKeyParam(kek, KP_MODE, (BYTE*)&dparam, 0)){
        DBG_OUT_E("Can't set ECB mode");
        return;
    }
    DWORD dataLen = G28147_KEYLEN;
    if (!CryptEncrypt(
        kek, 0, TRUE, 0, NULL, &dataLen, dataLen)) {
        DBG_OUT_E("Can't detemine required buffer size.");
        return;
    }
    printf("Buffer size required: %d\n", dataLen);
}
 
 При этом если исключить установку ZERO_PADDING  ИЛИ CRYPT_MODE_ECB - то все работает - нужный размер буфера вычисляет. Ошибка в коде или где? CryptoPro CSP 3.6R2 Linux i386 Отредактировано пользователем 23 ноября 2010 г. 10:49:39(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 17.10.2010(UTC) Сообщений: 147  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 2 раз Поблагодарили: 10 раз в 9 постах
  
	 
	
     | 
    
        
            
		      
                Да, забыл написать, сегфолт появляется на всех dataLen, кратных 32. 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,556
  Сказал(а) «Спасибо»: 44 раз Поблагодарили: 650 раз в 448 постах
  
	 
	
     | 
    
        
            
		      
                Сходу повторить пробему не удалось. Сделал ночной тест и запрос в JIRA: CPCSP-463 (можно спрашивать в техподдержке о его статусе). Позже ещё раз попробую.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,556
  Сказал(а) «Спасибо»: 44 раз Поблагодарили: 650 раз в 448 постах
  
	 
	
     | 
    
        
            
		      
                Неправильно передаются параметры: нельзя: pbData = NULL, dwBufLen != 0. Дополнительную проверку в провайдер вставил.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close