Украина. Цифровая подпись. Библиотека 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 "Готово!!!";
      
    }
 
Последнее редактирование:
Файл на сервере точно есть по указанному пути? Какие разрешения установлены для агента, который выполняет этот код на сервере?
Известна строка на которой код падает?
 
Может такое быть, что при начале работы в endUser.SetSettingsFilePathEx() или endUser.Initialize() файл с настройками лочится, а в endUser.Finalize() "отпускается"? И если в первый раз что-то пошло не так, то при повторном запуске файл отстаётся залоченным предыдущим запуском и недоступен программе.
 
как вариант - не оформлять код в агенте, написать, скомпилить, выложить в jvm/lib/ext
обозначить синглтон для контроля ресурсов
еще вариант - декомпилить либу и попытаться написать "нормально" (т.е. файл чтобы не лочился)
 
Подскажите, пожалуйста, при 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.
Не разобрался где и как прописывать файл настроек. В реестре все прописано, как в мануале.
 
Всем привет!
Прошу помощи в пользовании библиотеки 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 КБ · Просмотры: 876
Последнее редактирование модератором:
Мы в соцсетях:

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