Java的:PKCS11 SafeNet公司的eToken 5110:慢; 以及如何为EBICS

2019-10-29 04:56发布

信息:

  • 有对EBICS,A005A006两栋标志性的机制。 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.soeTPKCS11.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
文章来源: Java : PKCS11 SafeNet eToken 5110 : Slow; and How to code for EBICS signature mechanism A006?
标签: java pkcs#11