BouncyCastle 安装问题

2024-04-26

我正在尝试将 BouncyCastle 添加为 Windows XP Pro 上的安全提供程序,以便我可以根据说明使用它向 Android 应用程序添加一些证书here http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html。不幸的是我无法让它添加提供者。

I've:

  1. 将提供程序下载到C:\Program Files\Java\jre6\lib\ext\.
  2. Added C:\Program Files\Java\jre6\lib\ext\bcprov-jdk16-146.jar to %CLASSPATH%.
  3. Added security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider到 java.security(7 是顺序中的下一个 int)。

当我跑步时:

keytool -import -v -trustcacerts -alias 0 -file mycert.crt -keystore mystore.bks -storetype BKS -providerName org.bouncycastle.jce.provider.BouncyCastleProvider -storepass mypassword 

我收到以下错误消息:

keytool error: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider

我也尝试过动态添加它:

import java.security.Provider;
import java.security.Security;
import java.util.Enumeration;

import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class BouncyCastleMain {

    public static void main(String[] args) throws Exception {
        Security.addProvider(new BouncyCastleProvider()); // add it
        try { // list them out
            Provider p[] = Security.getProviders();
            for (int i = 0; i < p.length; i++) {
                System.out.println(p[i]);
                for (Enumeration<?> e = p[i].keys(); e.hasMoreElements();)
                    System.out.println("\t" + e.nextElement());
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

起初我在编译java类时遇到访问错误,但根据建议将其更改为警告here http://lkamal.blogspot.com/2008/09/eclipse-access-restriction-on-library.html。现在,当我运行代码时,它会在提供程序列表中显示 BouncyCastle,但在程序完成后它不会保留下来。

我确信它一定是可行的,但我对如何让这个家伙安装足够长的时间以使用它运行 keytool 感到困惑。是否可以通过 java API 运行 keytool,或者是否有一些我错过的步骤可以让提供程序继续存在?

Thanks!


The -providerName选项需要一个提供商名称(在本例中为“BC”),不是班级名称。另一种选择,-providerClass,确实需要类名,并且当提供者未在java.security file.

当您“以编程方式”注册提供程序时,这只是暂时的。您的程序每次运行时都必须重新注册其提供者。如果您的目标是让 BouncyCastle 可供使用,您将无法使用此方法keytool.

由于您已经安装了提供程序(通过将存档放入lib/ext并将其列出在java.security), 使用-providerName BC选项可能是最简单的解决方案。或者,您可以使用-providerClass org.bouncycastle.jce.provider.BouncyCastleProvider option.

顺便说一下,你不应该使用CLASSPATH环境变量。图书馆位于lib/ext已经在类路径上了。

如果在更正选项后,您仍然得到NoSuchProviderException (using -providerName) or ClassNotFoundException (using -providerClass),验证您使用的是正确的副本keytool。即执行时指定完整路径keytool,而不是依赖于你的PATH多变的。确保该路径引用了安装 BouncyCastle 的 JRE。系统拥有多个 JRE 和 JDK 的情况并不罕见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BouncyCastle 安装问题 的相关文章

随机推荐

  • 未找到“GuzzleHttp\Client”类

    我同时使用Guzzle http guzzle readthedocs org en latest 并首次推出 Codeigniter 3 0 我也承认我是第一次使用 php 命名空间 我正在尝试根据文档中提供的示例使用 Guzzle 发出
  • GenJar 更换或更新?

    GenJar 是一个专门的 Ant 任务 它基于类依赖关系而不是简单地基于目录的内容构建 jar 文件 http genjar sourceforge net http genjar sourceforge net 确实有用 但是项目好像不
  • Django 无法导入设置

    我正在尝试在我的项目中使用 django admin dbshel l 任何其他 cmd 都会给出相同的结果 我得到了 You must either define the environment variable DJANGO SETTI
  • Powershell脚本运行缓慢

    我正在编写一个脚本来检查大约 15 个远程服务器上的版本 但该脚本的执行时间比我预期的要长得多 listServers compName1 compName2 compName3 compName15 Out File C temp jav
  • 如何轻松区分/比较 TFS 中的 2 个搁置集?

    有没有一种方法可以比较 TFS 中的 2 个搁置 而不必在单独的工作区中取消搁置并比较文件 我一直在寻找相同的东西 即比较两个书架的内容 而不需要取消其中之一的书架 最终为该功能编写一个 Visual Studio 扩展 该扩展适用于 Vi
  • 使用 WinForms 绘制宽线时出现 OutOfMemoryException

    这个太疯狂了 我只画了几千条线OnPaint处理程序 没有问题 当pen Width lt 1 或者当屏幕上没有很多行时 好的 我画了一张比例尺地图 线宽随地图缩放 当我缩放一些地图时 我得到OutOfMemoryException WHY
  • 在第三方网站的 iframe 中访问时,未为子域设置 Django csrf cookie

    到目前为止 我的应用程序运行良好 所有操作都是通过访问其公共 IP 来完成的 现在 它被添加到主站点 名称为 app mainsite com 这样就可以访问了 我可以登录等等一切 但我的应用程序有点特别 它的某个功能允许用户在任何第三方网
  • Android中如何获取经度和纬度

    我想找到我当前位置的经度和纬度 但我一直得不到NULL double lat loc getLatitude Cause the result is null so can t know longitude and latitude dou
  • 按给定的时间增量查找数据帧列中的时间戳

    我有一个包含时间戳列的数据框 我的目标是找到每行的第一个时间戳 该时间戳大于该行的时间戳给定的偏移量 例如 0 01 秒 我尝试使用这里给出的答案 https stackoverflow com questions 32237862 fin
  • 如何使用 Angular Elements 创建具有可自定义模板的 Web 组件?

    我想使用 Angular Elements 创建一个 Web 组件库 该库具有默认模板 但允许开发人员覆盖输出 例如 考虑一个搜索结果组件 我可能有一个如下所示的默认模板 h1 Search results for query h1 但开发
  • React Native 中组件之间的导航

    我需要在 React Native 的两个视图之间导航 但问题是我的组件 其中导航按钮位于其他组件上 我使用反应导航 我来给你展示 我在这里有我的组件 MainPage class MainPage extends Component re
  • 查找 NumPy 数组中到最近零的距离

    假设我有一个 NumPy 数组 x np array 0 1 2 0 4 5 6 7 0 0 在每个索引处 我想找到到最接近的零值的距离 如果位置本身为零 则返回零作为距离 之后 我们只对到当前位置右侧最接近的零的距离感兴趣 超级天真的方法
  • 选择选项“selected”属性

    我这里脑子一片空白 基本上我所做的是创建一个迷你文章管理器 每篇文章都可以分配到在选择下拉列表中定义的以下类别之一 Design 发展 Other 当我去编辑一篇文章时 我从数据库中检索了数据并填充了输入和文本区域 我现在想做的是应用sel
  • AWS 签名的 URL 太长,无法缩短

    我正在使用 AWS 创建一个签名 URL 以便我可以安全地将此 URL 传递给另一个 API 以供临时使用 签名的 URL 指向 S3 资源 问题是其他 API 不接受这么长的链接 因此我正在尝试缩短它 我尝试使用类似的缩短器goo gl
  • Android Studio 音乐播放器无法从 SD 卡读取,只能读取内存

    如果这被证明是一个愚蠢的问题 我深表歉意 这可能是一个快速解决方案 但我就是无法弄清楚 我正在 android studio 中构建一个音乐播放器 尽管我确实实现了 getExternalStorageDirectory 并在清单文件中添加
  • Shutterfly 订单 API 。

    我找到了这个网站 http www shutterfly com documentation api OrderImage sfly http www shutterfly com documentation api OrderImage
  • 在 Hedera 区块链中创建智能合约时出现错误“Transaction Oversize”

    我的 bin 文件大小只有 18kb 我还得到了使用 IPFS 的解决方案 但不知道如何使用它 如果有任何使用 IPFS 的参考 请分享给我 错误 PrecheckStatusError 交易 电子邮件受保护 cdn cgi l email
  • IPython Notebook 中的“斑马表”?

    我正在 IPython 中使用用于交互式分析的出色 Notebook 和 Pandas 构建一些交互式工作流程 我显示的一些表格通过一些格式化会更容易阅读 我真的很喜欢像 斑马桌 这样的东西 每隔一行都有阴影 我在这里读 http dev
  • 实体框架代码首先将同一类型的多个复杂类型映射到一个表

    如果您有以下域模型 public class Test public string Description get set public TestB A get set public TestB B get set public TestB
  • BouncyCastle 安装问题

    我正在尝试将 BouncyCastle 添加为 Windows XP Pro 上的安全提供程序 以便我可以根据说明使用它向 Android 应用程序添加一些证书here http blog crazybob org 2010 02 andr