0

可以删除前缀“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
4

1 回答 1

0

正如@EJP 指出的那样,您不能更改提供者名称。当您创建提供者实例时,Java 会将字符串SunPKCS11-前缀添加到您提供的名称之前。您可以在此处查看有关它的 Java 文档。

创建提供程序实例后,建议使用Provider.getName()获取名称。

于 2017-11-15T15:15:45.750 回答