可以删除前缀" SunPKCS11 - "? 因为我总是得到一个名称为" SunPKCS11-SmartCard"而不是" SmartCard"
这是我的代码:
String configName = "pkcs11.cfg";
Provider p = getInstalledProvider(providerName);
if (p == null)
{
p = new sun.security.pkcs11.SunPKCS11(configName);
}
Security.addProvider(p);
return KeyStore.Builder.newInstance("PKCS11", p, loadProtection);
和我的配置文件:
name = SmartCard
description = configuration file
library =C:\Program Files\Gemalto\Classic Client\BIN\gclib.dll
答案 0 :(得分:0)
正如@EJP指出的那样,您无法更改提供者名称。在创建提供程序实例时,Java会将字符串SunPKCS11-
前缀添加到您提供的名称中。您可以查看有关它的Java文档here。
创建提供者实例后,建议使用Provider.getName()获取名称。