Меню

Ошибка чтения rutoken ошибка разбора dn сертификата индекс находился вне границ массива


Offline

klvking

 


#1
Оставлено
:

15 апреля 2011 г. 20:42:12(UTC)

klvking

Статус: Участник

Группы: Участники

Зарегистрирован: 15.04.2011(UTC)
Сообщений: 22
Мужчина
Откуда: СПб

При чтении сертификата из контейнера Рутокен-Магистра появляется ошибка «Неправильный параметр набора ключей» в последней строчке кода:

Цитата:

CspParameters csp = new CspParameters();
csp.ProviderType = 75;
csp.KeyContainerName = Gost3410CryptoServiceProvider.SelectContainer(true, false, IntPtr.Zero);
Gost3410CryptoServiceProvider gost = new Gost3410CryptoServiceProvider(csp);

Если вытаскивать сертификат с eToken’а, то все нормально. Отличие в сертификатах: на Магистре просроченный сертификат, на eToken’е действующий.
Пробовал вытаскивать действующий сертификат с Магистры — все в норме…
как можно решить эту проблему?

Отредактировано пользователем 15 апреля 2011 г. 20:42:52(UTC)
 | Причина: Не указана


Вверх


Offline

Челпанов А.

 


#2
Оставлено
:

22 апреля 2011 г. 15:25:58(UTC)

Челпанов А.

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

Группы: Участники

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

Поблагодарили: 2 раз в 2 постах

Извините за задержку с ответом, был в отпуске.
Проблема не в просроченности… Сроки действия ключа при извлечении из контейнера не проверяются
Скорее всего на Магистре ключ подписи, а на eToken ключ шифрования. По умолчанию открывается в контейнере ключ шифрования.

С уважением, Александр.


Вверх

WWW


Offline

klvking

 


#3
Оставлено
:

27 апреля 2011 г. 16:02:10(UTC)

klvking

Статус: Участник

Группы: Участники

Зарегистрирован: 15.04.2011(UTC)
Сообщений: 22
Мужчина
Откуда: СПб

Пробовал следующее:

Цитата:

CspParameters csp = new CspParameters();
csp.ProviderType = 75;
csp.KeyContainerName = Gost3410CryptoServiceProvider.SelectContainer(true, false, IntPtr.Zero);
csp.KeyNumber = (int)KeyNumber.Signature; //(int)KeyNumber.Exchange;
Gost3410CryptoServiceProvider gost = new Gost3410CryptoServiceProvider(csp);
return gost.ContainerCertificate;

