- Для EBICS существует два механизма подписи, A005 и A006. Спецификация EBICS > 2017-03-29-EBICS V 3.0-FinalVersion.pdf
- Для EBICS A005 мы использовали алгоритм подписи SHA256withRSA. Он работает.
- SafeNet eToken 5110 используется для подписи файлов данных. Он основан на стандарте PKCS11. Его драйвер/программное обеспечение называется «Клиент аутентификации SafeNet».
- SafeNet eToken 5110 работает очень медленно с алгоритмом SHA256withRSA в коде Signer.update( данные);. Нет проблем, если мы изменим алгоритм на SHA512withRSA. Нет проблем с другой версией eToken «Базовый токен 3SKey (eToken PRO)». Знаете ли вы, сталкивались ли другие люди с такой же проблемой? или только мы? Каково решение?
- Поскольку в данный момент мы не можем найти решение, мы рассматриваем EBICS A006, надеясь, что он будет быстрее. Однако не нашел способа разработать для него Java-код. Не знаю, какое имя алгоритма использовать. Я попробовал IAIK, но ему не удалось подключиться к собственной библиотеке libeTPkcs11.so или eTPKCS11.dll. BouncyCastle не работает с PKCS11. У вас есть какие-нибудь советы? Спасибо.
String pkcs11config;
pkcs11config = ....
ByteArrayInputStream confStream = new ByteArrayInputStream(pkcs11config.getBytes());
SunPKCS11 provider = new SunPKCS11(confStream);
Security.addProvider(provider);
char[] password = "....".toCharArray();
String alias = "...";
PrivateKey privateKey = (PrivateKey) keystore.getKey(alias, password);
Signature signer = Signature.getInstance("SHA256withRSA", keystore.getProvider());
signer.initSign(privateKey);
String data = "Hello world......";
signer.update(data.getBytes()); // SLOW HERE! THE BIGGER THE DATA, THE SLOWER IT IS.
byte[] signedData = signer.sign();
Код проверен с помощью IAIK:
String pwd = System.getProperty("user.dir");
String dllFile = pwd + "/libeTPkcs11.so";
Module m = Module.getInstance(dllFile);
=> error : Exception in thread "main" java.lang.UnsatisfiedLinkError: no pkcs11wrapper in java.library.path
Подробнее здесь: https://stackoverflow.com/questions/482 ... gnature-me
Мобильная версия