问题标签 [spongycastle]

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 投票
0 回答
198 浏览

java - Java: BouncyCastle - SpongyCastle 和条件编译

感谢 Android 提供了自己的过时版本的 BouncyCastle 加密库,我的处境很糟糕。我已经建立了一个库,它将 REST 与我们自己的 Web 服务进行通信,其中数据由客户端动态加密和解密。客户端可以是 Android 上的移动应用程序,也可以是运行 Oracle Java 的桌面/服务器计算机。

对于 Android,我需要 SpongyCastle,而对于桌面/服务器,我需要 BouncyCastle,因为 SpongyCastle JAR 没有签名,Oracle 运行时不允许那些加密的东西。

问题是,无论使用什么库,代码都是完全一样的。由于包名称,只有导入不同。在 C 中,我会使用条件编译来包含特定于平台的标头,我知道在 Java 中没有那么多。尽管如此,有没有一种方法可以让我实现类似的东西,从几乎相同的来源创建两个构建?我真的很讨厌有两个完全相同但只有一些不同的导入的 .java 文件。这是维护的噩梦。

0 投票
0 回答
1144 浏览

java - 使用 BC 从私钥计算 EC 公钥

在我的程序中,我可以使用 Spongy Castle(Android 的 Bouncy Castle 等效项)从 PEM 文件中成功恢复 EC 私钥。由于该文件不包含公钥,我试图从私钥重新计算公钥。

我能够计算出有效的公钥。但是,我的公钥包含的数据(311 字节)比我的原始参考(92 字节)多得多。这甚至超过了私钥(152 字节)。

如何获得公钥的压缩 (?) 版本

0 投票
1 回答
4976 浏览

android - 使用 Spongy Castle(Bouncy Castle 发行版)在 Android 上生成有效的 ECDSA secp256r1/prime256v1 密钥对

我正在尝试在 Android 中使用 SpongyCastle 生成 ECDSA 密钥对。这是代码:

出了点问题,因为我总是得到类似公钥的例子:

3059301306072A8648CE3D020106082A8648CE3D03010703420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

和私钥:

308193020100301306072A8648CE3D020106082A8648CE3D030107047930770201010420219AB4B3701630973A4B2917D53F69A4BE6DAD61F48016BFEF147B2999575CB2A00A06082A8648CE3D030107A14403420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

站点ECDSA 示例给出了无效的 ECDSA 签名,它们似乎与较小的私钥非常不同,并且总是以在同一站点中生成的“04”公钥开头。

此外,我的后端验证给了我错误“无效点编码 0x30”

后端 Java 方法检查是:

0 投票
1 回答
4883 浏览

android - Android: InvalidKeySpecException: encoded key spec not recognised

When I try to make RSA public key from string. I get exception mentioned below. I am trying to verify generated keys (string, using Swift) in Android. How to convert the string to private/public key?

Exception

public key in ios:

0 投票
2 回答
8781 浏览

bouncycastle - 如何生成有效的 ECDSA EC 密钥对?

我正在尝试在 Android 中使用 SpongyCastle 生成 ECDSA 密钥对。这是代码:

出了点问题,因为我总是得到类似公钥的例子:

3059301306072A8648CE3D020106082A8648CE3D03010703420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

和私钥:

308193020100301306072A8648CE3D020106082A8648CE3D030107047930770201010420219AB4B3701630973A4B2917D53F69A4BE6DAD61F48016BFEF147B2999575CB2A00A06082A8648CE3D030107A14403420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

站点ECDSA 示例给了我“无效的 ECDSA 签名消息”,它们似乎与较小的私钥非常不同,并且总是以在同一站点中生成的“04”公钥开头。

此外,我的后端验证给了我错误“无效点编码 0x30”

后端 Java 方法检查是:

0 投票
1 回答
807 浏览

java - Android PrivateKey 到 BouncyCastle PrivateKeyInfo?

我正在尝试使用 Bouncy/SpongyCastle 的 OAEP 编码来解码一些包装数据。但是,用于初始化类的 SpongyCastle APIOAEPEncoding需要CipherParameters. 就我而言,我正在尝试使用 Android 解包某些东西PrivateKey,所以我假设我需要以某种方式将密钥转换为AsymmetricKeyParam并将其粘贴在OAEPEncoding.init函数中。但是,我确实尝试过寻找类似的东西,但大多数示例都显示通过执行getPrivate().getEncoded(). 但是,Android 不允许您获取原始私钥,所以我不确定如何处理这个...
编辑:我使用 BC 的 OAEP 类的原因是将 OAEP 与 SHA-256 一起使用

0 投票
1 回答
2129 浏览

android - 从 base64 字符串 ECDSA 私钥创建 PrivateKey

我在 base64 中有 ECDSA 私钥字符串(我用这个https://stackoverflow.com/a/8571649/7661555答案中的正则表达式检查了这个字符串)。

我尝试从这个字符串生成 PrivateKey 实例。我在我的项目中包含 SpongyCastle,并尝试使用以下代码生成它:

但是当我运行这段代码时,我得到下一个异常:

W/System.err:java.security.spec.InvalidKeySpecException:无法识别编码的密钥规范

你能告诉我我做错了什么吗?

PS 生成 PrivateKey 后,我想用它签署另一个字符串。为此,我找到下一个代码:

这是正确的方法吗?或者这其中的某些东西会导致另一个例外?

0 投票
1 回答
189 浏览

android - SpongyCastle 私钥提取非常慢

我正在使用以下方法使用 Spongy Castle 从密钥中提取私钥:

然而,最后一行代码在 Android 上运行速度非常慢(大约 90 秒)。关于如何从加密的密钥中提取 PGPPrivateKey 有没有更好的方法?也许我在从 linux 导出密钥时犯了一些错误,但我认为这不是问题,因为我使用了简单的命令gpg --export-secret-keys > key.skr。关于可能导致此问题的任何想法?

0 投票
2 回答
15341 浏览

android - Android使用RSA公钥加密字符串

我正在一个项目中工作,我必须使用 RSA 公钥加密密码。我尝试了许多来自 SO 的示例和解决方案,如下所示

  1. 来自公共字符串的 Android RSA 加密

  2. RSA 使用 SpongyCastle

但不幸的是,在我的情况下,没有一个解决方案有效。如果我尝试解决任何问题,我会反复出现以下异常

错误日志:

我的要求:

我有一个公钥,我想用那个公钥加密在edittext中输入的文本。例如:Password@123 应该使用公钥加密。

公钥:

我试过的代码实现:

样品一:

样品二:

样品三:

任何帮助或建议都会对我很有帮助。提前致谢。

0 投票
1 回答
736 浏览

android - SpongyCastle 是否支持 DERObject 类?

我正在尝试在 Android 应用程序中使用以下类的等效项,其中我使用的是 Spongy Castle 1.54:

我不能 import org.spongycastle.asn1.DERObject,BouncyCastle API 参考列表也不能DERObject在弃用的类列表下。

Spongy Castle 根本不支持这个类吗?