Видимо причина не в этом. Попробовал на этом же ключе (Рутокен-Магистра) сгенерить тестовые ключи (http://www.cryptopro.ru/certsrv/) и записать сертификат — вышеуказанным кодом сертификат из контейнера считывается…
Поэтому причина, я думаю, в отличиях в сертификатах. Знать бы что именно не нравится… Пробовал просматривать сертификаты через интерфейс КриптоПро 3.0 — отличия в сертификатах нашел в следующем:
1. Количество точек распределения списка отзыва (CRL) (в несчитываемом 3, в считываемом 1)
2. Использование ключа:
— в несчитываемом — Проверка подлинности клиента (1.3.6.1.5.5.7.3.2) Защищенная электронная почта (1.3.6.1.5.5.7.3.4)Пользователь Центра Регистрации, HTTP, TLS клиент (1.2.643.2.2.34.6)
— в считываемом — Защищенная электронная почта (1.3.6.1.5.5.7.3.4)

Вроде все отличия…


Вверх


Offline

Челпанов А.

 


#4
Оставлено
:

27 апреля 2011 г. 18:17:33(UTC)

Челпанов А.

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

Группы: Участники

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

Поблагодарили: 2 раз в 2 постах

CSP сертификат да же не разбирает, .Net Framework разбирает, но не проверяет. Проблема не в содержимом сертификатов.
А Stack Trace на ошибку «Неправильный параметр набора ключей» можно увидеть?

С уважением, Александр.


Вверх

WWW


Offline

klvking

 


#5
Оставлено
:

27 апреля 2011 г. 19:22:28(UTC)

klvking

Статус: Участник

Группы: Участники

Зарегистрирован: 15.04.2011(UTC)
Сообщений: 22
Мужчина
Откуда: СПб

в CryptoPro.Sharpei.CPUtils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
в CryptoPro.Sharpei.CPUtils.GetKeyPairHelper(CPCspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandleCP& safeProvHandle, SafeKeyHandleCP& safeKeyHandle)
в CryptoPro.Sharpei.Gost3410CryptoServiceProvider.GetKeyPair()
в CryptoPro.Sharpei.Gost3410CryptoServiceProvider..ctor(CspParameters parameters)


Вверх


Offline

Челпанов А.

 


#6
Оставлено
:

28 апреля 2011 г. 13:11:36(UTC)

Челпанов А.

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

Группы: Участники

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

Поблагодарили: 2 раз в 2 постах

1. Эксперименты с Магистра и etoken проводите на одном компьютере?
2. Через контрольную панель CSP сертификаты на обоих контейнерах видны (Сервис/Просмотреть сертификаты в контейнере) и на обох контейнерах ключи exchange (Сервис/Протестировать)?
3. На обоих контейнерах есть пароли?
4. У Вас установлен CSP 3.6.1 или CSP/ФКН?

С уважением, Александр.


Вверх

WWW


Offline

klvking

 


#7
Оставлено
:

28 апреля 2011 г. 15:18:11(UTC)

klvking

Статус: Участник

Группы: Участники

Зарегистрирован: 15.04.2011(UTC)
Сообщений: 22
Мужчина
Откуда: СПб

1. тестировал ПО на 2-х ПК.
2. Сертификаты в обоих случаях видны. Используется Крипто Про 3.0.3300.3, поэтому Сервис/Протестировать отсутствует.
3. Пароли есть в обоих случаях.

Попробовать установить 3.6? Просто на АРМах, на которых надо будет использовать ПО, стоит Крипто Про 3.0 (лицензия), поэтому хотелось бы в рамках 3.0 добить…


Вверх


Offline

Челпанов А.

 


#8
Оставлено
:

28 апреля 2011 г. 15:41:57(UTC)

Челпанов А.

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

Группы: Участники

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

Поблагодарили: 2 раз в 2 постах

Цитата:

1. тестировал ПО на 2-х ПК.

Скорее всего проблема именно в различиях установки CSP или Sharpei.
Переустанавливать CSP пока не надо.
Киньте osinfo.xml (http://www.cryptopro.ru/forum2/Default.aspx?g=posts&t=2930) на support@cryptopro.ru с проблемной машины.

С уважением, Александр.


Вверх

WWW


Offline

klvking

 


#9
Оставлено
:

28 апреля 2011 г. 17:13:35(UTC)

klvking

Статус: Участник

Группы: Участники

Зарегистрирован: 15.04.2011(UTC)
Сообщений: 22
Мужчина
Откуда: СПб

osinfo.xml отправил.
Похоже криво sharpei встал.

Цитата:

CryptoPro.Sharpei.Start.dll not loaded. Error code:126 (0x7e):Не найден указанный модуль


Вверх


Offline

Челпанов А.

 


#10
Оставлено
:

28 апреля 2011 г. 17:41:04(UTC)

Челпанов А.

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

Группы: Участники

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

Поблагодарили: 2 раз в 2 постах

Цитата:

CryptoPro.Sharpei.Start.dll not loaded. Error code:126 (0x7e):Не найден указанный модуль

Это не ошибка, если есть одна из строчек

Цитата:

module name=»CryptoPro.Sharpei.Start20.dll»
module name=»CryptoPro.Sharpei.Start40.dll»

С уважением, Александр.


Вверх

WWW

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

вопросы

Из нашей статьи вы узнаете:

После установки драйверов и во время использования цифровой подписи потенциально могут возникнуть ошибки. Причины часто кроются в программных ошибках, неправильных действиях пользователя. На практике большинство проблем можно решить самостоятельно, без обращения за помощью в удостоверяющий центр или к специалистам по обслуживанию компьютерной техники. Рассмотрим основные ошибки, с которыми приходится сталкиваться пользователям и которые реально решить своими силами.

Ошибка: Сертификат ненадежен/Не удалось проверить статус отзыва

Ошибку можно заметить на вкладке «Сертификаты» непосредственно в панели управления Рутокен. Проблема возникает во время установки ЭЦП и связана с неполной настройкой. Речь про отсутствие специального корневого доверенного сертификата, который выдает удостоверяющий центр.

Первым шагом к устранению ошибки остается обновление комплекта драйверов. Если проблема не исчезла или последние у вас имеют актуальную версию, выполните действия по следующему алгоритму:

  • выберите ваш сертификат в панели управления;
  • нажмите кнопку «Свойства»;
  • выберите вкладку «Путь сертификации».

Если в открывшемся дереве вы видите лишь ваш личный сертификат, то надо установить еще один, который был выдан в удостоверяющем центре, и сделать доверенным.

Ошибка: Rutoken перестает определяться (Windows 10)

Потенциально могут возникать периодические ошибки из-за недоступности сертификатов, невозможности запустить панель управления. Одновременно светодиод на токене горит, а сам Рутокен имеется в Диспетчере устройств. Подобная ситуация может быть связана со спецификой работы материнской платы компьютера, когда при переходе из энергосберегающего режима в штатный не происходит «пробуждения» токена. Выходом здесь станет его отключение либо повторное подключение Рутокена (для этого достаточно достать USB-токен из разъема и подключить опять).

В случае если ошибка не исчезла, обратитесь за консультацией в удостоверяющий центр, где вы оформили ЭЦП и приобрели Рутокен.

Ошибка: Рутокен плагин недоступен

Если у вас появляется ошибка «Плагин недоступен» при входе в личный кабинет сервиса Честный Знак, то это значит, что на компьютере не установлены криптографический плагин Рутокен Плагин или КриптоПро ЭЦП Browser plug-in.

Чтобы исправить данную ошибку вы можете воспользоваться нашей инструкцией по установке плагина RuToken.

Ошибка: Панель управления не видит Рутокен ЭЦП 2.0

Для решения проблемы выполните следующие действия:

  • подключите токен к другому USB-разъему или компьютеру для оценки работоспособности;
  • определите наличие устройства через «Диспетчер устройств» в разделе «Контроллеры USB»;
  • проконтролируйте наличие доступа к веткам реестра
    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyCalais и
    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyCalaisReaders у текущего пользователя и Local Service (если необходимо, то добавьте), также убедитесь, что Служба «Смарт-карта» запущена от имени NT AUTHORITYLocalService («Пуск» — «Панель управления» — «Администрирование» — «Службы»).;
  • проверьте количество считывателей в настройках панели управления (должно быть значение 1);
  • переустановите комплект драйверов для исключения сбоя программного обеспечения.

Если ничего не помогло и ошибка осталась, обращайтесь в удостоверяющий центр «Астрал». Мы предлагаем услуги по генерации ЭЦП любых типов на выгодных условиях, а также комплексное техническое сопровождение. Для решения проблем мы готовы проконсультировать по телефону либо найти выход с помощью удаленного подключения к вашему компьютеру. Получить дополнительную информацию можно по телефону либо оставив заявку на сайте. Мы оперативно ответим и предоставим консультацию.

Я читаю файл PDF, используя iTextSharp.text.pdf.
Но, как вы можете видеть в приведенном ниже коде, когда я пытаюсь прочитать первую страницу PDF-файла, он дает мне сообщение об ошибке: «Индекс находился вне границ массива.»

Но когда я читаю вторую или третью страницу, он не выдает сообщения об ошибке.

Ниже приведен код, который я использую для чтения файла PDF.

StringBuilder pdfContent = new StringBuilder();
PdfReader pdfReader = new PdfReader(pdfFilePath);
int pageCount = pdfReader.NumberOfPages;
for (int i = 1; i <= pageCount; i++)
    {
       ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
        string text = PdfTextExtractor.GetTextFromPage(pdfReader, i, strategy);
        if (!string.IsNullOrWhiteSpace(text))
        {
            pdfContent.Append(Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(text))));
        }

        if (parser != null)
        {
            parser.ProcessContent(i, imageRenderListener);
        }
    }
