问题标签 [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.
java-me - J2ME AES 解密错误(org.bouncycastle.crypto.InvalidCipherTextException:垫块损坏)
我正在使用带有充气城堡的 AES 算法进行加密和解密
我的加密和解密工作正常,但是当我的纯文本大小更大时它会给我错误
甚至有时它会提供未解密的数据
加密:
解密:
这个解密给了我以下错误
可能是什么问题呢 ?
java - 升级到 1.45 时出现 BouncyCastle AES 错误
最近从 BC 1.34 升级到 1.45。我正在使用以下内容解码一些先前编码的数据:
使用 BC 1.45 时,我得到了这个异常:
编辑:有关此问题的更多信息。我正在使用以下内容从密码短语生成原始密钥:
我发现这导致 BC 1.34 和 1.45 有两个不同的值。
它也可能与 BouncyCastle 无关(我正在 Android 2.3 上进行测试)
encryption - j2me 的充气城堡提供程序 jar
我是加密和 j2me 的新手。这可能是一个愚蠢的问题,但我在哪里可以从 bouncy castle 获得一个供应商来与 j9 vm 一起使用?是不是和 jdk4,5,6 的一样(比如 bcprov-jdk16-145.jar)?我很困惑,因为正如我在 bouncycastle 的网站上看到的,对于 j2me,只有轻量级 api,但没有提供程序 api。
java - 给定 n 和 e 的 Java 中的 RSA
我的应用程序接收到公共 RSA 密钥(n 和 e)的原始片段,并且需要使用它们来加密密文。我一直在尝试使用 BouncyCastle,但我的代码不起作用。尝试创建 X509EncodedKeySpec 时会出现问题。
谁能帮我搞定这个工作?这是我的代码:
我想真正的问题是 n 和 e 是分开的,我不知道如何组合它们。
digital-signature - 如何匹配公钥是否相同
我正在使用crypto.signText()
和CAPICOM
签署一些文本。
所以,现在我拥有的是 Base64Encoded 签名文本。
然后我正在使用 BouncyCastle 来验证签名。直到这没关系。
现在我想做的是,
当用户第一次登录系统时,我想验证该签名,然后将 publicKey 存储到数据库中。从下一次登录开始,我想将存储到数据库中的 publicKey 与新获得的签名文本与该用户进行匹配。
如果签名文本中的公钥和存储在数据库中的公钥相同,则只允许用户登录系统。
如何实施?(我正在使用 JAVA 语言)
c# - 以编程方式生成 X.509(非自签名)客户端证书
是否可以在不使用 makecert.exe 的情况下在 ASP.NET 中即时生成客户端证书?生成的证书应使用给定的 CA 证书进行签名(特定的 CA 证书保存在文件系统上并在运行时选择)。生成的证书应附加到对另一台服务器的 Web 请求,以便提取数据。
流量:
用户在 IIS 上请求 ASP.NET 页面 -> 使用 ASP.NET 在 IIS 上生成证书 -> 调用附加了证书的另一台服务器 -> 数据返回并显示在用户请求的页面上。
我找不到通过 .NET Framework 进行本机操作的方法,并探索了不同的选项,例如:
- CertEnroll.dll - 此接口替换旧的 IEnroll4 接口。它似乎只支持创建证书请求 - IX509Enrollment: http: //msdn.microsoft.com/en-us/library/aa377809 (v=VS.85).aspx
- Bouncy Castle - 一个我可能无法使用的开源项目(许可证问题)
提前感谢您的回复。
.net - x509 C# 示例?
我一直在逐篇阅读有关 x509 证书创建、签名等的文章,但我还没有找到解决我的问题的方法——想知道是否有人能指出我正确的方向,因为我现在完全糊涂了. 这是我正在尝试做的事情:
对于客户端应用程序:
- 生成公钥/私钥对
- 将密钥作为 byte[] 获取并将它们存储在文件系统中。
- 生成 x509 证书
- 生成签名请求
对于服务器应用程序:
- 生成公钥/私钥对
- 将密钥作为 byte[] 获取并将它们存储在文件系统中。
- 创建自签名 X509 证书
- 签署客户证书
- 验证客户端证书是否由上面 #3 中的自签名证书签名。
我需要在 .Net 中以编程方式完成所有这些操作,并且不需要像 makecert.exe 或 openssl.exe 这样的外部 .exe - 我需要使用进程内库等。
我使用各种库(如 Bouncy Castle、.Net Crypto、openssl 等)进行了一些零碎的工作 - 但我总是遇到障碍,要么缺乏文档,要么无法以字节 [] 的形式获取密钥对,所以我可以坚持他们,等等。要么我让这比现在更难,要么那里严重缺乏文档 - 或两者兼而有之。
我认为之前必须有人这样做过,我非常感谢一些帮助 - 我愿意接受任何和所有建议 - 谢谢!
.. 并且 PKIBlackbox 不是一种选择——它的成本太高了 :(
c# - 生成的签名 X.509 客户端证书无效(其 CA 没有证书链)
我使用 Bouncy Castle 生成 X.509 客户端证书,并使用已知的 CA 唱出它们。
首先,我从证书存储中读取 CA 证书,生成客户端证书,使用 CA 对其进行签名。证书验证失败是由于以下问题
无法将证书链构建到受信任的根颁发机构。
据我了解,这是由于证书与 CA 无关。
这是一个代码示例:
c# - 使用 BouncyCastle 签署 X509 证书 - 无效的数字签名
我按照以下示例进行操作:
但生成的签名客户端证书在 Windows 中打开时出现以下错误:
“此文件无法用作以下用途:安全证书”
如果我仍然安装它并使用 certmgr 查看它,则证书路径看起来不错 - 我看到我的自签名证书颁发机构(很好,没有问题),但客户端证书具有以下状态:
“此证书的数字签名无效。”
如果我调用 X509Certificate.Verify() 它会引发以下异常:
“提供的公钥不用于证书签名”
然而,我使用的是从 Pkcs10CertificationRequest 中提取的完全相同的公钥,当我调用 Verify() 时,这很好。
有任何想法吗?经过几天的努力,除了最后一个之外,我已经完成了所有工作 - 真正令人困惑的是我的自签名 CA 证书很好。客户端证书发生了一些事情。这是整个代码块:
encryption - 传输 RSA 公钥、javaME、充气城堡的问题
我正在将实例消息传递应用程序从 Java 移植到 JavaME,这也实现了密码学。问题是我想将我的公钥发送到服务器。桌面客户端有这个工作的代码:
服务器有这个代码来检索密钥:
现在我查看了 getEncoded 的 API,它说它将密钥的 DER 编码形式作为字节数组返回(http://www.docjar.com/docs/api/sun/s...tml #getEncoded)
我在 JavaME 中的实现是这样的:
但是,当我尝试使用服务器代码检索 JavaME 创建的 DER 编码密钥时,换句话说,当我尝试这样做时:
我明白了
有趣的一点:普通 Java 中的 DER 编码密钥(使用 getencoded() 函数)是一个字节数组,长度为 162 字节,而使用 bouncy castle 的 JavaME 中编码的 SAME 密钥 DER 长度为 140 字节。这两个 DER 编码的密钥不应该具有相同的长度吗?我的意思是它是 DER 编码格式的相同密钥,所以它们应该是相同的。
我究竟做错了什么?
是的,我没有注意到。问题是你知道如何从 bouncyCastle 中的 PublicKey 创建一个 subjectPublickeyInfo 对象吗?我试过了:
ByteArrayInputStream bIn = new ByteArrayInputStream(RSApublickey.toString().getbytes());
SubjectPublicKeyInfo info = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(bIn).readObject());
但它没有用。我也试过:
ByteArrayInputStream(RSApublicKeyStructure.getEncoded());
SubjectPublicKeyInfo info = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(bIn).readObject());
实际上,我确实希望这不起作用,但我不得不尝试一下。那么如何从 RSAkeyparameters 创建一个 Subjectpublickeyinfo 呢?(我猜这是 bouncy 的城堡 API 的默默无闻的真正亮点之一)
再次感谢您的回复,您提供了很大的帮助。您让我走上了正确的道路。