是否可以从Java Bouncy Castle使用SSL / TLS连接到远程服务器,然后获取服务器支持的密码套件列表?我需要接收它的HEX值,如果可能的话还要接收' string-constant'它(也许只是客户知道它自己的那些)。
我需要使用任何协议(HTTPS,AMQPS,STOMPS,...)连接到任何端口。
答案 0 :(得分:2)
您可以做的是编写一个CipherSuiteFinder
类,该类调用重写的TlsClientProtocol
,只为服务器提供单个密码套件。为此,您需要创建一个派生自DefaultTlsClient
AbstractTlsClient
的新类。
提供协议并收到响应后,您关闭连接。如果服务器没有错误,它接受了单个提供的密码套件,这意味着这个密码套件存在。 然后按照TLS标准关闭连接,关闭连接,只在完成所有操作后关闭套接字。
现在CipherSuiteFinder
必须遍历密码套件并收集结果。
HTTP和STOMP等顶级协议无关紧要;它们仅在建立TLS连接后调用。