我正在尝试使用SafeNet eToken5110签名某些文件。我设法从中获取证书,但发现我无法导出私钥。我开发了一些代码以使用通用证书加密/解密文件,现在我的问题是使用eToken进行相同的操作。但是我找不到任何信息该怎么做。 有小费吗?是否有任何API? (以及文档/示例)
答案 0 :(得分:0)
好的,我已经找到了如何使用硬件令牌对smtx进行签名,并且希望有人会发现它有用。需要使用Signature类和SunPKCS11提供程序
public static void verify(byte[] sig, byte[] original) throws Exception {
Keystore keystore = initKeystore();
PublicKey key = keystore.getCertificate(getCertAlias()).getPublicKey();
Signature s = Signature.getInstance("SHA256withRSA");
s.initVerify(key);
s.update(original);
if ( ! s.verify(sig)) {
System.out.println("Signature check FAILED");
return;
}
System.out.println("Signature check PASSED");
}
要验证签名的数据,您可以使用以下代码
{{1}}