logo Обзор КриптоПро NGate для защищённого доступа к корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline kartaris  
#1 Оставлено : 24 сентября 2019 г. 13:22:14(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Добрый день.
Не удается импортировать контейнер из файла на Sailfish OS.

Проблема в следующем:
При попытке вызова CryptAcquireContext возникает ошибка.
Для выяснения причины попробовал запустить сэмпл CryptAcquireContext, поставляемый с вашим SDK. Также выдается ошибка.
Вероятно, не хватает какой-то настройки либо я что-то настроил некорректно.
Проблема возникает как на физическом устройстве, так и на сборочной.

Код:

[SB2 sdk-build SailfishOS-3.1.0.12-armv7hl] root@SailfishSDK CSP # /opt/cprocsp/src/samples/CSP/CryptAcquireContext/CryptAcquireContext
Mode: NORMAL

Error number     : 0x80090016
Error description: A general error occurred running CryptAcquireContext

Отредактировано пользователем 24 сентября 2019 г. 14:42:05(UTC)  | Причина: Не указана

Offline Андрей Русев  
#2 Оставлено : 24 сентября 2019 г. 17:12:39(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
Здравствуйте.
У вас не создан тестовый контейнер. Рецепт по сборке и запуску примеров - в /opt/cprocsp/src/readme.unix

Отредактировано пользователем 24 сентября 2019 г. 17:13:31(UTC)  | Причина: Не указана

Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Андрей Русев за этот пост.
kartaris оставлено 26.09.2019(UTC)
Offline kartaris  
#3 Оставлено : 26 сентября 2019 г. 9:22:08(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Исходная проблема решилась, благодаря помощи из сообщения выше. Однако сейчас наблюдается другая - выполнение CryptImportKey выдает ошибку 0x80090005.
Наша библиотека кроссплатформенная - на iOS импортирование того же самого файла происходит без проблем.
Помогите, пожалуйста, разобраться.
Offline kartaris  
#4 Оставлено : 14 октября 2019 г. 17:19:32(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Автор: kartaris Перейти к цитате
Исходная проблема решилась, благодаря помощи из сообщения выше. Однако сейчас наблюдается другая - выполнение CryptImportKey выдает ошибку 0x80090005.
Наша библиотека кроссплатформенная - на iOS импортирование того же самого файла происходит без проблем.
Помогите, пожалуйста, разобраться.


Здравстуйте! Так и не удалось решить проблему, описанную в посте. Помогите, пожалуйста, с отладкой.

Offline Андрей Русев  
#5 Оставлено : 24 октября 2019 г. 10:53:55(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
Здравствуйте.
Это ошибка NTE_BAD_DATA. Скорее всего, вы импортируете что-то не то или на неправильном ключе / неверных параметрах. Какой тип блоба в импорте?
Официальная техподдержка. Официальная база знаний.
Offline kartaris  
#6 Оставлено : 11 декабря 2019 г. 16:17:13(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Здравствуйте!
У нас используется CALG_PRO12_EXPORT.
Мне просто не совсем понятно почему при тех же входных данных и том же коде на двух разных платформах разное поведение?
Может быть такое, что при настройке КриптоПро на устройстве я что-то упустил? Достаточно ли следующих установленных пакетов?
- lsb-cprocsp-base
- lsb-cprocsp-rdr
- lsb-cprocsp-kc1
- lsb-cprocsp-capilite
- lsb-cprocsp-devel
- lsb-cprocsp-ca-certs

А еще заметил, что cprocsp отправляет в консоль следующее сообщение:
cpcsp: read_keyset code==RDR_ERR_FILE_NOT_FOUND fail

Отредактировано пользователем 11 декабря 2019 г. 16:35:00(UTC)  | Причина: Не указана

