首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bouncy Castle真的在org.bouncycastle.crypto.tls.CipherSuite中提供了密码套件的底层实现吗?

Bouncy Castle真的在org.bouncycastle.crypto.tls.CipherSuite中提供了密码套件的底层实现吗?
EN

Stack Overflow用户
提问于 2020-12-16 09:07:41
回答 1查看 163关注 0票数 0

我正在尝试使用Bouncy Castle的DefaultTlsClient与只使用密码套件TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8的服务器进行交互。在搜索Bouncy Castle源代码时,我偶然发现了抽象的DefaultTlsClient,我想我也许能够使用它并覆盖GetCipherSuites方法,如下所示:

代码语言:javascript
复制
public override int[] GetCipherSuites()
{
    return new int[]
    {
        CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
    };
}

然而,我不确定Bouncy Castle是否真的实现了该套件,因为在服务器完成其hello之后,程序崩溃,并从客户端发出失败的握手( 40 )-我认为这应该是一个失败的密码套件协商错误。因此,TLS消息的顺序是:使用CCM_8密码套件的客户端问候提供使用CCM_8密码套件的->服务器问候,提供从客户端到服务器的回复->警报握手失败(40)。

如果我在重写GetCipherSuites()时使用更常见的密码,我的实现可以与谷歌等其他TLS服务器进行通信,但我需要与之通信的服务器只使用CCM_8。

Bouncy Castle TLSClient真的可以与常量类CipherSuitehttp://docs.glngn.com/latest/api/org.bouncycastle.bcprov-jdk15on/org/bouncycastle/crypto/tls/CipherSuite.html中的所有套件一起工作吗?或者它依赖于操作系统来提供?

此外,还试图找到一种在dotnet中使用TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8和x509证书的方法。我发现的库只使用预先共享的密钥。

EN

回答 1

Stack Overflow用户

发布于 2020-12-16 16:08:00

是的,Bouncy Castle TLSClient可以使用不常见的/非操作系统密码套件:我能够创建另一个CCM_8服务器,用于使用Openssl的s_server进行测试:openssl s_server -cert ./selfsigned.pem -cipher ECDHE-ECDSA-AES128-CCM8 -www,我的Bouncy Castle TLSClient能够与其进行密钥交换。所以这只是我如何使用Bouncy Castle为TLSClient的证书创建证书的一个bug。(您可以使用Openssl s_server中的TLS参数进行TLS证书请求,并强制客户端使用证书回复,如果未提供证书,则返回失败)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65315914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档