For some reason, Go TLS does send the ec_point_formats extension as part of ClientHello with the minimum required list, but does not for ServerHello.
Per RFC 8422, section 5.1.2, it is perfectly fine not to send this extension, and most clients are fine with it:
For backwards compatibility purposes, the point format list extension MAY still be included and contain exactly one value: the uncompressed point format (0). RFC 4492 specified that if this extension is missing, it means that only the uncompressed point format is supported, so interoperability with implementations that support the uncompressed format should work with or without the extension.
However, some old (7 year old) client implementations are expecting this extension to be present if an ECC cipher is selected, and consider the lack of it to be an error and interrupt the handshake as a result.
Other server implementations like BoringSSL or OpenSSL implement this extension and always send it as part of an ECC ServerHello. There is no need to implement any of the compression format as RFC 8422, section 5.1.2 deprecates them all. Only the uncompressed format MUST be part of the list:
This specification deprecates all but the uncompressed point format. Implementations of this document MUST support the uncompressed format for all of their supported curves and MUST NOT support other formats for curves defined in this specification.
I propose to send this extension with the uncompressed format as part of all ServerHello with an ECC cipher selected.
A patch will follow.
For some reason, Go TLS does send the
ec_point_formatsextension as part of ClientHello with the minimum required list, but does not for ServerHello.Per RFC 8422, section 5.1.2, it is perfectly fine not to send this extension, and most clients are fine with it:
However, some old (7 year old) client implementations are expecting this extension to be present if an ECC cipher is selected, and consider the lack of it to be an error and interrupt the handshake as a result.
Other server implementations like BoringSSL or OpenSSL implement this extension and always send it as part of an ECC ServerHello. There is no need to implement any of the compression format as RFC 8422, section 5.1.2 deprecates them all. Only the uncompressed format MUST be part of the list:
I propose to send this extension with the uncompressed format as part of all ServerHello with an ECC cipher selected.
A patch will follow.