问题标签 [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.
android - Spongycastle 在 android 上加载时缺少许多算法
在这个 stackoverflow 答案中,您可以看到打印所有可用提供程序和相应算法的代码:如何找出我的 JVM 支持的算法 [加密]?
我正在使用最新版本的 spongycastle,当我要求在 android 上获取 Spongycastle(“SC”)的算法时,我只得到了少数算法。事实上,我得到了这个非常有限的列表:
另一方面,当我要求在我的 linux 机器上获取 SC 的算法时,我得到了更多的算法。我没有数过它们,但它比你在上面看到的要长 10 倍。
其他所有算法都去了哪里??
因为这个项目不是一个典型的 android-java 项目,而是一个 Android-Scala 项目,所以我必须在每次执行时使用Proguard 。这对缺失的算法有什么作用还是别的什么?
Note1:我使用 SC 生成密钥对,使用 OpenPGP 加密和解密
注2:源代码经过测试,在使用 OpenJDK-6、RSA 算法用于公钥加密和 BLOWFISH 算法作为随机对称密钥的 linux 机器上完美运行
android - 在 ECDH 中使用 Spongy Castle 库生成密钥对
我是台湾学生。我正在学习如何在 Android 中编程。但我有一个关于使用 Spongy Castle 库在 ECDH 中生成密钥对的问题。当我启动应用程序时,android 系统显示应用程序已停止。
这是我的代码和我的导入
请帮忙。
android - iText SpongyCastle 错误
我已经使用各种版本的 itext 进行了尝试,包括带有试用许可证的 itextgoogle,当我尝试运行我的代码时,我不断收到以下错误:
错误是:
我听说我需要自己构建 iText,但我不确定从哪里开始/如何做。我发现的罐子的文件名不是很有描述性。
android - 等效于 ios 的 spongycastle 加密
这让我很难过——以下代码使用 SpongyCastle 的 Android 加密/解密——我正在尝试实现 iOS 的跨平台加密/解密。
以下代码(来自Android)使用提供的盐和密码(来自Android)使用提供的盐和密码进行处理,使用提供的盐和密码,密码由最终用户提供,以下代码改编自此kelhoer的回答。
我使用 AES128bit 的原因是 AES256 在 iOS 4+ 中不可用,它是在 iOS5+ 中引入的,并且不得不涉足使用openssl
来生成派生密钥和初始化向量 (iv),据了解苹果拒绝与 openssl 库静态链接的应用程序。
由于该平台基于 iOS 4.2+,因此采用捆绑和静态链接 openssl库的做法似乎有些过头了,最好使用 CommonCryptor 库。
这是带有 Spongycastle 代码的 Android 版本:
但是在 iOS 4.2(使用 XCode)下,我无法弄清楚如何做等价的,
这是我在Objective C下尝试过的,目的是从Android端解密存储在mysql数据库中的数据,以进行测试:
已提供数据和用户密码,并从中获取返回码CCCrypt
,-4304
指示不成功和错误解码。
我曾认为编码方案可能会抛弃 CommonCryptor 的解密路由,因此转换为NSASCIIStringEncoding
.
Salt 与密码数据一起存储,长度为 32 字节。
请记住,我在这方面缺少什么,我在密码学方面很薄弱。
android - 将 Spongycastle 与 Proguard 一起使用
我一直在努力让 Proguard 让 Spongycastle 工作。大多数情况下,当我导出已签名的 APK 时,问题就出现了,要么我有错误,要么应用程序在启动前就会崩溃。
因此,我设法收集信息以获得有效的 proguard 配置:
我正在运行ADT 版本:22.0.0.v201305140200--675183 测试手机在 Android 2.3.5 下
借用我的部分是“ -keep class org.** { *; }
”....我做得对吗?我试过“ -keep class org.spongycastle.** { *; }
”,但应用程序在启动前就崩溃了......
谢谢 !
android - 使用 SpongyCastle 的 Android 版 ECDSA
我刚刚为我的 Android 项目将 SpongyCastle 添加到 Eclipse,但是我似乎无法找到一个好的/完整的示例来说明如何使用 ECDSA 对纯文本进行加密和解密。我想这应该是加密库的“hello world”。
谁能帮我这个?或将我引向可以帮助我实现相同目标的其他资源?
谢谢。
android - Android - 放置“addProvider”/“Security.insertProviderAt”代码行的最佳位置在哪里
我想在 Android 应用程序中放置以下代码的最佳位置是:
有些人在 的子类中Application
这样做,但我真的不想子类Application
。
提前致谢。
android - java.io.IOException:在 Android 项目的 Maven 构建中运行 ProGuard 时无法处理类
我使用一个名为 iText 的库将新信息写入现有 PDF。为了加密 PDF,iText(适用于 Android)使用名为 SpongyCastle 的库,它是 BouncyCastle 的 Android 端口。不幸的是,iText 和 Spongycastle 都包含大量的方法(15k+)。在 Android 中,您可以使用的方法数量有一个硬性限制(64k)。幸运的是,iText 并没有使用 Spongycastle jar 中的很多类。
我能够解压缩 Spongycastle jar 并删除 iText 不使用的所有类并重新压缩文件。
一切都很好,直到我在 Maven 构建中运行 proguard 以生成最终的 apk。我得到以下对我没有意义的 IOException。
非常感谢您帮助解决此错误。
先感谢您。我还包括了 proguard.cfg 中引用 bouncycastle 的部分。
java - Android 上生成的不同 RSA 公钥
我能够在我的 Java 桌面环境中生成一个公钥,我得到了这样的东西
Sun RSA public key, 1024 bits modulus: 101700973019391285593457598101942678753508114287289699162184623605939671495532511783006850112834969917970271633181351680298749946797462542179729127916916336425952724141383800466274935950042225686754068132826643586090512962724382324158485291344703936377718522573879330753020035687831145457530843148690890911921 public exponent: 65537
但在 Android 设备上,当我将密钥作为字符串获取并用于KeyFactory
生成公钥时,我得到以下信息:
OpenSSLRSAPublicKey{modulus=90d3b5cefc50dc42828cee8d718876f7573b4c9287dddf808e73cb66266c2004165217f86d0f0192de0bb88b3aac2002303ee8b1c926e9bc54189a5ec5a12bb293df0b3c6ff2458a63098f712f0b72218ce301c38de3971ae8c6c646160a5e2e24dc07679e5a82ada1233ecf5eca3d0d1f483d1c9f059 a23deed537c670b70b1,publicExponent=10001}
密钥有差异。我试过 SpongyCastle。我仍然在 Android 上获得 OpenSSL 结果。
我错过了什么?
java - 从坐标创建椭圆曲线点对象
我有一个点的 x 和 y 坐标以及曲线的名称。我现在想从中创建一个org.bouncycastle.jce.interfaces.ECPublicKey
对象,自动使用提供的实现。目标是无论是否使用 bouncycastle 或其 Android 端口 spongycastle 都能够创建对象。
这就是我现在正在做的事情。问题是,海绵城堡中不包含 EC5Util 类。我想有一个解决方案,使用可能只有一个我必须调用的方法的工厂。那可能吗?