Offline Андрей Русев  
#7 Оставлено : 11 декабря 2019 г. 16:43:51(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
Здравствуйте.
От платформы ничего не зависит, а вот от того, какой алгоритм ключа в контейнере и тип провайдера при открытии - зависят параметры алгоритмов (шифрования ключей, например). Набор пакетов стандартный и достаточный. Чтобы всё было точно, как на другой платформе, где всё работает, принесите с неё на sailfish контейнер. Например, на hdimage контейнер - это папка с файлами, типа
Код:
[someuser@test-x64-rhel7 ~]$ ls /var/opt/cprocsp/keys/someuser/key_cont.000/
header.key  masks2.key  masks.key  name.key  primary2.key  primary.key
Официальная техподдержка. Официальная база знаний.
Offline kartaris  
#8 Оставлено : 11 декабря 2019 г. 16:57:11(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей Русев Перейти к цитате
Здравствуйте.
От платформы ничего не зависит, а вот от того, какой алгоритм ключа в контейнере и тип провайдера при открытии - зависят параметры алгоритмов (шифрования ключей, например). Набор пакетов стандартный и достаточный. Чтобы всё было точно, как на другой платформе, где всё работает, принесите с неё на sailfish контейнер. Например, на hdimage контейнер - это папка с файлами, типа
Код:
[someuser@test-x64-rhel7 ~]$ ls /var/opt/cprocsp/keys/someuser/key_cont.000/
header.key  masks2.key  masks.key  name.key  primary2.key  primary.key


На iOS вроде так не получится.
Но я в коде ничего не менял, в том числе и параметры алгоритмов, они идентичные. Я даже в дебагере значения переменных сравнивал.

Отредактировано пользователем 11 декабря 2019 г. 18:01:27(UTC)  | Причина: Не указана

Offline kartaris  
#9 Оставлено : 11 декабря 2019 г. 17:10:30(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Автор: kartaris Перейти к цитате

А еще заметил, что cprocsp отправляет в консоль следующее сообщение:
cpcsp: read_keyset code==RDR_ERR_FILE_NOT_FOUND fail


А вот эта ошибка также из-за некорректного алгоритма появляется?
Offline kartaris  
#10 Оставлено : 11 декабря 2019 г. 17:37:09(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Dec 11 17:11:01 Sailfish test_signfile[20382]: 17:11:01.412527 support_an_fopen:87 p:20382 t:0x0xeeae9e39 support_an_fopen("/var/opt/cprocsp/users/global.ini", "rb") = 0x(nil) fail Permission denied(13)
Dec 11 17:11:01 Sailfish test_signfile[20382]: cpcsp: read_keyset code==RDR_ERR_FILE_NOT_FOUND fail
Dec 11 17:11:01 Sailfish test_signfile[20382]: cpcsp: CPCImportKey ImportKey fail ret obj

Нашел более полный лог
Offline Андрей Русев  
#11 Оставлено : 12 декабря 2019 г. 11:02:07(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
RDR_ERR_FILE_NOT_FOUND возникает, когда провайдер не может найти контейнер на одном из считывателей, зарегистрированных в системе. Без парного сообщения "OpenContainer OpenContainer key_carrier_open fail" это, скорее всего, не является ошибкой.
Официальная техподдержка. Официальная база знаний.
Offline kartaris  
#12 Оставлено : 12 декабря 2019 г. 11:49:05(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей Русев Перейти к цитате
Здравствуйте.
От платформы ничего не зависит, а вот от того, какой алгоритм ключа в контейнере и тип провайдера при открытии - зависят параметры алгоритмов (шифрования ключей, например). Набор пакетов стандартный и достаточный. Чтобы всё было точно, как на другой платформе, где всё работает, принесите с неё на sailfish контейнер. Например, на hdimage контейнер - это папка с файлами, типа
Код:
[someuser@test-x64-rhel7 ~]$ ls /var/opt/cprocsp/keys/someuser/key_cont.000/
header.key  masks2.key  masks.key  name.key  primary2.key  primary.key


Я же правильно понимаю, что мне достаточно руками это скопировать на устройство в похожую папку и посмотреть, что в списке появился новый контейнер?
Если так, то в списке все появилось

