1

我正在尝试制作一个简单的 java 应用程序,它使用安全令牌来签署文件(任何扩展名)。

我需要从令牌中读取所有信息并用它对文件进行签名,以便稍后加载签名文件、获取原始文件和所有其他信息。

这是我目前拥有的示例代码,我看到的主要问题是不同的令牌可以有不同的 .dll,我需要这样的抽象。

    String pkcs11config = "C:/Documents and Settings/nsaul/Escritorio/Lib/ep2pk11.cfg";

    Provider p = new sun.security.pkcs11.SunPKCS11(pkcs11config);

    //Use the provider
    char [] pin = {'#', '#', '#', '#', '#', '#', '#', '#'};
    KeyStore ks = KeyStore.getInstance("PKCS11",p);
    ks.load(null, pin); 

我在 C# 中找到了一个指南,似乎可以满足我的需要,但 Java 是该项目的要求。

https://docs.microsoft.com/en-us/dotnet/standard/security/how-to-access-hardware-encryption-devices

4

1 回答 1

0

没有可用的抽象,你必须自己写一个。如果你的要求是支持多个潜在的提供者(我假设这就是你的意思,different tokens can have different dll因为提供者之间存在细微的差异,你应该创建一个负责每个提供者的类一个,并且将为所有操作实现一个定义良好的接口。
在您的其余代码中,您将只使用该接口,您可以使用依赖注入来根据当前安装使用适当的具体提供程序处理程序

于 2013-01-23T20:58:12.520 回答