就数字pdf而言,什么是bouncycastle提供商



我在这里阅读而且http://www.bouncycastle.org/wiki/display/JA1/Provider+安装以及itext的数字签名白皮书。

以下是itext的示例代码片段:

BouncyCastleProvider provider = new BouncyCastleProvider();
Security.addProvider(provider);
KeyStore ks = KeyStore.getInstance("pkcs12", provider.getName());
ks.load(new FileInputStream(path), pass);

问题:什么是安全提供商,它的用途是什么?Itext代码使用bouncycastle提供程序。它基本上是用来散列pdf的代码,然后用私钥加密散列吗?上面写着Security.addProvider(provider).的"安全"库的作用是什么

谢谢。

安全提供程序为运行时提供算法服务。这些都是算法的实现,例如Bouncy Castle添加了许多扩展CipherSpi的算法实现(Spi表示服务提供商实现)。Oracle也提供CipherSpi类,但仅限于某些算法。这些服务还用于实现例如KeyStoreSpi for "pkcs12",以使其更具体地针对您的问题。

除了提供对额外算法的支持外,提供商还可以用于扩展API的功能,提供对硬件令牌(智能卡、HSM)、特定密钥存储、更快实现等的支持。然而,使用Bouncy主要是因为它扩展了可用算法的数量。通常,在请求算法时,您不会指定提供程序名称,而是由系统为您选择。但有时该算法为Oracle提供商(例如"SunJCE")中的算法提供(或提供)一些特定优势。在示例代码中显式选择提供者可能是有意义的。

Security类是寄存器。系统可以使用它来查看和列出提供程序中存在的服务,使用它们的名称(字符串)和别名。想知道这是怎么回事,请在这里试试我的答案。

最新更新