Отредактировано пользователем 12 декабря 2019 г. 11:58:24(UTC)  | Причина: Не указана

Offline kartaris  
#13 Оставлено : 13 декабря 2019 г. 10:40:30(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Видимо, из зашифрованного файла контейнер импортировать не получается.. Хотя я действительно не понимаю почему, ведь наш код представляет возможность работать только с теми контейнерами, которые подготовлены ровно тем способом, который используется в коде и никаким другим. Видимо, придется пойти другим путем(
Подскажите, пожалуйста, а есть возможность средствами вашего апи импортировать контейнер, лежащий в папке вида xxxxx.000?
Не нашел такого в документации
Offline Андрей Русев  
#14 Оставлено : 13 декабря 2019 г. 17:45:23(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
Правильно.

Какой "зашифрованный файл"?

В devel-пакете есть примеры EncryptKey и DecryptKey.
Официальная техподдержка. Официальная база знаний.
Offline kartaris  
#15 Оставлено : 13 декабря 2019 г. 17:49:50(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей Русев Перейти к цитате
Правильно.

Какой "зашифрованный файл"?

В devel-пакете есть примеры EncryptKey и DecryptKey.


https://cpdn.cryptopro.r..._example_DecryptKey.html

В доке есть вот такой пример. Этот алгоритм используется у нас, но с некоторыми изменениями. Соль не используется.

Offline Андрей Русев  
#16 Оставлено : 16 декабря 2019 г. 21:21:55(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
Пример годный. Ключи должны быть экспортируемые и с алгоритмом ГОСТ-2012. Работоспособность от платформы не зависит. Внося модификации ("без соли"), помните, что осложняете или сделаете невозможной успешную проверку приложения на корректность встраивания СКЗИ.
Официальная техподдержка. Официальная база знаний.
Offline kartaris  
#17 Оставлено : 18 декабря 2019 г. 13:55:52(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
После обновления до 5.0, начали сыпаться ошибки при сборке. Приложение с ними собирается.
Вот лог:
https://pastebin.com/LnwLKTw5
Offline Андрей Русев  
#18 Оставлено : 23 декабря 2019 г. 11:05:36(UTC)
Андрей Русев

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 622

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 113 раз в 93 постах
Наши примеры из devel-пакета с такой же диагностикой собираются? Можете полные команды/журналы дать?
Официальная техподдержка. Официальная база знаний.
Offline kartaris  
#19 Оставлено : 25 декабря 2019 г. 17:57:45(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Да, примеры из devel-пакета собираются с такой же диагностикой
crypto_devel_make.zip (81kb) загружен 2 раз(а).
Offline kartaris  
#20 Оставлено : 25 декабря 2019 г. 18:05:04(UTC)
kartaris

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

Группы: Участники
Зарегистрирован: 18.07.2019(UTC)
Сообщений: 23
Российская Федерация
Откуда: Kazan

Сказал(а) «Спасибо»: 4 раз
Я еще также обнаружил, что при запуске приложения непосредственно с устройства, то есть открыв его из списка приложений, библиотека КриптоПро работает некорректно(падает ошибка некорректной инициализации библиотеки). При запуске же через IDE, то есть, нажав кнопку "Запустить" в IDE, тот же сценарий работает верно, файл в итоге подписывается. Устройство в первом и втором случае используется то же самое. По совету из чатика по Sailfish, распечатал переменные окружения и обнаружил, что во втором случае(корректное поведение) среди переменных окружения есть "NLSPATH=/opt/cprocsp/share/locale/%L/LC_MESSAGES/%N:/opt/cprocsp/share/locale/%L/LC_MESSAGES/%N"
В случае ошибки, эта переменная не проставлена.
Не уверен, конечно, что это именно к вам вопрос, но вдруг вы знаете почему так происходит?

Отредактировано пользователем 25 декабря 2019 г. 18:06:25(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.