gpt4 book ai didi

java - 我的 Cipher 实现的 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 09:04:46 26 4
gpt4 key购买 nike

我正在尝试实现 Cipher , 使用 protected constructor of that class :

protected Cipher(CipherSpi cipherSpi, Provider provider, String transformation)

但它失败并返回 NullPointerException,该构造函数中没有任何消息。我已经提供了所有参数,甚至是我自己的 CipherSpi,那么为什么它会抛出这个异常?

最佳答案

问题是在同一个构造函数中执行的安全检查。它没有抛出更精确的异常,而是抛出运行时异常:

if (!JceSecurityManager.INSTANCE.isCallerTrusted()) {
throw new NullPointerException();
}

代码取自 GPL'ed source code of OpenJDK 7从第 250 行开始。它对于任何 Oracle 版本的 Java SE 都应该是相同的。

这是安全提供程序在使用前需要签名的要求的一部分。要签署提供商,您需要创建代码签名 key 对和从 Oracle 获得的证书。要了解如何获得,请查看 technote: "How to Implement a Provider in the Java Cryptography Architecture" .

请注意,许多其他类可以被扩展,但它们仍然不能成为 Security 中受信任提供者列表中的 Provider 的一部分> 类(即调用 Signature.getInstance(String algorithm) 永远不会返回您的实现。

请注意,此限制可能不会出现在其他(非官方)Java 实现中。

关于java - 我的 Cipher 实现的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com