问题标签 [bouncycastle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
14155 浏览

java - 如何在 AES 和 PBE 中使用 Bouncy Castle 轻量级 API

我有一个使用 JCE 算法“PBEWithSHA256And256BitAES-CBC-BC”创建的密文块。提供者是 BouncyCastle。我想做的是使用 BouncyCastle 轻量级 API 解密这个密文。我不想使用 JCE,因为这需要安装 Unlimited Strength Jurisdiction Policy Files。

在将 BC 与 PBE 和 AES 结合使用时,文档似乎很少。

这是我到目前为止所拥有的。解密代码无异常运行,但返回垃圾。

加密代码,

解密代码,

0 投票
3 回答
2331 浏览

c# - 仅使用 C、指数和模数的 RSA 解密

我正在尝试使用 RSACryptoServiceProvider 解密,但我只有模数和 d 对作为私钥和指数。

RsaParameters 结构不会使用这些。它在解密时拒绝我,但有一个例外“坏密钥”。

据我了解,这对足以在没有整个 DQ DP INVERSEQ 部分的情况下解密。此外,在我发现的带有 pyCrypto 的 python 示例中,它有一个 RSA.construct 方法,只需要上述部分。

.NET 框架或其他库中的类是否可能?我试过 BountyCastle 但没有运气。

0 投票
2 回答
1578 浏览

java - 如何在 java 中使用 bouncycastle 将 PrivateKeyUsage 扩展添加到证书?

我有一个 X509Certificate 我想添加扩展...我想添加 PrivateKeyUsage 扩展,但我不知道如何创建 PrivateKeyUsage 对象或如何给它 notBefore & notAfter 值...谢谢

0 投票
4 回答
12249 浏览

java - 使用轻量级 API 生成 Bouncy Castle RSA 密钥对

令人惊讶的是,Web 上关于使用 Bouncy Castle 的轻量级 API 的信息非常少。看了一会儿后,我整理了一个基本的例子:

我对 RSA 和幕后发生的数学有基本的了解,所以我了解什么publicExponentstrength是什么。我认为只要使用适当的填充,它publicExponent指的是我收集的互质数,它可以很小(如 3)。phi(pq)但是,我不知道certainty指的是什么(有些地方提到它可能指的是百分比,但我想确定一下)。的使用SecureRandom是不言自明的。RSAKeyGenerationParameters的文档完全没有价值(这并不奇怪)。我唯一的猜测是它与生成的密钥的准确性有关,但我想再次确定。certainty所以我的问题是什么是合适的值publicExponent

PS 请不要回复“这取决于上下文 - 您希望信息有多安全”。除非另有说明,否则假设最高级别的安全性(即 4096 位 RSA 密钥或更高)是相当安全的......我也很感谢提供使用 Bouncy Castle 轻量级 API 的良好示例的资源链接(我不在所有人都对 JCA 实现或与之相关的任何示例感兴趣)。

0 投票
2 回答
3324 浏览

java - PKCS10CertificationRequest 在 android 上创建

我对android和java都很陌生,所以希望我在这里遗漏了一些简单的东西。我要做的就是创建一个简单的 PKCS10 证书签名请求。我有一些代码可以在我的 ubuntu 机器(java-6-openjdk)上编译和运行,但会在 android 模拟器中引发空指针异常:

在调试器中,我可以看到我显然已经构建了一个 PKCS10CertificationRequest,但是我不能用它做任何事情(比如 getEncoded() 甚至 toString())而不会出错。当我调用 getEncoded() 时,它在 android 模拟器上失败;这是堆栈跟踪:

我已经在 API 级别 7 和 8 上进行了尝试。我知道我可以发布大量其他关于我系统各个组件版本的详细信息。就像我说的,我是新手,所以现在我更多的是寻找一个方向,而不是最终的答案。

非常感谢,

亚当麦克勒

0 投票
1 回答
5174 浏览

java - 如何正确使用 Bouncy Castle 的 OAEPEncoding for RSA(轻量级 API)

我一直在玩 Bouncy Castle 的 RSA(轻量级 API)实现,并弄清了基础知识。查看他们的 JCE 提供程序实现规范,我注意到不同的填充方案可以与 RSA 一起使用。据我了解,默认情况下使用空填充。所以我开始探索 OAEP 填充,特别是OAEPWithSHA512AndMGF1Padding. 用谷歌搜索不是很有帮助,所以我开始挖掘 BC 的源代码并找到org.bouncycastle.jce.provider.JCERSACipher类。但是看的initFromSpec很快就让我头疼了……具体来说,我不明白最后两个可以传递给OAEPEncoding构造函数的参数是什么。根据 BC 的 API OAEPEncoding,允许四个参数的构造函数接受Digest mgf1Hashbyte[] encodingParams作为最后两个参数。这让我很困惑,因为我不知道如何获取掩码生成算法的实例,也不了解称为encodingParams. 下面的代码中arg3和的值应该是什么?arg4

0 投票
9 回答
207187 浏览

java - 在 Java 中通过 SHA-256 哈希字符串

通过环顾这里以及一般的互联网,我找到了Bouncy Castle。我想使用 Bouncy Castle(或其他一些免费提供的实用程序)在 Java 中生成字符串的 SHA-256 哈希。查看他们的文档,我似乎找不到任何我想做的好例子。这里有人可以帮我吗?

0 投票
2 回答
1240 浏览

java - 从 DEROctetString 到 KeyUsage

bouncycastle 中,我可以从 KeyUsage 开始创建一个 DEROctetString。

那么如何从 DEROctetString 获取 KeyUsage 呢?

例子:

我需要这个,因为我能够使用 KeyUsage 扩展请求创建证书请求,但是,仅考虑到证书请求,我无法取回 KeyUsage 扩展。

0 投票
1 回答
6048 浏览

c# - 使用 C# AesCryptoServiceProvider 加密数据,使用 BouncyCastle AesFastEngine 加密

我需要使用标准 C# AesCryptoServiceProvider 解密数据,该数据在 Java 端使用 Bouncy Castle AesFastEngine 加密。(使用Bounca Castle的c#实现解密数据没问题)

有没有办法做到这一点?

我没有找到在 Bouncy Castle 实施中使用的 IV……有吗?

任何帮助都会很好!马库斯

编辑:

以下代码用于初始化 AesFastEngine:

编辑:

您好 Grec,感谢您的回答,但它仍然无法正常工作...我有一个示例解决方案可在此处下载。

如果您单击两个按钮,您已经获得了一个不同的加密数组......???解密用充气城堡产生的数组会导致异常,说加密数据的长度无效......

这是我为解密编写的代码:

编辑:

越来越接近!RijndaelManaged managed 正在工作,但它给了我一个字节的加密数据。所有其他字节都相同...我尝试了很多,但我不知道如何使用充气城堡获取最后一个字节...如果没有最后一个字节,则无法使用 RijndaelManaged 解密数据...

0 投票
2 回答
17083 浏览

java - 在 Java 中验证 PKCS#7 证书

在 Java 中需要一些有关加密例程的帮助。

给定 PKCS#7 签名,我想根据受信任的存储验证它包含的所有证书。我假设签名中包含的所有证书都以正确的顺序形成有效的证书路径(或链,等等),所以

  • topmost (#0) 是签名证书;
  • 下一个(#1)是中间证书,用于签署#0;
  • 下一个(#2)是另一个中间证书,用于签署#1;
  • 等等。

最后一个证书 (#N) 由 CA 签名。

到目前为止,这就是我设法破解的:

所以问题是——如何使用标准的 Java 类CertPath和朋友来做到这一点?我有一种强烈的感觉,我正在重新发明一辆自行车。或者,如果有人有 BouncyCastle 库的示例,那也可以。

额外问题:如何根据受信任的存储验证证书以便自动选择根证书?