Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline nesdmitrijj  
#1 Оставлено : 13 октября 2020 г. 14:19:36(UTC)
nesdmitrijj

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

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

Сказал(а) «Спасибо»: 6 раз
Добрый день!
При вызове GetLastError после безуспешного вызова какой либо функции (например, CryptSignMessage) код ошибки всегда равен -1 (FFFFFFFF). С чем это может быть связано? Это вцелом при работе с CAPILite так?
Пишу на Delphi. Отладка под Ubuntu 18.04.
Offline Андрей *  
#2 Оставлено : 14 октября 2020 г. 0:38:30(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,747
Мужчина
Российская Федерация

Сказал «Спасибо»: 575 раз
Поблагодарили: 2306 раз в 1807 постах
Здравствуйте.

Автор: nesdmitrijj Перейти к цитате
Добрый день!
При вызове GetLastError после безуспешного вызова какой либо функции (например, CryptSignMessage) код ошибки всегда равен -1 (FFFFFFFF). С чем это может быть связано? Это вцелом при работе с CAPILite так?
Пишу на Delphi. Отладка под Ubuntu 18.04.



GetLastError нужно вызывать из библиотеки CSP, а не системную.

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#3 Оставлено : 14 октября 2020 г. 0:41:11(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,747
Мужчина
Российская Федерация

Сказал «Спасибо»: 575 раз
Поблагодарили: 2306 раз в 1807 постах
GetLastError в libcapi20.so
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
nesdmitrijj оставлено 14.10.2020(UTC)
Offline nesdmitrijj  
#4 Оставлено : 14 октября 2020 г. 8:23:15(UTC)
nesdmitrijj

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

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

Сказал(а) «Спасибо»: 6 раз
Добрый день!
Автор: Андрей * Перейти к цитате
GetLastError в libcapi20.so

Спасибо за ответ!
Где можно почитать как она объявлена? В libcapi20.so она не найдена (GetProcAddress возвращает nil). Или она не объявлена как "external (global)".

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

Offline nesdmitrijj  
#5 Оставлено : 14 октября 2020 г. 8:29:12(UTC)
nesdmitrijj

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

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

Сказал(а) «Спасибо»: 6 раз
Посмотрев что происходит внутри процедуры GetProcAddress обнаружил что dladdr возвращает информацию (dl_info), в которой указано что функция объявлена в библиотеке librdrsup.so. Поэтому реализовал вызов GetProcAddress именно для librdrsup.so.

Объявил описание функции у себя так:
function(): DWORD; stdcall;

Коды ошибок получаются.

Вопрос напоследок:
возможно ли как-то получить текстовое описание ошибок?

Отредактировано пользователем 14 октября 2020 г. 8:35:44(UTC)  | Причина: Не указана

Offline Максим Коллегин  
#6 Оставлено : 14 октября 2020 г. 11:49:46(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
FormatMessage рядом в той же библиотеке.
Знания в базе знаний, поддержка в центре поддержки
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
nesdmitrijj оставлено 14.10.2020(UTC)
Offline nesdmitrijj  
#7 Оставлено : 14 октября 2020 г. 14:39:26(UTC)
nesdmitrijj

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

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

Сказал(а) «Спасибо»: 6 раз
Автор: Максим Коллегин Перейти к цитате
FormatMessage рядом в той же библиотеке.

Спасибо! А текст сообщения всегда только на английском?
Offline Максим Коллегин  
#8 Оставлено : 14 октября 2020 г. 22:28:02(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,405
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 720 раз в 624 постах
Язык - четвёртый аргумент функции. https://docs.microsoft.c...nf-winbase-formatmessage
Поддерживается LANG_RUSSIAN и LANG_ENGLISH.
Или установите русскую локаль.
Знания в базе знаний, поддержка в центре поддержки
Offline nesdmitrijj  
#9 Оставлено : 15 октября 2020 г. 8:13:48(UTC)
nesdmitrijj

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

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

Сказал(а) «Спасибо»: 6 раз
Автор: Максим Коллегин Перейти к цитате
Язык - четвёртый аргумент функции. https://docs.microsoft.c...nf-winbase-formatmessage
Поддерживается LANG_RUSSIAN и LANG_ENGLISH.
Или установите русскую локаль.


Спасибо за ответ. Локаль русская. 4й аргумент игнорируется в "FormatMessage", поэтому и спросил.
Я провел некоторый анализ вот результат:

FormatMessage/0 = "Cannot find the certificate and private key for decryption."
FormatMessage/LANG_ENGLISH = "Cannot find the certificate and private key for decryption."
FormatMessage/LANG_RUSSIAN = "Cannot find the certificate and private key for decryption."

FormatMessageA/0 = "Не удается найти сертификат и закрытый ключ для расшифровки."
FormatMessageA/LANG_ENGLISH = "Cannot find the certificate and private key for decryption."
FormatMessageA/LANG_RUSSIAN = "Не удается найти сертификат и закрытый ключ для расшифровки."

FormatMessageW/0 = "Не удается найти сертификат и закрытый ключ для расшифровки."
FormatMessageW/LANG_ENGLISH = "Cannot find the certificate and private key for decryption."
FormatMessageW/LANG_RUSSIAN = "Не удается найти сертификат и закрытый ключ для расшифровки."

В итоге выявил что следует использовать FormatMessageA или FormatMessageW.
По крайней мере в версии: v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux

Отредактировано пользователем 15 октября 2020 г. 8:30:26(UTC)  | Причина: Не указана

Offline Андрей Русев  
#10 Оставлено : 30 октября 2020 г. 10:02:39(UTC)
Русев Андрей

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

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

Сказал(а) «Спасибо»: 42 раз
Поблагодарили: 612 раз в 423 постах
Использование FormatMessage (вместо FormatMessageA/FormatMessageW) является ошибкой в любом случае. Сам символ оставлен в экспорте исключительно для обратной совместимости со старыми программами.
Официальная техподдержка. Официальная база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.