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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Art-spb  
#1 Оставлено : 28 июня 2012 г. 21:00:27(UTC)
Art-spb

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

Группы: Участники
Зарегистрирован: 28.06.2012(UTC)
Сообщений: 4
Мужчина
Откуда: Санкт-Петербург

Добрый день!

Мне необходимо использовать возможности КриптоПро CSP 3.6 R3 из JVM. Для этого я собрал пример XMLSignForVerify как dll-библиотеку, заменив заголовок функции _tmain на заголовок JNI-метода (с соответствующими изменениями кода). Библиотека успешно загружается в систему (System.load), метод также успешно выполняется (в выходном файле появляется подписанная xml). Однако в процессе выгрузки dll из памяти возникает EXCEPTION_ACCESS_VIOLATION. Версия msxml5.dll: 5.20.1092.0. Пробовал как на JDK6 (26 и 32), так и на JDK7. Подскажите, пожалуйста, почему может возникать такая ошибка и как с ней бороться?

Код:
Register to memory mapping:

EAX=
[error occurred during error reporting (printing register info), id 0xc0000005]

Stack: [0x17870000,0x178c0000],  sp=0x178bf918,  free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [msxml5.dll+0x2ca33]  DllCanUnloadNow+0x463d
C  [msxml5.dll+0x2d673]  DllCanUnloadNow+0x527d
C  [msxml5.dll+0x51a82]  DllCanUnloadNow+0x2968c
C  [msxml5.dll+0x6e9a0]  DllCanUnloadNow+0x465aa
C  [msxml5.dll+0xccc0d]  DllCanUnloadNow+0xa4817
C  [msxml5.dll+0xf5053]  DllCanUnloadNow+0xccc5d
C  [onewindow8549836316354918324.dll+0x146bf]  ATL::CComPtrBase<IXMLDigitalSignatureEx>::~CComPtrBase<IXMLDigitalSignatureEx>+0x3f
C  [onewindow8549836316354918324.dll+0x1465b]  ATL::CComPtr<IXMLDigitalSignatureEx>::~CComPtr<IXMLDigitalSignatureEx>+0x2b
C  [onewindow8549836316354918324.dll+0x1ee18]  `dynamic atexit destructor for 'xmldsig''+0x28
C  [onewindow8549836316354918324.dll+0x19a44]  _CRT_INIT+0x254
C  [onewindow8549836316354918324.dll+0x19d20]  __DllMainCRTStartup+0x130
C  [onewindow8549836316354918324.dll+0x19bd1]  _DllMainCRTStartup+0x21
C  [ntdll.dll+0x58968]  wcsncmp+0x4c
C  [ntdll.dll+0x5e094]  RtlNumberGenericTableElements+0x84
C  [ntdll.dll+0x5e12f]  RtlExitUserProcess+0x74
C  [kernel32.dll+0x5bbf7]  ExitProcess+0x15
C  [msvcr71.dll+0x8d04]  exit+0x0
C  [msvcr71.dll+0x8d11]  exit+0xd
V  [jvm.dll+0x11da2d]
V  [jvm.dll+0x11cd4e]
V  [jvm.dll+0x11d070]
V  [jvm.dll+0x11d472]
V  [jvm.dll+0x1411ac]
C  [msvcr71.dll+0x9565]  endthreadex+0xa0
C  [kernel32.dll+0x4ed6c]  BaseThreadInitThunk+0x12
C  [ntdll.dll+0x6377b]  RtlInitializeExceptionChain+0xef
C  [ntdll.dll+0x6374e]  RtlInitializeExceptionChain+0xc2

VM_Operation (0x0058fb50): Exit, mode: safepoint, requested by thread 0x005bb000
Offline Максим Коллегин  
#2 Оставлено : 28 июня 2012 г. 23:09:03(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 37 раз
Поблагодарили: 719 раз в 623 постах
Судя по всему, собрали с несовместимым рантаймом. Попробуйте со статическим.
Знания в базе знаний, поддержка в техподдержке
Offline Art-spb  
#3 Оставлено : 29 июня 2012 г. 14:04:05(UTC)
Art-spb

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

Группы: Участники
Зарегистрирован: 28.06.2012(UTC)
Сообщений: 4
Мужчина
Откуда: Санкт-Петербург

Попробовал собрать с /MTd - не помогло. Стектрейс увеличился на две строчки:
Код:
C  [onewindow7791891002821819100.dll+0x343e4]  doexit+0x104
C  [onewindow7791891002821819100.dll+0x340e0]  _cexit+0x10
Offline Art-spb  
#4 Оставлено : 2 июля 2012 г. 15:16:04(UTC)
Art-spb

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

Группы: Участники
Зарегистрирован: 28.06.2012(UTC)
Сообщений: 4
Мужчина
Откуда: Санкт-Петербург

Разобрался. При копировании примера Microsoft были потеряны вызовы двух методов.

Метод:
Код:
void cleanObjects()
{
	xmldoc.Release();
	spXMLSignDOM.Release();
	xmldsig.Release();
}


Вызов:
Код:
SignXML(CERTIFICATES, L"", sigFile);

cleanObjects();
CoUninitialize();

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

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