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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline dorogo  
#1 Оставлено : 17 октября 2018 г. 11:17:40(UTC)
dorogo

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

Группы: Участники
Зарегистрирован: 23.08.2018(UTC)
Сообщений: 29

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте.

Возникла необходимость создания приложения создания/проверки подписи по гост 2012 (криптопро CSP 4.0) на Си.
Для этого скачал криптопро ЭЦП SDK 2.0.

Подозреваю, что сейчас будет довольно тупой вопрос, но, все же, мне необходима помощь (Си - не мой профиль).

Я не нашел информации, какие файлы/каталоги с header-файлами и библиотеками и каких версий необходимо подключить дополнительно при подключении cades.h и cades.lib?
Проект создаю в Netbeans, ориентированно на win7 64/32bit и выше
Интересует, какие файлы надо подключить для устранения ошибок "error: unknown type name '__reserved'" и "error: unknown type name '__in'"?

В файле cades.h (последней версии) нашел следующие строки:
Код:

#if defined _WIN32
#   include <windows.h>
#   include <wincrypt.h>
#   include <prsht.h>
#else
#   include "CSP_WinCrypt.h"
#   include "CSP_WinDef.h"
#   include "CSP_WinError.h"
#ifndef __in  
#   define __in 
#endif
#ifndef __in_opt
#   define __in_opt
#endif
#ifndef __out
#   define __out
#endif
#ifndef __out_opt
#   define __out_opt
#endif
#ifndef __reserved
#   define __reserved
#endif
#endif	/* _WIN32 */


Дальше в этом же "cades.h" файле встречаются использования __reserved и __in
Правильно ли я понимаю, что в таком случае в проекте для win 32bit данный файл использовать нельзя?
В таком случае может есть другие файлы, доступные для подключения, в которых, например, __reserved и __in определены?

В интернете и на форуме найдена была инструкция только по подключению непосредственно cades.h и cades.lib без указания списка необходимых дополнительных компонентов.
Offline Максим Коллегин  
#2 Оставлено : 17 октября 2018 г. 14:40:01(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
_WIN32 определён при компилиции для любых версий Windows. И ветка #else - для *nix.
Знания в базе знаний, поддержка в техподдержке
Offline dorogo  
#3 Оставлено : 17 октября 2018 г. 15:04:52(UTC)
dorogo

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

Группы: Участники
Зарегистрирован: 23.08.2018(UTC)
Сообщений: 29

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
тогда получается, что для win отрабатывает только
Код:

#if defined _WIN32
#   include <windows.h>
#   include <wincrypt.h>
#   include <prsht.h>


хотя должен отрабатываться и этот кусок

Код:

#ifndef __in  
#   define __in 
#endif
#ifndef __in_opt
#   define __in_opt
#endif
#ifndef __out
#   define __out
#endif
#ifndef __out_opt
#   define __out_opt
#endif
#ifndef __reserved
#   define __reserved
#endif


как я понимаю, данный блок не отрабатывается, из-за того, что следующая строчка
Код:
#endif	/* _WIN32 */
стоит в конце блока, а не после
Код:
#   include "CSP_WinError.h"
и получается, что сыпятся ошибки
"error: unknown type name '__in'"
"error: unknown type name '__reserved'"
"error: unknown type name '__in_opt'" и т.д.

Или я совсем неверно мыслю и для устранения этих ошибок надо подключить какой-то другой файл?
Offline Максим Коллегин  
#4 Оставлено : 17 октября 2018 г. 15:13:22(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
По настройке Netbeans не помогу к сожалению.
Знания в базе знаний, поддержка в техподдержке
Offline dorogo  
#5 Оставлено : 17 октября 2018 г. 15:14:09(UTC)
dorogo

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

Группы: Участники
Зарегистрирован: 23.08.2018(UTC)
Сообщений: 29

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
То есть указанного в руководстве подключения папок include, lib из SDK и "cades.h", "cades.lib" должно быть достаточно?

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

Offline Daniil562144534534  
#6 Оставлено : 19 августа 2019 г. 16:07:29(UTC)
Daniil562144534534

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

Группы: Участники
Зарегистрирован: 19.08.2019(UTC)
Сообщений: 5

Сказал(а) «Спасибо»: 1 раз
Есть решение этой проблемы? Компилятор от Mingw. Какой-то макрос надо подцепить?
Offline Daniil562144534534  
#7 Оставлено : 19 августа 2019 г. 16:18:44(UTC)
Daniil562144534534

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

Группы: Участники
Зарегистрирован: 19.08.2019(UTC)
Сообщений: 5

Сказал(а) «Спасибо»: 1 раз
А еще такая ошибка, я так понимаю всё из одного места растет
error: 'CadesMsgVerifySignature' cannot be used as a function
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.