带有充气城堡的库 JAR
Library JAR with Bouncy Castle
我正在处理一个包含多个子项目的项目,它们都使用我创建的用于散列、签名和加密消息的实用程序库。这个库基本上是充气城堡的包装器。
当我 运行 与库相关的测试时,一切都通过了,没问题。当我将实用程序库打包到 jar 中时,发生了两件事:
- 正在使用该库的子项目找不到与充气城堡关联的 jar。
- 即使我将 bouncy castle jars 添加到正在使用该库的子项目,该项目也找不到 bouncy castle 安全提供程序 "BC"
这里是在intellij中导出的实用程序jar的配置:
错误:
安全提供程序初始化:
为什么我不能导出包含安全提供程序的库?这是生成的 class 加载程序的副作用吗?
提前致谢。
提供商需要签名。可能是您弄乱了验证例程,尽管从远处很难分辨。如果您正在重新打包 BC 提供程序,您肯定会遇到麻烦,并且使用不同的 class 加载程序也可能会混淆提供程序签名,是的。
另一个问题可能是您在构造函数中注册了提供程序。如果在提供程序之前未调用构造函数,那么您可能 运行 会遇到问题。通常,您应该尽早注册提供者,即在用于您的应用程序的第一个 class 的静态代码块中。请注意,多次注册提供商没有风险 - 它只会发现一个已经以相同名称注册并且什么都不做。
我正在处理一个包含多个子项目的项目,它们都使用我创建的用于散列、签名和加密消息的实用程序库。这个库基本上是充气城堡的包装器。
当我 运行 与库相关的测试时,一切都通过了,没问题。当我将实用程序库打包到 jar 中时,发生了两件事:
- 正在使用该库的子项目找不到与充气城堡关联的 jar。
- 即使我将 bouncy castle jars 添加到正在使用该库的子项目,该项目也找不到 bouncy castle 安全提供程序 "BC"
这里是在intellij中导出的实用程序jar的配置:
错误:
安全提供程序初始化:
为什么我不能导出包含安全提供程序的库?这是生成的 class 加载程序的副作用吗?
提前致谢。
提供商需要签名。可能是您弄乱了验证例程,尽管从远处很难分辨。如果您正在重新打包 BC 提供程序,您肯定会遇到麻烦,并且使用不同的 class 加载程序也可能会混淆提供程序签名,是的。
另一个问题可能是您在构造函数中注册了提供程序。如果在提供程序之前未调用构造函数,那么您可能 运行 会遇到问题。通常,您应该尽早注册提供者,即在用于您的应用程序的第一个 class 的静态代码块中。请注意,多次注册提供商没有风险 - 它只会发现一个已经以相同名称注册并且什么都不做。