在 JCA 中定义 TLS 的密码套件
我希望使用 JCA 在 TLS 中支持以下密码套件:
- TLS_PSK_WITH_3DES_EDE_CBC_SHA
- TLS_PSK_WITH_AES_128_CBC_SHA
- TLS_PSK_WITH_NULL_SHA
- TLS_PSK_WITH_AES_128_CBC_SHA256
- TLS_PSK_WITH_NULL_SHA256
它们可在 JDK7 但不是 JDK6,也不是 BouncyCastle。
如果我想要JDK6中的支持,我可以扩展JCA来实现对这些PSK扩展的支持,使用SPI、JSSE的提供者和回调方法。我已经可以在运行时重新定义或添加新的密码实现,但我不确定 JCA 是否提供足够的粒度来在 TLS 中添加新的密码套件。
I want the support of the following cipher suites in TLS using JCA:
- TLS_PSK_WITH_3DES_EDE_CBC_SHA
- TLS_PSK_WITH_AES_128_CBC_SHA
- TLS_PSK_WITH_NULL_SHA
- TLS_PSK_WITH_AES_128_CBC_SHA256
- TLS_PSK_WITH_NULL_SHA256
They are available in JDK7 but not JDK6, neither BouncyCastle.
If I want the support in JDK6, could I extends JCA to implement the support of these PSK extensions, using SPI, providers and callback methods of JSSE. I can already redefine or add new cipher implementations on runtime, but I'm not sure JCA offers enough granularity to add new cipher suites in TLS.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
干净的方法是实现您自己的 SSLSocketFactory< /a>.
如果您想尝试添加,我只看到通过反射修改内部类的方法。
相关类是:
com.sun.net.ssl.internal.ssl.CipherSuite
它有一个重载的私有静态方法“add”,用于将密码实现添加到支持的列表中。也许值得一试。
The clean way would be to implement your own SSLSocketFactory.
If you want to try adding I only see the way to modify the internal classes via reflection.
The relevant class is:
com.sun.net.ssl.internal.ssl.CipherSuite
It has an overloaded private static method "add" for adding cipher implementations to the supported list. May be worth a try.
仍然不确定这是否可能,但我们发现几个 TLS PSK 密码套件的实现 杰西图书馆。
Still not sure it is possible or not, but we found an implementation of several TLS PSK cipher suites for the Jessie Library.