Ошибка при обработке криптографического сообщения 0x80091001


Offline

kazaza

 


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

29 мая 2012 г. 14:32:22(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Здравствуйте.
Есть программа, которая использует функции Sharpei для подписания файлов. Проверка также производится функциями Sharpei, в другой программе. Всё хорошо, всё проверяется, все счастливы. Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001. При проверке на http://notary.cryptopro.ru ошибка «Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.» Может ли быть такое, что в нашей программе неправильно происходит запись в файл подписи?
Исходник прилагаю.
http://rghost.ru/38347431


Вверх


Offline

Андрей Писарев

 


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

29 мая 2012 г. 14:38:26(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,134
Мужчина
Российская Федерация

Сказал «Спасибо»: 461 раз
Поблагодарили: 1950 раз в 1508 постах

kazaza написал:

Здравствуйте.
Есть программа, которая использует функции Sharpei для подписания файлов. Проверка также производится функциями Sharpei, в другой программе. Всё хорошо, всё проверяется, все счастливы. Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001. При проверке на http://notary.cryptopro.ru ошибка «Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.» Может ли быть такое, что в нашей программе неправильно происходит запись в файл подписи?
Исходник прилагаю.
http://rghost.ru/38347431

Цитата:

Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001

0x80091001 Ошибка при обработке криптографического сообщения.

Цитата:

«Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.»

ЭЦП не в pkcs7 формате

Код:


 //Подписываем хеш
            byte[] SignedHashValue = GostFormatter.CreateSignature(hashValue);
            FileStream fileStl = new FileStream(SignatureFilePath, FileMode.OpenOrCreate,
               FileAccess.ReadWrite, FileShare.ReadWrite);
            fileStl.Write(SignedHashValue, 0, SignedHashValue.Length);
            fileStl.Dispose();
            myhash.Clear();

Цитата:

CreateSignature
Возвращаемое значение
Подпись в виде байтового массива.

Отредактировано пользователем 29 мая 2012 г. 14:41:31(UTC)
 | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

29 мая 2012 г. 14:40:40(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Да, она самая. Отчего она возникнуть может?
Update: нет. Согласно коду, который я прикрепила, мы просто вычисляем хэш, подписываем его и записываем в файл.
Update2: а как создать подпись в pkcs из того, что мы получили?
Update3: нашла в примерах cms. Попробую и отпишусь, получилось или нет.

Отредактировано пользователем 29 мая 2012 г. 14:47:10(UTC)
 | Причина: Не указана


Вверх


Offline

Андрей Писарев

 


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

29 мая 2012 г. 14:46:07(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,134
Мужчина
Российская Федерация

Сказал «Спасибо»: 461 раз
Поблагодарили: 1950 раз в 1508 постах

kazaza написал:

Да, она самая. Отчего она возникнуть может?
Update: нет. Согласно коду, который я прикрепила, мы просто вычисляем хэш, подписываем его и записываем в файл.
Update2: а как создать подпись в pkcs из того, что мы получили?

КриптоПро Sharpei SDK :

chm: Примеры\Примеры работы с форматом PKCS/CMS
файлы: Crypto Pro\Sharpei SDK\Examples\simple\CMS\cs\ SingleSigner.cs и т.д.

Отредактировано пользователем 29 мая 2012 г. 14:49:58(UTC)
 | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

30 мая 2012 г. 17:55:20(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Ошибка:
http://rghost.ru/38371609/image.png
Код:
http://rghost.ru/38371634


Вверх


Offline

Георгий Садофьев

 


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

30 мая 2012 г. 21:24:03(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 130
Мужчина

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

Судя по коду Вы отсоединенную подпись создаете

Код:

SignedCms signedCms = new SignedCms(contentInfo, true);

Тогда, чтобы ее проверить Вам нужно так проверку делать:

Код:

static bool VerifyMsg(Byte[] msg, 
            byte[] encodedSignature)
        {
            // Создаем объект ContentInfo по сообщению.
            // Это необходимо для создания объекта SignedCms.
            ContentInfo contentInfo = new ContentInfo(msg);

            // Создаем SignedCms для декодирования и проверки.
            SignedCms signedCms = new SignedCms(contentInfo, true);

            // Декодируем подпись
            signedCms.Decode(encodedSignature);

            // Перехватываем криптографические исключения, для 
            // возврата о false значения при некорректности подписи.
            try
            {
                // Проверяем подпись. В данном примере не 
                // проверяется корректность сертификата подписавшего.
                // В рабочем коде, скорее всего потребуется построение
                // и проверка корректности цепочки сертификата.
                Console.Write("Проверка подписи сообщения ... ");
                signedCms.CheckSignature(true);
                Console.WriteLine("Успешно.");
            }
            catch (System.Security.Cryptography.CryptographicException e)
            {
                Console.WriteLine("Функция VerifyMsg возбудила исключение:  {0}",
                    e.Message);
                Console.WriteLine("Проверка PKCS #7 сообщения завершилась " +
                    "неудачно. Возможно сообщене, подпись, или " +
                    "соподписи модифицированы в процессе передачи или хранения. " +
                    "Подписавший или соподписавшие возможно не те " +
                    "за кого себя выдают. Достоверность и/или целостность " +
                    "сообщения не гарантируется. ");
                return false;
            }

            return true;
        }

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

31 мая 2012 г. 12:30:32(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Спасибо, программа работает корректно, проверка проходит.
Однако при попытке проверить полученное сообщение с помощью cryptcp возникает та же ошибка: неправильная подпись.
Не может ли это быть связано со строками:

Код:

Encoding unicode = Encoding.Unicode;
byte[] msgBytes = unicode.GetBytes(msg);

Зачем вообще мы используем

Код:

Encoding unicode = Encoding.Unicode;

?

Отредактировано пользователем 31 мая 2012 г. 12:33:20(UTC)
 | Причина: Не указана


Вверх


Offline

Георгий Садофьев

 


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

31 мая 2012 г. 14:19:05(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 130
Мужчина

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

Покажите, как проверяете подпись cryptcp?
Какую подпись проверяете (отделённую или присоединённую)?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

31 мая 2012 г. 14:26:24(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

cryptcp -vsignf test2.txt -f test2.txt.sgn
test2.tx — исходный файл
test2.txt.sgn — файл подписи
Проверяем отделенную подпись.


Вверх


Offline

Георгий Садофьев

 


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

31 мая 2012 г. 14:42:54(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 130
Мужчина

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

А в самой программе вы вычисляете подпись для файла test2.txt?
То есть считываете байты из этого файла?
Или, как в примере, подписываете какую-то строку, записываете подпись в файл test2.txt.sgn, а потом просто создаете файл test2.txt, в котором подписываемая строка содержится?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

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

Guest

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

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

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

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

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

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

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


Offline

kazaza

 


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

29 мая 2012 г. 14:32:22(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Здравствуйте.
Есть программа, которая использует функции Sharpei для подписания файлов. Проверка также производится функциями Sharpei, в другой программе. Всё хорошо, всё проверяется, все счастливы. Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001. При проверке на http://notary.cryptopro.ru ошибка «Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.» Может ли быть такое, что в нашей программе неправильно происходит запись в файл подписи?
Исходник прилагаю.
http://rghost.ru/38347431


Вверх

Offline

Андрей Писарев

 


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

29 мая 2012 г. 14:38:26(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

kazaza написал:

Здравствуйте.
Есть программа, которая использует функции Sharpei для подписания файлов. Проверка также производится функциями Sharpei, в другой программе. Всё хорошо, всё проверяется, все счастливы. Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001. При проверке на http://notary.cryptopro.ru ошибка «Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.» Может ли быть такое, что в нашей программе неправильно происходит запись в файл подписи?
Исходник прилагаю.
http://rghost.ru/38347431

Цитата:

Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001

0x80091001 Ошибка при обработке криптографического сообщения.

Цитата:

«Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.»

ЭЦП не в pkcs7 формате

Код:


 //Подписываем хеш
            byte[] SignedHashValue = GostFormatter.CreateSignature(hashValue);
            FileStream fileStl = new FileStream(SignatureFilePath, FileMode.OpenOrCreate,
               FileAccess.ReadWrite, FileShare.ReadWrite);
            fileStl.Write(SignedHashValue, 0, SignedHashValue.Length);
            fileStl.Dispose();
            myhash.Clear();

Цитата:

CreateSignature
Возвращаемое значение
Подпись в виде байтового массива.

Отредактировано пользователем 29 мая 2012 г. 14:41:31(UTC)
 | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

29 мая 2012 г. 14:40:40(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Да, она самая. Отчего она возникнуть может?
Update: нет. Согласно коду, который я прикрепила, мы просто вычисляем хэш, подписываем его и записываем в файл.
Update2: а как создать подпись в pkcs из того, что мы получили?
Update3: нашла в примерах cms. Попробую и отпишусь, получилось или нет.

Отредактировано пользователем 29 мая 2012 г. 14:47:10(UTC)
 | Причина: Не указана


Вверх

Offline

Андрей Писарев

 


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

29 мая 2012 г. 14:46:07(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

kazaza написал:

Да, она самая. Отчего она возникнуть может?
Update: нет. Согласно коду, который я прикрепила, мы просто вычисляем хэш, подписываем его и записываем в файл.
Update2: а как создать подпись в pkcs из того, что мы получили?

КриптоПро Sharpei SDK :

chm: ПримерыПримеры работы с форматом PKCS/CMS
файлы: Crypto ProSharpei SDKExamplessimpleCMScs SingleSigner.cs и т.д.

Отредактировано пользователем 29 мая 2012 г. 14:49:58(UTC)
 | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

30 мая 2012 г. 17:55:20(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Ошибка:
http://rghost.ru/38371609/image.png
Код:
http://rghost.ru/38371634


Вверх

Offline

Георгий Садофьев

 


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

30 мая 2012 г. 21:24:03(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 113
Мужчина

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

Судя по коду Вы отсоединенную подпись создаете

Код:

SignedCms signedCms = new SignedCms(contentInfo, true);

Тогда, чтобы ее проверить Вам нужно так проверку делать:

Код:

static bool VerifyMsg(Byte[] msg, 
            byte[] encodedSignature)
        {
            // Создаем объект ContentInfo по сообщению.
            // Это необходимо для создания объекта SignedCms.
            ContentInfo contentInfo = new ContentInfo(msg);

            // Создаем SignedCms для декодирования и проверки.
            SignedCms signedCms = new SignedCms(contentInfo, true);

            // Декодируем подпись
            signedCms.Decode(encodedSignature);

            // Перехватываем криптографические исключения, для 
            // возврата о false значения при некорректности подписи.
            try
            {
                // Проверяем подпись. В данном примере не 
                // проверяется корректность сертификата подписавшего.
                // В рабочем коде, скорее всего потребуется построение
                // и проверка корректности цепочки сертификата.
                Console.Write("Проверка подписи сообщения ... ");
                signedCms.CheckSignature(true);
                Console.WriteLine("Успешно.");
            }
            catch (System.Security.Cryptography.CryptographicException e)
            {
                Console.WriteLine("Функция VerifyMsg возбудила исключение:  {0}",
                    e.Message);
                Console.WriteLine("Проверка PKCS #7 сообщения завершилась " +
                    "неудачно. Возможно сообщене, подпись, или " +
                    "соподписи модифицированы в процессе передачи или хранения. " +
                    "Подписавший или соподписавшие возможно не те " +
                    "за кого себя выдают. Достоверность и/или целостность " +
                    "сообщения не гарантируется. ");
                return false;
            }

            return true;
        }

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

31 мая 2012 г. 12:30:32(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Спасибо, программа работает корректно, проверка проходит.
Однако при попытке проверить полученное сообщение с помощью cryptcp возникает та же ошибка: неправильная подпись.
Не может ли это быть связано со строками:

Код:

Encoding unicode = Encoding.Unicode;
byte[] msgBytes = unicode.GetBytes(msg);

Зачем вообще мы используем

Код:

Encoding unicode = Encoding.Unicode;

?

Отредактировано пользователем 31 мая 2012 г. 12:33:20(UTC)
 | Причина: Не указана


Вверх

Offline

Георгий Садофьев

 


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

31 мая 2012 г. 14:19:05(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 113
Мужчина

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

Покажите, как проверяете подпись cryptcp?
Какую подпись проверяете (отделённую или присоединённую)?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

31 мая 2012 г. 14:26:24(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

cryptcp -vsignf test2.txt -f test2.txt.sgn
test2.tx — исходный файл
test2.txt.sgn — файл подписи
Проверяем отделенную подпись.


Вверх

Offline

Георгий Садофьев

 


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

31 мая 2012 г. 14:42:54(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 113
Мужчина

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

А в самой программе вы вычисляете подпись для файла test2.txt?
То есть считываете байты из этого файла?
Или, как в примере, подписываете какую-то строку, записываете подпись в файл test2.txt.sgn, а потом просто создаете файл test2.txt, в котором подписываемая строка содержится?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

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

Guest

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

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

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

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

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

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

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


Offline

zforall

 


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

2 апреля 2016 г. 8:16:47(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.


Вверх

Offline

neigel

 


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

2 апреля 2016 г. 9:57:44(UTC)

neigel

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

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

Зарегистрирован: 23.12.2014(UTC)
Сообщений: 91
Российская Федерация

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 2 раз в 2 постах

Автор: zforall Перейти к цитате

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.

Попробуйте файл ЭП назвать также как файл документа, но добавить расширение .sgn

cryptcp почему-то такие расширения делает, хотя общепринято .sig


Вверх

Offline

zforall

 


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

3 апреля 2016 г. 11:19:41(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Спасибо за совет, уже делал. Результат — описанная ошибка.
Думаю дело в файле подписи — он какой-то «с изюменкой», хотя на сайте гос услуг документ с подписью проходят проверку.


Вверх

Offline

Андрей Писарев

 


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

3 апреля 2016 г. 13:34:08(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: neigel Перейти к цитате

Автор: zforall Перейти к цитате

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.

Попробуйте файл ЭП назвать также как файл документа, но добавить расширение .sgn

cryptcp почему-то такие расширения делает, хотя общепринято .sig

Здравствуйте.

Еще есть варианты: p7s

SGN тоже принято, например, приказами ФНС.

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей Писарев

 


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

3 апреля 2016 г. 13:52:38(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: zforall Перейти к цитате

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.

Здравствуйте.

В файле .bin — электронная подпись (CMS (pkcs#7)).

Цитата:

C:Program Files (x86)Crypto ProCSP>
csptest -sfsign -verify -in c:tmp1.dat -signature c:tmp1.dat.sig -detached
……………………………………………………………………………
Detached Signature was verified OK
Total: SYS: 0,031 sec USR: 0,063 sec UTC: 0,094 sec
[ErrorCode: 0x00000000]

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей Писарев

 


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

3 апреля 2016 г. 14:18:17(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

В файле: c:tmp1.dat.sgn — должна быть подпись (файл из указанного архива с расширением .bin)

Команда для проверки:

Цитата:

cryptcp.exe -vsignf -nochain -dir c:tmp c:tmp1.dat

Возникает ошибка:

Цитата:

CryptCP 3.42 (c) «КРИПТО-ПРО», 2002-2013.
Утилита командной строки для подписи и шифрования файлов.

Найдено сертификатов: 37
Папка ‘c:tmp’:
c:tmp1.dat… Проверка подписи…
Ошибка: Ошибка при обработке криптографического сообщения.

dsign.cpp:1846: 0x80091001
[ErrorCode: 0x80091001]

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

zforall

 


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

4 апреля 2016 г. 12:48:02(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Спасибо за подсказку, Андрей.

При помощи csptest удалось проверить подпись.

Однако непонятно осталось насчет cryptcp.

Запускаю cryptcp как указано в вашем последнем посте. Получаю такую-же ошибку. Что это? Неспособность cryptcp работать с такими файлами? Но что такого необычного в файле подписи? Подскажите, и я обращусь к нашему контрагенту который шлет эти файлы чтобы он изменил свой механизм подписи (если это конечно возможно) так чтобы мой cryptcp мог проверять ее.


Вверх

Offline

zforall

 


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

4 апреля 2016 г. 14:12:33(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Я опишу свою задачу шире, может это поможет вам навести меня на верный путь.
Стоит задача организовать подпись документов отправляемых контрагенту, и верификация подписей документов получаемых от контрагента в 1С.
Было принято решение использовать для этих целей утилиту cryptocp. Запускать ее как внешнюю (по отношению к 1С программу) с набором параметров и анализировать возвращаемое значение.
Может существуют какие-либо другие способы наладить такую работу?

1С используется версии 8.1 — там нет своего встроенного криптопровайдера, как в 8.2, это принципиальное ограничение.


Вверх

Offline

Андрей Писарев

 


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

4 апреля 2016 г. 14:41:42(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: zforall Перейти к цитате

Я опишу свою задачу шире, может это поможет вам навести меня на верный путь.
Стоит задача организовать подпись документов отправляемых контрагенту, и верификация подписей документов получаемых от контрагента в 1С.
Было принято решение использовать для этих целей утилиту cryptocp. Запускать ее как внешнюю (по отношению к 1С программу) с набором параметров и анализировать возвращаемое значение.
Может существуют какие-либо другие способы наладить такую работу?

1С используется версии 8.1 — там нет своего встроенного криптопровайдера, как в 8.2, это принципиальное ограничение.

Вы можете уточнить — в каком ПОверсии делалась «проблемная» ЭП?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

zforall

 


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

4 апреля 2016 г. 14:47:07(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

У нас уже закончился рабочий день, поэтому сегодня узнать не смогу.
Я завтра с утра выясню эту информацию и напишу.


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

Guest

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

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

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

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

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

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

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

При возникновении перечисленных далее ошибок воспользуйтесь стандартными действиями для решения проблем с криптографией. Ошибки могут возникать при подписании и расшифровке (отправке отчета, обмене, отправке заявления, обновлении статуса заявления и т.д.):

  • набор ключей не определен;
  • неправильный открытый ключ поставщика;
  • не найден сертификат и открытый ключ для расшифровки;
  • не найден сертификат руководителя в системном хранилище сертификатов;
  • не удалось расшифровать файл обновлений;
  • ошибка инициализации криптопровайдера;
  • плохие данные;
  • ошибка при получении свойств сертификата. Не удалось выполнить подписание сертификатом, Федеральная налоговая служба по причине Ошибка при получении свойства сертификата (0x0000000);

  • ошибка интерфейса модуля криптографии. Отсутствует набор ключей. Не удалось выполнить подписание сертификатом по причине: Ошибка интерфейса модуля криптографии. Отсутствует набор ключей;

  • ошибка при получении контекста модуля криптографии. Не удалось выполнить подписание сертификатом , Федеральная налоговая служба по причине Ошибка при получении контекста модуля криптографии;

  • модуль криптографии не поддерживает алгоритмов подписи. Не удалось выполнить подписание сертификатом по причине: Модуль криптографии не поддерживает алгоритмов подписи. Не удалось подписать файл по причине…;

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

  • не удалось подписать файл по причине: Ошибка исполнения функции. Не удалось подписать файл по причине: Ошибка исполнения функции. Ошибка подписания документа: Запрос на информационное обслуживание налогоплательщика, связанное с циклом обмена.

Ошибка при распаковке криптографического сообщения

Если после отправки декларации в протоколе обработки появляется ошибка Ошибка при распаковке криптографического сообщения,

выполните следующие действия:

  1. Установите сертификата Росалкогольрегулирования по инструкции
  2. Убедитесь, что в хранилище Другие пользователи установлены сертификаты Росалкогольрегулирования и Субъекта. Для этого:
    • пройдите по пути ПускПанель управленияСвойства обозревателя
    • в Свойствах обозревателя откройте вкладку Содержание, нажмите Сертификаты
    • в открывшемся окне нажмите Другие пользователи, убедитесь, что в списке сертификатов присутствует сертификат Росалкогольрегулирования и сертификат Субъекта. Откройте каждый сертификат, срок действия сертификатов должен быть действительным. 
    • если оба или один из сертификатов не установлен (не действителен)  — установите их/его с помощью одной из инструкций.
  3. Зашифруйте и подпишите файл декларации заново, соблюдая инструкцию Подписание и шифрование файла для Росалкогольрегулирования.
    Ошибка чаще всего связана с нарушением процедуры подписания.
    При повторном шифровании и подписании декларации, обратите внимание на следующие шаги:
     — Параметры подписи (пункт 6). Галочки должны быть выставлены согласно скриншоту в инструкции: если у вас нет необходимой галочки – добавьте, если стоят лишние – уберите лишнее.
     — Выходной формат файла (пункт 10). Точки должны стоять согласно скриншоту, в ином случае файл не будет заархивирован по требованиям ФСРАР.
     — Выбор файлов (пункт 11). Обратите внимание, что на данном пункте не выбирается декларация для шифрования, поскольку в заголовке представлено, что файл будет создан без создания подписи. На данном шаге нажимается кнопка Далее и не выбирается декларация.
    Выбор сертификатов получателей (пункт 13). Среди сертификатов получателей могут быть только сертификаты Органа исполнительной власти субъекта и ФСРАР — в данном списке нельзя выбирать сертификат отправителя (выданный на вашу организацию/ИП).
  4. Внимание! Имя файла декларации должно отличаться от имени отправленной ранее декларации.
    В окне выбора сертификатов получателей необходимо выбирать два сертификата: сертификат Субъекта и сертификат Росалкогольрегулирования 

  5. Повторно отправьте файл декларации в контролирующие органы.

Вы определились с выбором?

Перейти к оформлению заказа

Неизвестный криптографический алгоритм (80091002)

  На компьютере не установлено приложение от криптопровайдера, указанного в сертификате, которым осуществляется попытка наложения ЭЦП либо которым подписан документ (при проверке ЭЦП) — см. свойство сертификата «Алгоритм подписи». Например, ПО от Крипто Про, если ключевая пара (открытый и закрытый) созданы по ГОСТ .

 Не удается найти указанный файл  (00000002)

  Возможные причины:

сертификат установлен без закрытого ключа.
рутокен (носитель с сертификатом) поврежден/неисправен .
применяется (вставлен в компьютер) не тот рутокен (носитель) — не от выбираемого сертификата. Например, в период смены сертифкатов, используется прежний еще действующий сертификат, а носитель вставляют от нового сертификата.

 Неизвестная ошибка. (C000000D)

Проблема в совместимости ПО «Крипто Про» и «Континент АП», способы решения см на форумах соответствующих ПО. См так же обсуждение  на форуме «Бюджет-СМАРТ» https://keysystems.ru/forum/index.php?showtopic=19187&p=157205 .

 Статус аннулирования сертификатов не выяснен. Не удалось загрузить действующий список отозванных сертификатов — состояние (статус) ЭЦП.

 Не удается построить цепочку сертификатов для доверенного корневого центра — сообщение при наложении ЭЦП.

  Возможные причины:

корневой сертификат УЦ не соответствует сертифкатам пользователей;
корневой сертификат УЦ отсутствует на сервисе ОД/сервере ключей;
корневой сертификат УЦ установлен неверно (местоположение не «локальный компьютер»/реестр, см. описание «Сервис проверки ЭЦП»).

  Корневой сертификат УЦ обычно обновляется ежегодно. На сервисе ОД должен быть установлен корневой сертификат УЦ, под которым выдавались ключи пользователям.

  Примеры ситуаций, приводящие к вышеприведенной ошибке: часть пользователей имеют ключи 2011г, часть 2012г, установлен корневой сертификат 2012г — пользователи с сертификатами 2011г не смогут подписать (либо их подпись станет неверна).

 Один из сертификатов в цепочке не является доверенным — причина в том, что корневой сертификат УЦ не установлен в список «Доверенные корневые центры сертификации» на компьютере, где проверяется ЭЦП.

 nastr_ecp_error_dover

 Документ не удовлетворяет условиям схем работы с ЭП  

 Нет подходящего варианта в автомате ЭЦП для данного документа. Если автомат не настраивался, то не следует включать настройку «Использовать Автомат ЭЦП».

Невозможно создать файл, так как он уже существует.

B7: CryptMsgUpdate

При установке сертификата на компьютер пользователя средствами Крипто ПРО был выбран неверный криптопровайдер в поле «Выберите CSP для поиска ключевых контейнеров».

Возникла ошибка при соединении с сервисом проверки ЭЦП: …

  Настройка «Меню Настройки: НАСТРОЙКИ Электронная подпись Сервис проверки ЭЦП» указана неверно (несуществующий адрес), либо SQL сервер не может подключиться к сервису ОД из указанной настройки (ограничения сетевых экранов, антивирусы и т.п.).

Отказано в доступе. 80090010: CryptMsgOpenToEncode HResult: -2146233296

  Истёк срок действия закрытого ключа. Для получения подробных сведений о сроках и причинах, следует протестировать контейнер закрытого ключа в ПО «Крипто Про» — обратить внимание на информацию вида:

Срок действия закрытого ключа       20 января 2019 г. 11:27:15

Использование ключа обмена          запрещено. Срок действия закрытого ключа истек…..

Сannot connect или Cannot resolve IP address или Error get version

  При применении Сервера ключей (устарело): данные сообщения означают, что не удалось обратиться к серверу ключей: неверно указана настройка сервера ключей, либо на сервере ключей не запущена программа проверки ЭЦП (CertServer.exe), либо не удалось соединиться с сервером ключей (антивирус, брандмауер и т.д.) и т.п. причины.

ИСТОЧНИК

Сегодня разберем проблему с подписью в КриптоПро, а конкретнее строчку в отчете «ошибка 0x80090010 отказано в доступе». Поговорим чем вызван этот сбой в СУФД, дадим общие рекомендации по обновлению программы. В конце статьи оставим инструкцию как же все такие подписать документы, если ключ просрочен, а отправить отчет нужно.

Ошибка подписи. CryptSignMessage: Отказано в доступе

Отправляясь тестировать контейнер первым делом получаем отчет с ошибкой вот такого содержания:

Ошибка 0x80090010 отказано в доступе

Ошибка 0x80090010 отказано в доступе

Для начала проверьте версию КриптоПРО CSP. Если версия стабильная и рабочая – оставляем, если помимо этого сбоя присутствую другие ошибки – версию программы лучше обновить на будущее.
Ошибка 0x80090010 отказано в доступе – означает что просрочена версия открытого или закрытого ключа. Создавая запрос на выдачу сертификата для генерации ключей, мы несём необходимые бумаги для выдачи подписи через несколько недель. Контроль будет осуществляться с даты создания запроса. Тут мы используем лайфхак, об этом ниже, а для начала мы протестируем контейнер.

Проверяем контейнер

Для проверки контейнера проделаем стандартные операции перечисленные ниже:

  1. Открываем панель управления и запускаем КриптоПРО CSP. Заходим во вкладку «Сервис»;
  2. Нажимаем «Протестировать» и «Обзор»;
  3. В файловой системе находим сертификат, который мы использовали для подписи перед получением ошибки 0x80090010;
  4. Смотрим на верхнюю строчку в отчете;

    Проверка завершилась с ошибкой

    Проверка завершилась с ошибкой

  5. Видим что срок действия закрытого ключа истёк;

    Срок действия закрытого ключа истек

    Срок действия закрытого ключа истек

  6. Пролистав еще ниже и вправо вы увидите срок действия закрытого ключа.

    Срок действия закрытого ключа истек

    Срок действия закрытого ключа истек

Еще раз – ошибка подписи 0x80090010 всегда означает что истек срок действия закрытого ключа.

Как подписать документы?

Тут придется прибегнуть к маленькой хитрости, которая работала раньше во многих программах схожего типа – поменять системную дату на срок действия системного ключа:

  • Кликаем правой кнопкой мышки по часам Windows 10 и выбираем «Настройка даты и времени». Для Windows 7 — двойной клик левой кнопкой мыши.

    Настройка даты и времени

    Настройка даты и времени

  • Выбираем дату на несколько дней раньше истечения срока действия ключа.
  • Перезапускаем ПК, заново открываем КриптоПРО CSP и пробуем подписать документы.

После этого можно выдохнуть, заварить чашечку крепкого кофе… И начать готовить документы и оформлять заявку для оформления нового сертификата.

Заключение

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

Евгений Загорский

Евгений Загорский

IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.

Оценка статьи:

ПлохоСреднеХорошоОчень хорошоОтлично (5 оценок, среднее: 5,00 из 5)

Загрузка…

Самое читаемое:

Как отключить рекомендуемые ролики в Яндекс Дзене 28.01.2023

Как отключить рекомендуемые ролики в Яндекс Дзене

Площадка «Яндекс.Дзен» недавно перешла в собственность VK и претерпела некоторые изменения. В первую очередь это…

Далее

Как отключить Т9 на Айфоне и Айпаде? 28.01.2023

Как отключить Т9 на Айфоне и Айпаде?

Понятие «T9» берет свое начало со времен кнопочных телефонов. Данная функция позволила людям быстро набирать…

Далее

Приложение CIT Test на Xiaomi – что это и зачем нужно? 28.01.2023

Приложение CIT Test на Xiaomi – что это и зачем нужно?

Количество приложений для смартфонов Xiaomi настолько велико, что подавляющее большинство из них остаются…

Далее

RAM Plus на Samsung – что это за программа? 22.01.2023

RAM Plus на Samsung – что это за программа?

Оперативная память (точнее — ее объем) является решающим фактором при выборе смартфона для многих пользователей….

Далее


Offline

kazaza

 


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

29 мая 2012 г. 14:32:22(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Здравствуйте.
Есть программа, которая использует функции Sharpei для подписания файлов. Проверка также производится функциями Sharpei, в другой программе. Всё хорошо, всё проверяется, все счастливы. Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001. При проверке на http://notary.cryptopro.ru ошибка «Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.» Может ли быть такое, что в нашей программе неправильно происходит запись в файл подписи?
Исходник прилагаю.
http://rghost.ru/38347431


Вверх

Offline

Андрей Писарев

 


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

29 мая 2012 г. 14:38:26(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

kazaza написал:

Здравствуйте.
Есть программа, которая использует функции Sharpei для подписания файлов. Проверка также производится функциями Sharpei, в другой программе. Всё хорошо, всё проверяется, все счастливы. Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001. При проверке на http://notary.cryptopro.ru ошибка «Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.» Может ли быть такое, что в нашей программе неправильно происходит запись в файл подписи?
Исходник прилагаю.
http://rghost.ru/38347431

Цитата:

Однако когда мы хотим проверить созданную подпись с cryptcp, возникает ошибка — 80091001

0x80091001 Ошибка при обработке криптографического сообщения.

Цитата:

«Подлинность документа НЕ ПОДТВЕРЖДЕНА: не поддерживаемый формат электронного документа.»

ЭЦП не в pkcs7 формате

Код:


 //Подписываем хеш
            byte[] SignedHashValue = GostFormatter.CreateSignature(hashValue);
            FileStream fileStl = new FileStream(SignatureFilePath, FileMode.OpenOrCreate,
               FileAccess.ReadWrite, FileShare.ReadWrite);
            fileStl.Write(SignedHashValue, 0, SignedHashValue.Length);
            fileStl.Dispose();
            myhash.Clear();

Цитата:

CreateSignature
Возвращаемое значение
Подпись в виде байтового массива.

Отредактировано пользователем 29 мая 2012 г. 14:41:31(UTC)
 | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

29 мая 2012 г. 14:40:40(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Да, она самая. Отчего она возникнуть может?
Update: нет. Согласно коду, который я прикрепила, мы просто вычисляем хэш, подписываем его и записываем в файл.
Update2: а как создать подпись в pkcs из того, что мы получили?
Update3: нашла в примерах cms. Попробую и отпишусь, получилось или нет.

Отредактировано пользователем 29 мая 2012 г. 14:47:10(UTC)
 | Причина: Не указана


Вверх

Offline

Андрей Писарев

 


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

29 мая 2012 г. 14:46:07(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

kazaza написал:

Да, она самая. Отчего она возникнуть может?
Update: нет. Согласно коду, который я прикрепила, мы просто вычисляем хэш, подписываем его и записываем в файл.
Update2: а как создать подпись в pkcs из того, что мы получили?

КриптоПро Sharpei SDK :

chm: ПримерыПримеры работы с форматом PKCS/CMS
файлы: Crypto ProSharpei SDKExamplessimpleCMScs SingleSigner.cs и т.д.

Отредактировано пользователем 29 мая 2012 г. 14:49:58(UTC)
 | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

30 мая 2012 г. 17:55:20(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Ошибка:
http://rghost.ru/38371609/image.png
Код:
http://rghost.ru/38371634


Вверх

Offline

Георгий Садофьев

 


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

30 мая 2012 г. 21:24:03(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 113
Мужчина

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

Судя по коду Вы отсоединенную подпись создаете

Код:

SignedCms signedCms = new SignedCms(contentInfo, true);

Тогда, чтобы ее проверить Вам нужно так проверку делать:

Код:

static bool VerifyMsg(Byte[] msg, 
            byte[] encodedSignature)
        {
            // Создаем объект ContentInfo по сообщению.
            // Это необходимо для создания объекта SignedCms.
            ContentInfo contentInfo = new ContentInfo(msg);

            // Создаем SignedCms для декодирования и проверки.
            SignedCms signedCms = new SignedCms(contentInfo, true);

            // Декодируем подпись
            signedCms.Decode(encodedSignature);

            // Перехватываем криптографические исключения, для 
            // возврата о false значения при некорректности подписи.
            try
            {
                // Проверяем подпись. В данном примере не 
                // проверяется корректность сертификата подписавшего.
                // В рабочем коде, скорее всего потребуется построение
                // и проверка корректности цепочки сертификата.
                Console.Write("Проверка подписи сообщения ... ");
                signedCms.CheckSignature(true);
                Console.WriteLine("Успешно.");
            }
            catch (System.Security.Cryptography.CryptographicException e)
            {
                Console.WriteLine("Функция VerifyMsg возбудила исключение:  {0}",
                    e.Message);
                Console.WriteLine("Проверка PKCS #7 сообщения завершилась " +
                    "неудачно. Возможно сообщене, подпись, или " +
                    "соподписи модифицированы в процессе передачи или хранения. " +
                    "Подписавший или соподписавшие возможно не те " +
                    "за кого себя выдают. Достоверность и/или целостность " +
                    "сообщения не гарантируется. ");
                return false;
            }

            return true;
        }

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

31 мая 2012 г. 12:30:32(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

Спасибо, программа работает корректно, проверка проходит.
Однако при попытке проверить полученное сообщение с помощью cryptcp возникает та же ошибка: неправильная подпись.
Не может ли это быть связано со строками:

Код:

Encoding unicode = Encoding.Unicode;
byte[] msgBytes = unicode.GetBytes(msg);

Зачем вообще мы используем

Код:

Encoding unicode = Encoding.Unicode;

?

Отредактировано пользователем 31 мая 2012 г. 12:33:20(UTC)
 | Причина: Не указана


Вверх

Offline

Георгий Садофьев

 


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

31 мая 2012 г. 14:19:05(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 113
Мужчина

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

Покажите, как проверяете подпись cryptcp?
Какую подпись проверяете (отделённую или присоединённую)?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

kazaza

 


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

31 мая 2012 г. 14:26:24(UTC)

kazaza

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

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

Зарегистрирован: 24.05.2012(UTC)
Сообщений: 15

cryptcp -vsignf test2.txt -f test2.txt.sgn
test2.tx — исходный файл
test2.txt.sgn — файл подписи
Проверяем отделенную подпись.


Вверх

Offline

Георгий Садофьев

 


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

31 мая 2012 г. 14:42:54(UTC)

Георгий Садофьев

Статус: Сотрудник

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

Зарегистрирован: 14.10.2011(UTC)
Сообщений: 113
Мужчина

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

А в самой программе вы вычисляете подпись для файла test2.txt?
То есть считываете байты из этого файла?
Или, как в примере, подписываете какую-то строку, записываете подпись в файл test2.txt.sgn, а потом просто создаете файл test2.txt, в котором подписываемая строка содержится?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

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

Guest

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

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

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

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

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

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

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


Offline

zforall

 


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

2 апреля 2016 г. 8:16:47(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.


Вверх

Offline

neigel

 


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

2 апреля 2016 г. 9:57:44(UTC)

neigel

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

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

Зарегистрирован: 23.12.2014(UTC)
Сообщений: 91
Российская Федерация

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 2 раз в 2 постах

Автор: zforall Перейти к цитате

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.

Попробуйте файл ЭП назвать также как файл документа, но добавить расширение .sgn

cryptcp почему-то такие расширения делает, хотя общепринято .sig


Вверх

Offline

zforall

 


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

3 апреля 2016 г. 11:19:41(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Спасибо за совет, уже делал. Результат — описанная ошибка.
Думаю дело в файле подписи — он какой-то «с изюменкой», хотя на сайте гос услуг документ с подписью проходят проверку.


Вверх

Offline

Андрей Писарев

 


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

3 апреля 2016 г. 13:34:08(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: neigel Перейти к цитате

Автор: zforall Перейти к цитате

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.

Попробуйте файл ЭП назвать также как файл документа, но добавить расширение .sgn

cryptcp почему-то такие расширения делает, хотя общепринято .sig

Здравствуйте.

Еще есть варианты: p7s

SGN тоже принято, например, приказами ФНС.

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей Писарев

 


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

3 апреля 2016 г. 13:52:38(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: zforall Перейти к цитате

Здравствуйте. Бьюсь уже насколько дней над такой проблемой и никак не могу найти решение: Есть два файла — текстовой документ и эцп к нему(лежат здесь https://yadi.sk/d/diwP9Uavqg3vg). Как при помощи cryptcp проверить соответствие документа подписи? Пробовал разные варианты параметров vsignf и verify — ничего не получается. Единственное чего удалось добиться так это вот таких сообщений об ошибке: при запуске вот такой конструкции cryptcp -verify -nochain N:Admin111.dat — Некорректное преобразование BASE64. А при запуске cryptcp -vsignf -nochain -dir N:Admin N:Admin*.dat — Ошибка при обработке криптографического сообщения.

И второй вопрос сразу: файл подписи имеет расширение bin. Что это за формат? У меня не получилось такого файла при помощи параметра signf.

Здравствуйте.

В файле .bin — электронная подпись (CMS (pkcs#7)).

Цитата:

C:Program Files (x86)Crypto ProCSP>
csptest -sfsign -verify -in c:tmp1.dat -signature c:tmp1.dat.sig -detached
……………………………………………………………………………
Detached Signature was verified OK
Total: SYS: 0,031 sec USR: 0,063 sec UTC: 0,094 sec
[ErrorCode: 0x00000000]

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

Андрей Писарев

 


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

3 апреля 2016 г. 14:18:17(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

В файле: c:tmp1.dat.sgn — должна быть подпись (файл из указанного архива с расширением .bin)

Команда для проверки:

Цитата:

cryptcp.exe -vsignf -nochain -dir c:tmp c:tmp1.dat

Возникает ошибка:

Цитата:

CryptCP 3.42 (c) «КРИПТО-ПРО», 2002-2013.
Утилита командной строки для подписи и шифрования файлов.

Найдено сертификатов: 37
Папка ‘c:tmp’:
c:tmp1.dat… Проверка подписи…
Ошибка: Ошибка при обработке криптографического сообщения.

dsign.cpp:1846: 0x80091001
[ErrorCode: 0x80091001]

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

zforall

 


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

4 апреля 2016 г. 12:48:02(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Спасибо за подсказку, Андрей.

При помощи csptest удалось проверить подпись.

Однако непонятно осталось насчет cryptcp.

Запускаю cryptcp как указано в вашем последнем посте. Получаю такую-же ошибку. Что это? Неспособность cryptcp работать с такими файлами? Но что такого необычного в файле подписи? Подскажите, и я обращусь к нашему контрагенту который шлет эти файлы чтобы он изменил свой механизм подписи (если это конечно возможно) так чтобы мой cryptcp мог проверять ее.


Вверх

Offline

zforall

 


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

4 апреля 2016 г. 14:12:33(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

Я опишу свою задачу шире, может это поможет вам навести меня на верный путь.
Стоит задача организовать подпись документов отправляемых контрагенту, и верификация подписей документов получаемых от контрагента в 1С.
Было принято решение использовать для этих целей утилиту cryptocp. Запускать ее как внешнюю (по отношению к 1С программу) с набором параметров и анализировать возвращаемое значение.
Может существуют какие-либо другие способы наладить такую работу?

1С используется версии 8.1 — там нет своего встроенного криптопровайдера, как в 8.2, это принципиальное ограничение.


Вверх

Offline

Андрей Писарев

 


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

4 апреля 2016 г. 14:41:42(UTC)

Андрей *

Статус: Сотрудник

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

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,739
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1838 раз в 1421 постах

Автор: zforall Перейти к цитате

Я опишу свою задачу шире, может это поможет вам навести меня на верный путь.
Стоит задача организовать подпись документов отправляемых контрагенту, и верификация подписей документов получаемых от контрагента в 1С.
Было принято решение использовать для этих целей утилиту cryptocp. Запускать ее как внешнюю (по отношению к 1С программу) с набором параметров и анализировать возвращаемое значение.
Может существуют какие-либо другие способы наладить такую работу?

1С используется версии 8.1 — там нет своего встроенного криптопровайдера, как в 8.2, это принципиальное ограничение.

Вы можете уточнить — в каком ПОверсии делалась «проблемная» ЭП?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

zforall

 


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

4 апреля 2016 г. 14:47:07(UTC)

zforall

Статус: Новичок

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

Зарегистрирован: 02.04.2016(UTC)
Сообщений: 6
Российская Федерация
Откуда: Красноярск

У нас уже закончился рабочий день, поэтому сегодня узнать не смогу.
Я завтра с утра выясню эту информацию и напишу.


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

Guest

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

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

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

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

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

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

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

Неизвестный криптографический алгоритм (80091002)

  На компьютере не установлено приложение от криптопровайдера, указанного в сертификате, которым осуществляется попытка наложения ЭЦП либо которым подписан документ (при проверке ЭЦП) — см. свойство сертификата «Алгоритм подписи». Например, ПО от Крипто Про, если ключевая пара (открытый и закрытый) созданы по ГОСТ .

 Не удается найти указанный файл  (00000002)

  Возможные причины:

сертификат установлен без закрытого ключа.
рутокен (носитель с сертификатом) поврежден/неисправен .
применяется (вставлен в компьютер) не тот рутокен (носитель) — не от выбираемого сертификата. Например, в период смены сертифкатов, используется прежний еще действующий сертификат, а носитель вставляют от нового сертификата.

 Неизвестная ошибка. (C000000D)

Проблема в совместимости ПО «Крипто Про» и «Континент АП», способы решения см на форумах соответствующих ПО. См так же обсуждение  на форуме «Бюджет-СМАРТ» https://keysystems.ru/forum/index.php?showtopic=19187&p=157205 .

 Статус аннулирования сертификатов не выяснен. Не удалось загрузить действующий список отозванных сертификатов — состояние (статус) ЭЦП.

 Не удается построить цепочку сертификатов для доверенного корневого центра — сообщение при наложении ЭЦП.

  Возможные причины:

корневой сертификат УЦ не соответствует сертифкатам пользователей;
корневой сертификат УЦ отсутствует на сервисе ОД/сервере ключей;
корневой сертификат УЦ установлен неверно (местоположение не «локальный компьютер»/реестр, см. описание «Сервис проверки ЭЦП»).

  Корневой сертификат УЦ обычно обновляется ежегодно. На сервисе ОД должен быть установлен корневой сертификат УЦ, под которым выдавались ключи пользователям.

  Примеры ситуаций, приводящие к вышеприведенной ошибке: часть пользователей имеют ключи 2011г, часть 2012г, установлен корневой сертификат 2012г — пользователи с сертификатами 2011г не смогут подписать (либо их подпись станет неверна).

 Один из сертификатов в цепочке не является доверенным — причина в том, что корневой сертификат УЦ не установлен в список «Доверенные корневые центры сертификации» на компьютере, где проверяется ЭЦП.

 nastr_ecp_error_dover

 Документ не удовлетворяет условиям схем работы с ЭП  

 Нет подходящего варианта в автомате ЭЦП для данного документа. Если автомат не настраивался, то не следует включать настройку «Использовать Автомат ЭЦП».

Невозможно создать файл, так как он уже существует.

B7: CryptMsgUpdate

При установке сертификата на компьютер пользователя средствами Крипто ПРО был выбран неверный криптопровайдер в поле «Выберите CSP для поиска ключевых контейнеров».

Возникла ошибка при соединении с сервисом проверки ЭЦП: …

  Настройка «Меню Настройки: НАСТРОЙКИ Электронная подпись Сервис проверки ЭЦП» указана неверно (несуществующий адрес), либо SQL сервер не может подключиться к сервису ОД из указанной настройки (ограничения сетевых экранов, антивирусы и т.п.).

Отказано в доступе. 80090010: CryptMsgOpenToEncode HResult: -2146233296

  Истёк срок действия закрытого ключа. Для получения подробных сведений о сроках и причинах, следует протестировать контейнер закрытого ключа в ПО «Крипто Про» — обратить внимание на информацию вида:

Срок действия закрытого ключа       20 января 2019 г. 11:27:15

Использование ключа обмена          запрещено. Срок действия закрытого ключа истек…..

Сannot connect или Cannot resolve IP address или Error get version

  При применении Сервера ключей (устарело): данные сообщения означают, что не удалось обратиться к серверу ключей: неверно указана настройка сервера ключей, либо на сервере ключей не запущена программа проверки ЭЦП (CertServer.exe), либо не удалось соединиться с сервером ключей (антивирус, брандмауер и т.д.) и т.п. причины.

ИСТОЧНИК

TR Bir şifreleme iletisinde bir işlem gerçekleştirilirken bir hata oluştu.

HU Hiba történt egy titkosított üzeneten végzett művelet közben.

NB Det oppstod en feil under utføring av en operasjon på en kryptografisk melding.

PT Um erro foi encontrado ao executar a operação numa mensagem encriptada.

IT Errore durante un’operazione relativa su un messaggio crittografato.

FI Virhe suoritettaessa toimintoa salatussa viestissä.

ES Error al realizar una operación en un mensaje criptográfico

CS Při provádění operace s kryptografickou zprávou došlo k chybě.

DA Der opstod fejl under udførelse af en handling på en kryptografisk meddelelse.

KO 암호화된 메시지 작업을 하는 동안 오류가 발생했습니다.

PL Wystąpił błąd podczas przeprowadzania operacji na zaszyfrowanej wiadomości.

NL Er is een fout opgetreden bij de bewerking van een cryptografisch bericht.

EL Παρουσιάστηκε σφάλμα, κατά την εκτέλεση λειτουργίας σε κρυπτογραφημένο μήνυμα.

DE Während eines Vorgangs im Zusammenhang mit einer kryptografischen Meldung ist ein Fehler aufgetreten.

FR Une erreur s’est produite lors d’une opération sur un message chiffré.

JA 暗号メッセージの操作を実行中にエラーが発生しました。

ZH 在进行加密消息操作时出错。

SV Ett fel inträffade när en åtgärd utfördes på ett kryptografiskt meddelande.

Неизвестный криптографический алгоритм (80091002)

  На компьютере не установлено приложение от криптопровайдера, указанного в сертификате, которым осуществляется попытка наложения ЭЦП либо которым подписан документ (при проверке ЭЦП) — см. свойство сертификата «Алгоритм подписи». Например, ПО от Крипто Про, если ключевая пара (открытый и закрытый) созданы по ГОСТ .

 Не удается найти указанный файл  (00000002)

  Возможные причины:

сертификат установлен без закрытого ключа.
рутокен (носитель с сертификатом) поврежден/неисправен .
применяется (вставлен в компьютер) не тот рутокен (носитель) — не от выбираемого сертификата. Например, в период смены сертифкатов, используется прежний еще действующий сертификат, а носитель вставляют от нового сертификата.

 Неизвестная ошибка. (C000000D)

Проблема в совместимости ПО «Крипто Про» и «Континент АП», способы решения см на форумах соответствующих ПО. См так же обсуждение  на форуме «Бюджет-СМАРТ» https://keysystems.ru/forum/index.php?showtopic=19187&p=157205 .

 Статус аннулирования сертификатов не выяснен. Не удалось загрузить действующий список отозванных сертификатов — состояние (статус) ЭЦП.

 Не удается построить цепочку сертификатов для доверенного корневого центра — сообщение при наложении ЭЦП.

  Возможные причины:

корневой сертификат УЦ не соответствует сертифкатам пользователей;
корневой сертификат УЦ отсутствует на сервисе ОД/сервере ключей;
корневой сертификат УЦ установлен неверно (местоположение не «локальный компьютер»/реестр, см. описание «Сервис проверки ЭЦП»).

  Корневой сертификат УЦ обычно обновляется ежегодно. На сервисе ОД должен быть установлен корневой сертификат УЦ, под которым выдавались ключи пользователям.

  Примеры ситуаций, приводящие к вышеприведенной ошибке: часть пользователей имеют ключи 2011г, часть 2012г, установлен корневой сертификат 2012г — пользователи с сертификатами 2011г не смогут подписать (либо их подпись станет неверна).

 Один из сертификатов в цепочке не является доверенным — причина в том, что корневой сертификат УЦ не установлен в список «Доверенные корневые центры сертификации» на компьютере, где проверяется ЭЦП.

 nastr_ecp_error_dover

 Документ не удовлетворяет условиям схем работы с ЭП  

 Нет подходящего варианта в автомате ЭЦП для данного документа. Если автомат не настраивался, то не следует включать настройку «Использовать Автомат ЭЦП».

Невозможно создать файл, так как он уже существует.

B7: CryptMsgUpdate

При установке сертификата на компьютер пользователя средствами Крипто ПРО был выбран неверный криптопровайдер в поле «Выберите CSP для поиска ключевых контейнеров».

Возникла ошибка при соединении с сервисом проверки ЭЦП: …

  Настройка «Меню Настройки: НАСТРОЙКИ \ Электронная подпись \ Сервис проверки ЭЦП» указана неверно (несуществующий адрес), либо SQL сервер не может подключиться к сервису ОД из указанной настройки (ограничения сетевых экранов, антивирусы и т.п.).

Отказано в доступе. 80090010: CryptMsgOpenToEncode HResult: -2146233296

  Истёк срок действия закрытого ключа. Для получения подробных сведений о сроках и причинах, следует протестировать контейнер закрытого ключа в ПО «Крипто Про» — обратить внимание на информацию вида:

Срок действия закрытого ключа       20 января 2019 г. 11:27:15

Использование ключа обмена          запрещено. Срок действия закрытого ключа истек…..

Сannot connect или Cannot resolve IP address или Error get version

  При применении Сервера ключей (устарело): данные сообщения означают, что не удалось обратиться к серверу ключей: неверно указана настройка сервера ключей, либо на сервере ключей не запущена программа проверки ЭЦП (CertServer.exe), либо не удалось соединиться с сервером ключей (антивирус, брандмауер и т.д.) и т.п. причины.

ИСТОЧНИК

Like this post? Please share to your friends:
  • Ошибка при обработке запроса системой банка err 100
  • Ошибка при обработке запроса произошла ошибка спбгу
  • Ошибка при обработке запроса авито
  • Ошибка при обработке запроса не найден соболь
  • Ошибка при обработке данных vsemayki