使用Java Bouncy Castle列出服务器支持的密码套件

时间:2015-09-15 11:00:43

标签: java ssl cryptography bouncycastle tls1.2

是否可以从Java Bouncy Castle使用SSL / TLS连接到远程服务器,然后获取服务器支持的密码套件列表?我需要接收它的HEX值,如果可能的话还要接收' string-constant'它(也许只是客户知道它自己的那些)。

我需要使用任何协议(HTTPS,AMQPS,STOMPS,...)连接到任何端口。

1 个答案:

答案 0 :(得分:2)

您可以做的是编写一个CipherSuiteFinder类,该类调用重写的TlsClientProtocol,只为服务器提供单个密码套件。为此,您需要创建一个派生自DefaultTlsClient AbstractTlsClient的新类。

提供协议并收到响应后,您关闭连接。如果服务器没有错误,它接受了单个提供的密码套件,这意味着这个密码套件存在。 然后按照TLS标准关闭连接,关闭连接,只在完成所有操作后关闭套接字。

现在CipherSuiteFinder必须遍历密码套件并收集结果。

HTTP和STOMP等顶级协议无关紧要;它们仅在建立TLS连接后调用。