Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 6
|
Добрый день. Я пытаюсь программно открыть хранилище сертификатов ROOT на MacOS и Linux. При вызове функции CertOpenStore я получаю ошибку: Segmentation fault: 11. Код вызова приведен ниже: Код:
#include <stdio.h>
#include <stdlib.h>
#include <CSP_WinDef.h>
#include <CSP_WinCrypt.h>
#include <WinCryptEx.h>
# define ROOT_STORE L"ROOT"
int main(int argc, char **argv) {
HCERTSTORE hCertStore = NULL;
hCertStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
0,
0,
CERT_STORE_OPEN_EXISTING_FLAG,
ROOT_STORE);
if (hCertStore) {
printf("Store was open.\n");
} else {
perror("Error open store");
}
return 0;
}
Так же я пробовал вместо CertOpenStore использовать CertOpenSystemStoreW, но при этом я получил ошибку: Error open store: No such file or directoryКод вызова привожу ниже: Код:
#include <stdio.h>
#include <stdlib.h>
#include <CSP_WinDef.h>
#include <CSP_WinCrypt.h>
#include <WinCryptEx.h>
# define ROOT_STORE L"ROOT"
int main(int argc, char **argv) {
HCERTSTORE hCertStore = NULL;
hCertStore = CertOpenSystemStoreW(
0,
ROOT_STORE);
if (hCertStore) {
printf("Store was open.\n");
} else {
perror("Error open store");
}
return 0;
}
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,271
Сказал(а) «Спасибо»: 22 раз Поблагодарили: 446 раз в 325 постах
|
В состав дистрибутива входит пакет разработчика (cprocsp-devel), в него также входят примеры использования КриптоПро CSP (см. /opt/cprocsp/src/doxygen). Если проблемы будут продолжаться, присылайте дамп или лучше стек вызова при крэше из gdb. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 6
|
Пример из документации тоже падают с аналогичной ошибкой. При крэше gdb выдает следующий стек: Код:
[New Thread 0x1c03 of process 2306]
Error calling thread_get_state for GP registers for thread 0x1c03
warning: Mach error at "i386-darwin-nat.c:123" in function "void i386_darwin_fetch_inferior_registers(struct target_ops *, struct regcache *, int)": (os/kern) invalid argument (0x4)
[New Thread 0x150b of process 2306]
warning: unhandled dyld version (15)
Error open store: No such file or directory
[Inferior 1 (process 2306) exited normally]
Дамп под MacOS к сожалению снять не получилось. P. S. Я попробовал на MAcOS посмотреть список серфитикатов через certmgr: Код:./certmgr -list -store uroot
на что получил на выходе следующее: Код:
Certmgr 1.0 (c) "CryptoPro", 2007-2010.
program for managing certificates, CRLs and stores
Failed to open store
The system cannot find the file specified.
[ErrorCode: 0x00000002]
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 11.07.2016(UTC) Сообщений: 10 Откуда: Москва
|
Попробуйте свой пример с крэшем запустить через gdb --args ./test, затем выполнить run и после крэша вызвать команду where, и отправить, что содержится в стэке. Также было бы полезно знать версию CSP, ОС и её версию, версию компиляторов, использовавшихся при сборке примера. Отредактировано пользователем 1 июня 2017 г. 13:57:08(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 6
|
Все на Mac OS заработало, проблема была в том, что при компиляции я не указал . Но теперь у меня возникла проблема, с компиляцией данного кода под Ubuntu 14.05 LTS server, с помощью команды: Код:
CSP_INCLUDE=/opt/cprocsp/include
CSP_LIB=/opt/cprocsp/lib/amd64
SIZEOF_VOID_P=8
gcc -DUNIX -DHAVE_LIMITS_H -DHAVE_STDIN_H -I$(CSP_INCLUDE) -I$(CSP_INCLUDE)/cpcsp -I$(CSP_INCLUDE)/asn1c/rtsrc -I$(CSP_INCLUDE)/asn1data -DSIZEOF_VOID_P=$(SIZEOF_VOID_P) -g -L$(CSP_LIB) -lssp -lcapi10 -lcapi20 -lrdrsup -lpthread -o cpcsp $(INPUT_FILE)
у меня выпадает ошибка: Код:
/tmp/cceWXcfM.o: In function `main':
/media/sf_gisee-libsignature/lib/cpcsp.c:46: undefined reference to `CertOpenSystemStoreA'
collect2: error: ld returned 1 exit status
make: *** [all] Ошибка 1
Подскажите, пожалуйста, в чем может быть проблема? P.S. На Mac OS с данной командой все компилирует и отрабатывает корректно. Библиотека lsb-cprocsp-devel_4.0.0-4_all.deb установлена. Отредактировано пользователем 1 июня 2017 г. 14:59:45(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 6
|
Проблема компиляции решалась, изменением последовательности параметров. Поставил библиотеки после параметра -o. И все заработало. Код:gcc -DUNIX -DHAVE_LIMITS_H -DHAVE_STDIN_H -I$(CSP_INCLUDE) -I$(CSP_INCLUDE)/cpcsp -I$(CSP_INCLUDE)/asn1c/rtsrc -I$(CSP_INCLUDE)/asn1data -DSIZEOF_VOID_P=$(SIZEOF_VOID_P) -g -o cpcsp $(INPUT_FILE) -L$(CSP_LIB) -lssp -lcapi10 -lcapi20 -lrdrsup -lpthread
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close