gpt4 book ai didi

java - JSCEP-第三个参数类型错误。发现 : 'org.spongycaSTLe.pkcs.PKCS10CertificationRequest' , 需要: 'org.bouncycaSTLe.pkcs.PKCS10CertificationRequest'

转载 作者:行者123 更新时间:2023-12-02 04:37:25 27 4
gpt4 key购买 nike

我正在为 Android 实现 Jscep。最初,我尝试了 Jscep for java,效果很好。现在在 Android 中,我使用 SpongyCaSTLe 而不是 BouncyCaSTLe。现在我的问题是 Client 类的注册方法正在使用 BouncyCaSTLe。因此,当我尝试传递参数时,spongycaSTLe 和 bouncycaSTLe 不合适(显然)。

以下扩展了 spongycaSTLe。

        PKCS10CertificationRequestBuilder crb = generateCSR(keyPair,entity);

我将上述变量“crb”作为第三个参数传递给注册方法,如下所示。

try {
response = client.enrol(cert, keyPair.getPrivate(), crb.build(getContentSigner(keyPair)), "MDM-ROOT-CA");
}

我收到以下错误。 “第三个参数类型错误。发现:'org.spongycaSTLe.pkcs.PKCS10CertificationRequest',必需:'org.bouncycaSTLe.pkcs.PKCS10CertificationRequest”。

我尝试扩展客户端,但它已被宣布为最终版本。

我的问题是“我应该切换回 BouncyCaSTLe jar 吗?”。或者“我如何传递这个 spongycaSTLe 变量?”

最佳答案

My question is "Should I switch back to BouncyCastle jars?". Or else "How can I pass this spongycastle variable?"

可能两者都不适用于所有 Android 平台

据我所知,Jscep 与(正版)BouncyCaSTLe 配合使用,而不是与 SpongyCaSTLe 配合使用。

如果我读 this old issue正确的是,3.0 之前的 Android 中的 BouncyCaSTLe 精简版缺少 Jscep 所需的功能。

  • 对于 3.0 之前的 Android,它们似乎不是一个实用的解决方案。您不能只是告诉 Java 将这两种类型视为等效。它会破坏 JVM/Davlik 运行时类型系统。

  • 根据this StackOverflow Q&A ,在 3.0 中,Android 更改了其精简版 BouncyCaSTLe 上的 Java 包名称。这意味着您应该能够将正版 BouncyCaSTLe JAR 与 3.0+ Android 应用程序捆绑在一起。这应该足以让 Jscep 在该平台上工作。

    这个SpongyCastle issue comment据说让 Android 使用真正的 BouncyCaSTLe 功能的技巧是:

    ... call Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME) to remove the built-in BC before calling Security.addProvider(new BouncyCastleProvider()).

  • 理论上,应该可以将 Jscep 移植到 SpongyCaSTLe,但没有明确的迹象表明任何人都成功做到了这一点。 (鉴于上述情况,对此类端口的需求只会减少。)

此外,我找不到可在 Android 上运行的 Jscep 的独立替代品。然而,我确实发现了这个:

这可能有用。

关于java - JSCEP-第三个参数类型错误。发现 : 'org.spongycaSTLe.pkcs.PKCS10CertificationRequest' , 需要: 'org.bouncycaSTLe.pkcs.PKCS10CertificationRequest',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56544185/

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