如何使用SSL_CTX传递EC点格式列表?

如何使用SSL_CTX传递EC点格式列表?,ssl,openssl,cryptography,tls1.2,elliptic-curve,Ssl,Openssl,Cryptography,Tls1.2,Elliptic Curve,我需要将选定的EC点格式列表传递给服务器,或者希望限制服务器使用选定的EC点。在生成SSL_CTX时,OpenSSL API可以实现哪些功能。我可以看到openssl 1.0.2*版本有这种支持,但我找不到openssl API来做同样的事情。没有API来做这件事。只有一个API可用于从SSL对象获取协商的EC点格式: SSL_get0_ec_point_formats() 不能限制服务器通过API协商的EC点格式。尽管奇怪的是,您是正确的,SSL_CTX对象似乎确实支持它——但它似乎从未通过

我需要将选定的EC点格式列表传递给服务器,或者希望限制服务器使用选定的EC点。在生成SSL_CTX时,OpenSSL API可以实现哪些功能。我可以看到openssl 1.0.2*版本有这种支持,但我找不到openssl API来做同样的事情。

没有API来做这件事。只有一个API可用于从SSL对象获取协商的EC点格式:

SSL_get0_ec_point_formats()
不能限制服务器通过API协商的EC点格式。尽管奇怪的是,您是正确的,SSL_CTX对象似乎确实支持它——但它似乎从未通过API公开过

在1.0.2中,您仍然可以通过直接操作SSL_CTX tlsext_ecpointformatlist和tlsext_ecpointformatlist_长度字段来实现所需的功能。我强烈建议不要这样做,因为OpenSSL 1.1.0中删除了该功能,因为在该版本中,这些结构是不透明的


真的,尽管我会问你为什么要这么做???

没有API可以这么做。只有一个API可用于从SSL对象获取协商的EC点格式:

SSL_get0_ec_point_formats()
不能限制服务器通过API协商的EC点格式。尽管奇怪的是,您是正确的,SSL_CTX对象似乎确实支持它——但它似乎从未通过API公开过

在1.0.2中,您仍然可以通过直接操作SSL_CTX tlsext_ecpointformatlist和tlsext_ecpointformatlist_长度字段来实现所需的功能。我强烈建议不要这样做,因为OpenSSL 1.1.0中删除了该功能,因为在该版本中,这些结构是不透明的


真的,虽然我会问你为什么要这么做???

@MaartenBodewes先注意你的语言,如果你不懂这个问题,再问一遍。。。检查@Matt Caswell的回复,他已经清楚地解释了我的意思…@MaartenBodewes先注意你的语言,如果你不理解这个问题,再问一遍。。。查看@Matt Caswell的回复,他已经清楚地解释了我的意思……谢谢你的回复。实际上,我只是想知道如何限制服务器只支持未压缩的ECpoint,或者作为一个客户机只将未压缩的ECpoint作为客户机helloRight中ECpoint扩展的一部分公开。正如我在回答中所说,这不能通过API直接实现。要做到这一点,您必须访问SSL/SSL_CTX对象内部。如果这是一项要求,那么我建议您在OpenSSL github站点上提出一个问题:感谢您的回复。实际上,我只是想知道如何限制服务器只支持未压缩的ECpoint,或者作为一个客户机只将未压缩的ECpoint作为客户机helloRight中ECpoint扩展的一部分公开。正如我在回答中所说,这不能通过API直接实现。要做到这一点,您必须访问SSL/SSL_CTX对象内部。如果这是一项要求,那么我建议您在OpenSSL github站点上提出一个问题: