BouncyCastle 1.51在Wildfly 8.0的战争中加载。
背景 我正在尝试使用弹力城堡图书馆在战争中解密私钥.现在,我首先在独立应用程序中测试了代码,并且效果很好.现在,当我在Wildfly8.0上午作为弹力城堡的某些问题进行测试时. 使用弹性城堡提供商模块安装了Wildfly 8.0 AM. v1.46中使用的BC版本. 我开发的代码使用v1.51. 我遵循此处提到的步骤: bouncycastle + jboss as7: - 特别遵循提供的特定部署(首选) 的说明 已经尝试过 安装JCE策略文件. 添加到提供商列表中. 问题 我遇到的错误是: unable to read encrypted data: JCE cannot authenticate the provider BC 和触发上述错误的代码,如下: PKCS8EncryptedPrivateKeyInfo kp = (PKCS8EncryptedPrivateKeyInfo) keyPair; Inpu
0 2023-11-27
编程技术问答社区
无法使用Apache PDFBOX验证数字签名
我是使用数字签名的新手.在其中一个项目中,我们正在使用Apache PDFBox来处理数字签名的PDF文件.虽然我们可以测试所有功能,但我们无法破解签名的PDF文件的验证.我们将Bouncycastle用作提供商.以下是代码: 从PDF文件中获取数字签名和签名内容: byte[] signatureAsBytes = pdsignature.getContents(new FileInputStream(this.INPUT_FILE)); byte[] signedContentAsBytes = pdsignature.getSignedContent(new FileInputStream(this.INPUT_FILE)); 数字签名验证: Security.addProvider(new BouncyCastleProvider()); Signature signer = Signature.getInstance("RSA","BC"); //Get
4 2023-11-17
编程技术问答社区
用Java和Bouncycastle进行X.509证书验证
通过让我们假设一方执行证书请求,并从CA中获得其客户证书.某些聚会B如何验证A的证书?需要什么样的证书?根证书? "普通"客户证书? ,如果我们假设A已成功将其证书以DER或PEM格式发送给B? ,该验证如何在编程级别上工作 任何帮助都非常感谢. 最好的问候, Rob 解决方案 从程序员的角度来看,您需要一些东西来验证X.509证书. 一组"信任锚" - 您依靠的CA的根证书.这些应受到保护,以免篡改,以便攻击者不会用自己的假证书代替CA证书.这些证书中的公共钥匙用于验证其他证书上的数字签名. 中间证书的集合.该应用程序可能会保留这些集合,但是使用证书的大多数协议(例如SSL和S/MIME)都有提供额外证书的标准方法.存储这些不需要任何特殊护理;它们的完整性受根CA的签名保护. 撤销信息.即使CA签发了证书,由于披露私钥,或者最终实体改变了其身份,因此可能会过早撤销该证书. (例如,一个人在其中撤销了其旧公司名称的人. 有了这些输入,您可以使用/*
4 2023-11-12
编程技术问答社区
需要J2ME弹弓的不兼容类型。发现可抛出的DataLengthException
我有一些带有bouncycastle的代码,可以生成异常,但是即使我与catch一起包围,catch语句仍然给我这个错误: incompatible types required: java.lang.Throwable found: org.bouncycastle.crypto.DataLengthException 这是我的代码: int decryptedLength; try { decryptedLength = cipher.processBytes(cipherBytes, 0, cipherBytes.length, decryptedBytes, 0); } catch (DataLengthException ex) { } catch语句不接受例外,如何解决此问题? 解决方案 我更改了项目名称,没有更多的错误.我正在使用Netbeans(7.3). 我希望这将有助于某人避免损失数小时
2 2023-10-26
编程技术问答社区
使用bouncycastle库为Tomcat7上运行的JDK1.6启用TLSv1.2的问题
我正在尝试从运行JDK1.6(在AWS EC2上)的Apache Tomcat7服务器进行API调用,以在我的VPC内部的AWS API Gateway私有端点.此类私人端点仅允许TLSV1.2.我正在使用JDK1.6.45(没有TLSV1.2支持OOTB),并且由于其他约束而没有升级的可能性.我正在尝试使用弹力城堡JCE和JSSE提供商,以便我可以使用HTTPSURLConnection对象创建与API网关的HTTPS连接. 当我尝试拨打API电话时,我对弹力城堡提供商的注册有问题.找到ECDH算法似乎是某种问题. 这是堆叠: WARNING: Client raised fatal(2) internal_error(80) alert: Failed to read record org.bouncycastle.tls.crypto.TlsCryptoException: cannot calculate secret at org.bouncy
20 2023-10-24
编程技术问答社区
如何在java中为jdbc连接从tomcat的context.xml中传递加密相关属性?
我们在struts2中开发了一个应用程序.使用的应用程序服务器是WebLogic.我们正在使用Sybase ASE数据库.我们正在使用普通的JDBC连接到数据库. 最近,我们打开了WebLogic Server中的加密.因此,我们添加了3个属性 key="ENCRYPT_PASSWORD" value="true" key="JCE_PROVIDER_CLASS" value="org.bouncycastle.jce.provider.BouncyCastleProvider" key="RETRY_WITH_NO_ENCRYPTION" value="true" 在产品环境中使用了WebLogic服务器.在Weblogic中,它运行良好.但是我们使用Tomcat 7.0进行本地开发.在tomcat中,我们使用context.xml和以下标签.
6 2023-10-24
编程技术问答社区
关于BouncyCastle类的NoClassDefFoundError
我有一段时间在我的Webapps上与BC类的NoclassDeffoundError: java.lang.NoClassDefFoundError: org/bouncycastle/util/Pack at org.bouncycastle.crypto.engines.AESFastEngine.unpackBlock(Unknown Source) at org.bouncycastle.crypto.engines.AESFastEngine.processBlock(Unknown Source) at org.bouncycastle.crypto.modes.CBCBlockCipher.decryptBlock(Unknown Source) at org.bouncycastle.crypto.modes.CBCBlockCipher.processBlock(Unknown Source) at org.bouncycastle.cry
8 2023-10-24
编程技术问答社区
使用Java 6和BouncyCastle在Jboss 5.1.0 GA上的TLSv1.2
我在Java 6上运行的JBOSS服务器和HTTPS连接器面临问题. 我想仅使用TLSV1.2制作服务器,然后使用Cipher Suites" TLS_ECDHE_ECDSA_WITH_AES_AES_AES_128_GCM_SHA256,TLS_ECDHE_ECDHE_ECDHE_ECDHE_WITH_WITH_AES_AES_AES_256_GCM_SHA384 我知道Java 6不支持TLSV1.2,但我将弹力城堡JCE和JSSE提供商添加到JDK( https://www.bouncycastle.org/latest_releases.html ): 添加了Jars Files( bcprov-jdk15on-159.jar 和 bctls-jdk15on-159.jar )在 path_to_jdk/jre/lib/ext 文件夹 编辑文件 path_to_jdk/jre/lib/lib/security/java.security 添加行: securi
12 2023-10-23
编程技术问答社区
Java 1.6 + BouncyCastle + TLS1.2 (handshake_failure(40))
就我而言,我有Java 1.6,并且要连接到仅支持TLS1.2的远程服务器.服务器url is: https://blagajne-test.fu.gov.gov.gov.si:9002和证书公钥在这里:我没有可能升级Java,因为是Oracle数据库11G(11.4)的一部分. 我尝试在使用Bouncycastel库中写一个简单的程序,但出错:线程中的异常" Main" org.bouncycastle.crypto.tls.TlsFatalAlertReceived: handshake_failure(40) at org.bouncycastle.crypto.tls.TlsProtocol.handleAlertMessage(Unknown Source) 我遵循的步骤是: 1.)已下载了test-tls.cer,并将密钥导入了jssacerts和cacerts. 2.)在Java中完成了此示例: import java.io.IOExcep
4 2023-10-23
编程技术问答社区
在java 1.4中使用TLSV1.2时获得无此算法的异常。
我正在尝试达到支持TLSV1.2的Web服务.我正在使用Java 1.4.它不支持TLSV1.2. 现在有人告诉我,卑诗省可以解决我的问题. 尽管它可以与Sslengine一起使用,以某种方式下降? 卑诗省是否可以吗? 我该怎么做才能完成工作SSLEngine(用于tlsv1 非阻止IO场景)没有对DH的质量限制如此低的限制. 我尝试的是: Security.addProvider(new BouncyCastleProvider()); 这似乎没有解决问题. 所以而不是 SSLContext.getInstance("TLSv1"); //which works alas only little DH keys. 我尝试调用以下内容: SSLContext.getInstance("TLSv1","BC"); SSLContext.getInstance("TLS","BC"); SSLContext.getInstance
2 2023-10-23
编程技术问答社区
当使用TLS PSK加密时,如何正确检测流的结束?
我已经准备了在main我调用的方法中: public static void main(String[] args) throws IOException { SecureRandom random = new SecureRandom(); TlsPSKIdentity identity = new BasicTlsPSKIdentity("Client_identity", Hex.decode("1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A")); Socket socket = new Socket(InetAddress.getLocalHost(), 12345); TlsClientProtocol proto = new TlsClientProtocol(socket.getInputStream(), socket.getOutputStream(), random);
10 2023-10-23
编程技术问答社区
用BouncyCastle库在C#中进行HTTPS调用
使用C#4.0,我需要使用Bouncycastle库进行HTTPS调用(短篇小说:Windows XP + TLS 1.2). 使用以下代码时,我会得到" HTTP错误400.请求动词无效." 这是我的代码: using (var client = new TcpClient("serverName", 443)) { var sr = new SecureRandom(); var cl = new MyTlsClient(); var protocol = new TlsClientProtocol(client.GetStream(), sr); protocol.Connect(new MyTlsClient()); using (var stream = protocol.Stream) { var hdr = new StringBuilder(); hdr.AppendL
4 2023-10-23
编程技术问答社区
TLS 1.2 + Java 1.6 + BouncyCastle
用于使用Java 1.6 API支持HTTPS连接到使用TLS 1.2的远程主机,我们已经基于有弹性城堡库(v.1.53)开发了定制的TLS SocketConnection Factory 这很容易使用,仅: String httpsURL = xxxxxxxxxx URL myurl = new URL(httpsURL); HttpsURLConnection con = (HttpsURLConnection )myurl.openConnection(); con.setSSLSocketFactory(new TSLSocketConnectionFactory()); InputStream ins = con.getInputStream(); 在测试期间,我将暴露于 sslabs测试中连接到其他网络和远程主机P> 90%的时间这一切都很好!但是在某些情
8 2023-10-23
编程技术问答社区
java.lang.ClassNotFoundException: org.bouncycastle.asn1.ASN1Encodable
我正在使用ITEXT 4.2.0和BCPROV-JDK15-1.43.JAR和BCTSP-JDK15-1.43.JAR签署PDF.我通过在Eclipse中添加外部罐子按钮添加了这些罐子.当我执行时,它会给我以下错误. ExceptionConverter: java.lang.Exception: Failed to get TSA response from tsaURL at com.lowagie.text.pdf.TSAClientBouncyCastle.getTimeStampToken(TSAClientBouncyCastle.java:185) at com.lowagie.text.pdf.TSAClientBouncyCastle.getTimeStampToken(TSAClientBouncyCastle.java:136) at com.lowagie.text.pdf.PdfPKCS7.getEncodedPKCS7(PdfPKCS7.java:123
12 2023-10-22
编程技术问答社区
CMS签名-时间戳和计数器签名的区别是什么?
我试图与Bouncycastle一起在C#中为数字siganture(带有本地时间戳证书).我对时间戳的理解是,它是签署当前时间.不确定是否应该是当前时间 +原始签名内容?请同时提供帮助. 我的主要混乱是,是否将生成的时间戳添加到原始签名的唱歌/未签名属性中.还是将其作为柜台签名? 解决方案 时间邮票的目标是证明签名是在给定时间之前创建的,因此,使用时间戳记,您必须签署数字签名和当前时间.时间戳记必须添加到CMS签名中,作为无符号属性.此外,SignatureTimeStamptaken是一个签名本身. 要向CMS添加时间戳,您可以使用具有1.2.840.113549.1.9.1.9.16.2.14对象标识符且具有ASN.1类型(以下信息均从SignatureTimeStampToken ::= TimeStampToken TimeStampToken ::= ContentInfo -- contentType is id-signedData ([CMS]) -
4 2023-10-22
编程技术问答社区
阅读WP8上的SSL证书细节
出于安全原因,我想阅读证书详细信息(例如到期日期或CN). 通常在可用的网络类中有一些属性,可以检查证书. WP8实现中缺少这. 我还尝试创建一个SSLSTREAM,但也无法获得任何证书详细信息,例如 remotecertificate on .net 4.5. var sslStream = new SslStream(new NetworkStream(e.ConnectSocket)); sslstream缺少有关安全性的所有内容.因此,赏金castle和其他图书馆也无法获得证书,因为基础框架不支持它. 所以我的问题是: 我可以阅读CN或其他如果没有,如何使用 问候 Holger 解决方案 我向Microsoft .NET团队发出了用户语音请求,要求他们提供用于从便携式类库中读取服务器SSL证书详细信息的解决方案(也针对WP8).您可以在此处投票:其他解决方案 在Windows Phone 8.1上可以使用 httpclient ,以及
8 2023-10-15
编程技术问答社区
mscorlib.dll中发生了一个未处理的'System.FormatException'类型的异常。
using Org.BouncyCastle.Math; string p = "E7A69EBDF105F2A6BBDEAD7E798F76A209AD73FB466431E2E7352ED262F8C558F10BEFEA977DE9E21DCEE9B04D245F300ECCBBA03E72630556D011023F9E857F"; BigInteger P= new BigInteger(p); 投掷异常 System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffe r& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.Pars
12 2023-10-02
编程技术问答社区
CMSSignedDataStreamGenerator哈希值不匹配
我正在编写一个应用程序,该应用程序使用BouncyCastle签名和包裹数据. 我需要签署大文件,因此我选择使用CMSSignedDataStreamGenerator而不是使用CMSSignedDataGenerator(对于小文件效果很好).正在生成签名的文件,但SHA1哈希不与原始文件匹配.你能帮我吗? 这是代码: try { int buff = 16384; byte[] buffer = new byte[buff]; int unitsize = 0; long read = 0; long offset = file.length(); FileInputStream is = new FileInputStream(file); FileOutputStream bOut = new FileOutputStream("tes
10 2023-09-30
编程技术问答社区
无法验证签名(cmssigneddata) bouncycastle
当我想验证使用Bouncycastle制作的签名时,我不会进入verifySignature方法的第二个while循环. store.getMatches()还给空数组. public static CMSSignedData sign() throws Exception { byte[] file = fileChooser(); store = KeyStore.getInstance(storeType); FileInputStream in = new FileInputStream(new File(storePathKey)); store.load(in, storePassword); in.close(); Key priv = store.getKey("Subject", storePassword); System.out.println(priv.toString() + "priv strin
14 2023-09-30
编程技术问答社区
使用Bouncycastle生成数字证书
经过一番研究,我已经确定要在Java中以编程方式生成和签名证书,我需要Bouncycastle库. 不幸的是,图书馆似乎最近经历了一次重大大修.现在,他们的课程中有很多,我能发现的所有教程和代码样本都与他们一起贬低了. 我是密码学的新手.我只有基本知识和模糊的想法对我实际要完成的工作,我在过时的教程和假定的知识Bouncycastle文档中陷入困境,这是一种艰巨的体验. 有什么简单的理解,最新的Bouncycastle教程或我应该查看的替代图书馆?还是我应该咬牙切齿,忽略折旧警告,并希望最好? 解决方案 很难找到,但是 Bouncycastle Wiki 一些简短但甜美的文档.特别是另一个完美的替代方案是仅使用库的1.46版,这是最后一个使用旧API的版本. 其他解决方案 您真的需要直接使用Bouncycastle还是无法将其用作加密服务提供商?因此,您无需使用BCS API.请参阅static { Security.addProvider(new Bo
10 2023-09-28
编程技术问答社区