• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Украина. Цифровая подпись. Библиотека EUSignJava.jar

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Всем привет!
Кто-то сталкивался с библиотекой цифровой подписи EUSignJava.jar?
Поделитесь опытом.
Подпись оформлена в виде серверного агента. Метод VerifySign();
Суть проблемы - последовательный запуск метода VerifySign(); через раз вызывает ошибку совершенно не информативную ошибку Error at reading settings, хотя путь к найстроечному файлу указан в коде. Где библиотека ищет файл - не ясно.

Самое интересное - этот же агент на клиенте отрабатывает всегда и без ошибки.
Структура каталогов с сертификатами и настройками на сервере и клиенте одинаковая.

На сервере Win2008 R2, 64 Bit. Domino Server 9.0.1 FP3

Проблема явно на сервере, но локализовать ее не получается.

От продавца толковой консультации получить не удается


Код:
    public static String VerifySign( String user, String pass ){
        try {
          
            EndUser endUser = new EndUser();
            endUser.SetUIMode(false);
            endUser.SetLanguage(EndUser.EU_EN_LANG);
           
            // указывам путь к настроечному файлу
            endUser.SetSettingsFilePathEx("d:\\E_Sign\\certs\\", EndUser.EU_REG_KEY_ROOT_PATH_HKLM, null);
          
            endUser.Initialize();
            endUser.SetUIMode(false);
      
            System.out.println( endUser.IsInitialized() );
          
            EndUserFileStoreSettings settings = endUser.GetFileStoreSettings();
            System.out.println( settings.GetPath() );          
          
            EndUserSignInfo signInfo = endUser.VerifyFileWithExternalSign( "d:\\Doc.docx", "d:\\Doc.docx.p7s" );      
            EndUserOwnerInfo info = signInfo.GetOwnerInfo();
          
            System.out.println(  info.GetSubjFullName() );
            System.out.println(  info.GetSubjOrg()  );
            System.out.println(  info.GetSubjOrgUnit() );
            System.out.println(  info.GetSubjTitle()  );
          
            System.out.println(  "Готово!"  );
            endUser.Finalize();  
          
            endUser = null;
            signInfo = null;
                      
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return e.getMessage();
        }

        return "Готово!!!";
      
    }
 
Последнее редактирование:
B

Bob84

Файл на сервере точно есть по указанному пути? Какие разрешения установлены для агента, который выполняет этот код на сервере?
Известна строка на которой код падает?
 

garrick

Lotus Team
26.10.2009
1 339
150
BIT
101
Может такое быть, что при начале работы в endUser.SetSettingsFilePathEx() или endUser.Initialize() файл с настройками лочится, а в endUser.Finalize() "отпускается"? И если в первый раз что-то пошло не так, то при повторном запуске файл отстаётся залоченным предыдущим запуском и недоступен программе.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 924
608
BIT
129
как вариант - не оформлять код в агенте, написать, скомпилить, выложить в jvm/lib/ext
обозначить синглтон для контроля ресурсов
еще вариант - декомпилить либу и попытаться написать "нормально" (т.е. файл чтобы не лочился)
 
T

Tarik_ua_79

Подскажите, пожалуйста, при endUser.Initialize(); выкидывает ошибку:

java.lang.Exception: Error at loading interaction library
at com.iit.certificateAuthority.endUser.libraries.signJava.EndUser.CheckLibraryLoad(EndUser.java:121)
at com.iit.certificateAuthority.endUser.libraries.signJava.EndUser.Initialize(EndUser.java:207)
at JavaAgent.test1(JavaAgent.java:84)
at JavaAgent.NotesMain(JavaAgent.java:26)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)

Не пинайте сильно, в Java не силен :(, где я что забыл добавить или прописать?

Библиотека EUSignJava.jar лежит в папке Notes\jvm\lib\ext. Dll-ки запихнул в нее в \EUSignJava.jar\Libraries\Win\
При старте распаковывает их в папку AppData\Local\Temp\EUSign-x86-1.3.57
Но вылетает на функции EndUser.CheckLibraryLoad, переменная library==null.
Не разобрался где и как прописывать файл настроек. В реестре все прописано, как в мануале.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 924
608
BIT
129
A

AdeptOfYourFaith

Всем привет!
Прошу помощи в пользовании библиотеки EUSignJava.jar . Библиотеку качал с источник .
Столкнулся с проблемой отсутствия документации, гугул не помагает найти документацию в которой сказано какая функция\класс за что отчечает. Если имеете документацию поделитесь)
На данном форуме наткнулся на готовое решение тема на форуме которым хочу воспользоваться(по кнопке подписать файл), но при использование
Java:
endUser.SetSettingsFilePathEx("d:\\E_Sign\\certs\\", EndUser.EU_REG_KEY_ROOT_PATH_HKLM, null);
Lotus утверждает что такого метода в класе нету. Также хотелось бы узнать с документации про метод .SetSettingsFilePathEx()
Я подключал библиотеку через :
1.Создаю java агента
2. В его Archive импортирую EUSignJava.jar
3. В JavaAgent.java импортирую как
Java:
import com.iit.certificateAuthority.endUser.libraries.signJava.*;

Также положил EUSignJava.jar в jvm/lib/ext
 

Вложения

  • Новый точечный рисунок.jpg
    Новый точечный рисунок.jpg
    16 КБ · Просмотры: 803
Последнее редактирование модератором:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!