关于SignTTest的更多提示

时间:2012-09-05 14:49:12

标签: xades4j

请问您能否向我提出有关要更改的提供商设置的更多提示?

我可以在PKCS11KeyStoreKeyingDataProvider.java中看到这个:

    public class PKCS11KeyStoreKeyingDataProvider extends KeyStoreKeyingDataProvider
{
    /**
     *
     * @param nativeLibraryPath the path for the native library of the specific PKCS#11 provider
     * @param providerName this string is concatenated with the prefix SunPKCS11- to produce this provider instance's name
     * @param certificateSelector the selector of signing certificate
     * @param keyStorePasswordProvider the provider of the keystore loading password (may be {@code null})
     * @param entryPasswordProvider the provider of entry passwords (may be {@code null})
     * @param returnFullChain indicates of the full certificate chain should be returned, if available
     * @throws KeyStoreException
     */
    public PKCS11KeyStoreKeyingDataProvider(
            final String nativeLibraryPath,
            final String providerName,
            SigningCertSelector certificateSelector,
            KeyStorePasswordProvider keyStorePasswordProvider,
            KeyEntryPasswordProvider entryPasswordProvider,
            boolean returnFullChain) throws KeyStoreException
    {

并在我的SignerTTest.java中:

PKCS11KeyStoreKeyingDataProvider ptccKeyingDataProv = new PKCS11KeyStoreKeyingDataProvider
                ("D:\\pteidpkcs11.dll", 
                "pteidpkcs11",
                new FirstCertificateSelector(), null, null, false);

但是我不明白,通常我下载.DLL,所以这里的库pteidpkcs11.dll位于D :(所以在java中我把“\\”:“D:”\\“pteidpkcs11.dll “)

我把.dll的名字放在这里pteidpkcs11作为参数。

“new FirstCertificateSelector()”之后是选择密钥库列表的第一个证书,不是吗?。

第一个null是密钥库提供商的密码,不是吗?

第二个空是用于证书的密码,不是吗?

returnFullChain究竟是什么角色?

我想了解有关如何配置提供程序的信息,因为我在搜索过程中目前还不清楚。

谢谢,

威廉。

1 个答案:

答案 0 :(得分:1)

  新的FirstCertificateSelector()是选择密钥库列表的第一个证书,不是吗?

是。您可以传递SigningCertSelector接口的任何其他实现。

  

第一个null是密钥库提供商的密码,不是吗?   第二个空是用于证书的密码,不是吗?

是。它是null,因为特定的PKCS#11提供程序处理密钥存储条目的保护(它是带有PIN的智能卡)。

  

returnFullChain究竟是什么角色?

密钥库中的条目可能包含密钥以及具有完整证书链的关联证书。此参数控制getSigningCertificateChain方法是返回完整链还是仅返回叶证书。

适当的配置和DLL将取决于您正在使用的PKCS11提供程序。在那个测试中,我使用的是葡萄牙公民卡和智能卡读卡器。请注意,PKCS11KeyStoreKeyingDataProvider只是基于sun的PKCS11提供程序的java密钥库的适配器。