【问题标题】:JSCEP-Wrong 3rd argument type. Found: 'org.spongycastle.pkcs.PKCS10CertificationRequest', required: 'org.bouncycastle.pkcs.PKCS10CertificationRequest'JSCEP-错误的第三个参数类型。找到:'org.spongycastle.pkcs.PKCS10CertificationRequest',需要:'org.bouncycastle.pkcs.PKCS10CertificationRequest'
【发布时间】:2019-06-11 12:50:43
【问题描述】:

我正在为 android 实现 Jscep。最初,我尝试了 Jscep for java,它运行良好。现在在 Android 中,我使用 SpongyCastle 而不是 BouncyCastle。现在我的问题是客户端类的注册方法正在使用 BouncyCastle。因此,当我尝试传递参数时,spongycastle 和 bouncycastle 不合适(显然)。

以下是海绵堡的扩展。

        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 罐子吗?”。 或者“我怎样才能传递这个 spongycastle 变量?”

【问题讨论】:

  • 不要使用海绵城堡,使用充气城堡。只要您的最低 SDK 是 Android 4.0,它们应该可以完美运行。

标签: java bouncycastle spongycastle scep jscep


【解决方案1】:

我的问题是“我应该切换回 BouncyCastle 罐子吗?”。或者“我怎样才能传递这个 spongycastle 变量?”

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

据我所知,Jscep 与(正版)BouncyCastle 而非 SpongyCastle 一起使用。

如果我没看错this old issue,Android 3.0 之前的精简版 BouncyCastle 缺少 Jscep 需要的功能。

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

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

    SpongyCastle issue comment 表示让 Android 使用真正的 BouncyCastle 功能的诀窍是:

    ...在调用Security.addProvider(new BouncyCastleProvider())之前调用Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME)删除内置BC。

  • 理论上,应该可以移植 Jscep 以使用 SpongyCastle,但没有明确的迹象表明有人成功这样做了。 (鉴于之前的情况,对这样一个端口的需求只会减少。)

另外,我找不到在 Android 上运行的 Jscep 的独立替代品。但是,我确实找到了这个:

这可能有用。

【讨论】:

猜你喜欢
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 2019-03-29
  • 2021-10-24
  • 1970-01-01
相关资源
最近更新 更多