当前位置: 首页 > 知识库问答 >
问题:

带弹力城堡的图书馆罐子

濮献
2023-03-14

我正在处理一个包含多个子项目的项目,它们都使用我创建的用于哈希、签名和加密消息的实用程序库。这个库基本上是bouncy Castle的包装器。

当我运行与库相关联的测试时,一切都通过了,一切都好了。当我将实用程序库打包到jar中时,会发生两件事:

  1. 正在使用库的子项目找不到与bouncy Castle关联的JAR。
  2. 即使将bouncy castle JAR添加到正在使用库的子项目中,项目也找不到bouncy castle安全提供程序“BC”

提前道谢。

共有1个答案

昝枫
2023-03-14

提供程序需要签名。这可能是你在搞砸验证例程,尽管这很难从远处分辨出来。如果您正在重新打包BC提供程序,那么您肯定会遇到麻烦,而且使用不同的类加载器也很可能会破坏提供程序签名,是的。

另一个问题可能是在构造函数中注册提供程序。如果在提供程序之前没有调用构造函数,那么您可能会遇到问题。通常,您应该尽早注册提供程序,即在应用程序使用的第一个类的静态代码块中注册提供程序。请注意,多次注册一个提供程序是没有风险的--它只会发现一个已经以相同的名字注册了,而什么也不做。

 类似资料:
  • 我制作了自己的包装类,我希望那些使用我编译的JAR文件的人都能使用这些包装类。 这个jar文件还包含一个lib文件夹,它还有bouncy castle库,因为包装器的目的是让调用者更容易。现在我的库(名为mylibrary.jar)已经构建完成。 现在,当我将这个jar作为库包含在另一个项目中时,我看到以下错误 线程“AWT-EventQueue-0”java.lang.NoClassDefoun

  • Ladar Levison编写了ecies_encrypt和ecies_decrypt C函数。这些功能与ECIES弹力城堡兼容吗?如果不是,有没有人知道要修复什么或者ecies的另一个C实现?

  • 我看到API中有CMSSignedDataGenerator,但我不知道它是否适用于我的情况,如果适用,如何.... 我也不明白为什么,如果创建的证书是PKCS12证书,那么为什么他们使用PKCS9变量来构建它。

  • 使用PEM证书,如 我的问题是,AFAIK,pemparser中没有密码的位置。 有人能给我一个如何将代码迁移到PEMParser版本的例子吗?

  • 我有一个自签名证书(不是流行的X.509证书)。证书和ECDSA公钥/私钥对由java程序使用bouncy Castle生成。我需要使用OpenSSL用C程序验证这个证书。然而,java程序可以正确地验证ECDSA签名,但openssl验证失败。如果我使用相同的私钥用openssl对消息重新签名,那么使用openssl的签名验证将通过。 下面是与密钥生成相关的java代码片段(生成密钥对后,我实际

  • 在FIPS模式下,PKCS#12格式在加密文件时必须使用兼容的加密和哈希算法。 当我阅读BC-FIPS文档时,它说在批准模式下,它们不支持PKCS#12,因此这意味着我们无法在BC-FIPS批准模式下读取PKCS12密钥库;我们使用BC-FIPS作为加密提供者,还使用PKCS12和JKS格式存储密钥和证书。 BC-FIPS声称-“PKCS12密钥存储支持以下变体: PKCS12-3DES-3DES