pdfReader.Close();

return pdfContent.ToString();

Может кто-нибудь мне помочь

Ошибка лежит в этих двух строчках(полный код представлен ниже)

exptab[i]:= (45 * exptab[i-1]) mod 257;  
logtab[exptab[i]]:= i;  

Я так понимаю, что pascalabc представляет как exptab[i] будет равен 256 и заранее выдает ошибку.Онлайн компиляторы ошибку не видят и программа работает правильно. Сами условия изменить не смогу, так как программа кодирует определенный шифр с определенными условиями. Объясните что может быть не так, потому что я не смогу показать работу программы без запуска pascalabc(если окажется, что это проблема компилятора, то попробую договориться с преподавателем).

program SAFERK64;   
VAR a1, a2, a3, a4, a5, a6, a7, a8, b1, b2, b3, b4, b5, b6, b7, b8, r: byte;  
k: ARRAY[1..21,1..8] OF byte; k1: ARRAY[1..8] OF byte;  
logtab, exptab: ARRAY[0..255] OF integer; i, j, flag: integer;  
PROCEDURE mat1(VAR a1, a2, b1, b2: byte);  
BEGIN b2:= a1 + a2; b1:= b2 + a1; END;  
PROCEDURE invmat1(VAR a1, a2, b1, b2: byte);  
BEGIN b1:= a1 - a2; b2:= -b1 + a2; END;  
BEGIN  
logtab[1]:= 0; exptab[0]:= 1;  
FOR i:= 1 TO 255 DO  
BEGIN  
exptab[i]:= (45 * exptab[i-1]) mod 257;  
logtab[exptab[i]]:= i;  
END;  
exptab[128]:= 0; logtab[0]:= 128; exptab[0]:= 1;  
flag:= 0; writeln;  
writeln('Введите число раундов r (max 10)'); readln(r);  
writeln; writeln('Введите исходный текст из 8 байт с пробелами между ними');  
REPEAT  
BEGIN  
writeln('(Значение байта от 0 до 255)');  
readln(a1, a2, a3, a4, a5, a6, a7, a8);  
writeln('Введите ключ из 8 байт');  
readln(k[1,1],k[1,2],k[1,3],k[1,4],k[1,5],k[1,6],k[1,7],k[1,8]);  
k1 [1]:= k[1,1]; k1[2]:= k[1,2]; k1[3]:= k[1,3]; k1[4]:= k[1,4];  
k1 [5]:= k[1,5]; k1[6]:= k[1,6]; k1[7]:= k[1,7]; k1[8]:= k[1,8];  
writeln('ИСХОДНЫЙ ТЕКСТ ', a1:8,a2:4,a3:4,a4:4,a5:4,a6:4,a7:4,a8:4);  
writeln('КЛЮЧ ', k[1,1]:8,k[1,2]:4,k[1,3]:4,k[1,4]:4,  
k[ 1,5]:4,k[ 1,6]:4,k[ 1,7] :4,k[ 1,8] :4);  
FOR i:= 2 TO 2*r + 1 DO  
FOR j:= 1 TO 8 DO  
BEGIN  
k1[j]:= (k1[j] shl 3) + (k1[j] shr 5);  
k[i,j]:= k1[j] + exptab[exptab[9*i+j]];  
END;  
FOR i:= 1 TO r DO  
BEGIN   
a1:= a1 xor k[2*i-1,1]; a2:= a2 + k[2*i-1,2];  
a3:= a3 + k[2*i-1,3]; a4:= a4 xor k[2*i-1,4];  
a5:= a5 xor k[2*i-1,5]; a6:= a6 + k[2*i-1,6];  
a7:= a7 + k[2*i-1,7]; a8:= a8 xor k[2*i-1,8];  
b1:= exptab[a1]; b2:= logtab[a2]; b3:= logtab[a3]; b4:= exptab[a4];  
b5:=exptab[a5]; b6:= logtab[a6]; b7:= logtab[a7]; b8:= exptab[a8];  
b1:= b1 + k[2*i,1]; b2:= b2 xor k[2*i,2];  
b3:= b3 xor k[2*i,3]; b4:= b4 + k[2*i,4];  
b5:= b5 + k[2*i,5]; b6:= b6 xor k[2*i,6];  
b7:= b7 xor k[2*i,7]; b8:= b8 + k[2*i,8];  
mat1(b1, b2, a1, a2); mat1(b3, b4, a3, a4);  
mat1(b5, b6, a5, a6); mat1(b7, b8, a7, a8);  
mat1(a1, a3, b1, b2); mat1(a5, a7, b3, b4);  
mat1(a2, a4, b5, b6); mat1(a6, a8, b7, b8);  
mat1(b1, b3, a1, a2); mat1(b5, b7, a3, a4);  
mat1(b2, b4, a5, a6); mat1(b6, b8, a7, a8);  
writeln('После раунда',i:2,a1:8,a2:4,a3:4,a4:4,a5:4,a6:4,a7:4,a8:4);  
END;  
a1:= a1 xor k[2*r+1,1]; a2:= a2 + k[2*r+1,2];  
a3:= a3 + k[2*r+1,3]; a4:= a4 xor k[2*r+1,4];  
a5:= a5 xor k[2*r+1,5]; a6:= a6 + k[2*r+1,6];  
a7:= a7 + k[2*r+1,7]; a8:= a8 xor k[2*r+1,8];  
writeln('КРИПТОГРАММА',a1:8,a2:4,a3:4,a4:4,a5:4,a6:4,a7:4,a8:4); writeln;  
writeln('Напечатайте 0 чтобы продолжить и -1 чтобы завершить'); read(flag);  
END  
UNTIL flag < 0;  
END.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка чтения pcu файла pascal
  • Ошибка чтения nfc повтор попытки что это