信息:
- 有对EBICS,A005和A006两栋标志性的机制。 EBICS说明> 2017年3月29日- EBICS V 3.0无-FinalVersion.pdf
- 对于EBICS A005,我们一直在使用SHA256withRSA签名算法。 这是工作。
- SafeNet公司的eToken 5110用于签名的数据文件。 它是基于PKCS11标准。 它的驱动程序/软件被称为“SafeNet的身份验证客户端”。
问题和问题:
- SafeNet的电子令牌5110是与在代码SHA 256 withRSA算法非常慢
signer.update(data);
。 没有问题,如果我们改变算法SHA 512 withRSA。 没有问题的eToken其他版本“3SKey基本令牌(的eToken PRO)”。 你知道,如果其他人遇到了同样的问题? 或者只是刚刚我们吗? 解决办法是什么? - 因为我们无法找到目前的解决方案,我们正在寻找EBICS A006希望它会更快。 然而,还没有找到一种方法来开发Java代码它。 不知道使用的算法名称。 我曾尝试IAIK但它无法与本地库libeTPkcs11.so或eTPKCS11.dll连接。 BouncyCastle的不PKCS11工作。 你有什么建议? 谢谢。
代码SunPKCS11( 的作品,但在缓慢.update(...))
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