Does the Server Hello break the RFC? There seems to be contradiction in RFC.
A customer claims our device (Citrix Netscaler) returns Extension (ec_point_formats: EC point format: uncompressed) when they do not request it. Because of this they claim our device does not follow the RFCs.
From the RFCs I find these two relevant sections: extensions:
see rfc3546 sec 2.3. Hello Extensions
Note that for all extension types (including those defined in future), the extension type MUST NOT appear in the extended server hello unless the same extension type appeared in the corresponding client hello. Thus clients MUST abort the handshake if they receive an extension type in the extended server hello that they did not request in the associated (extended) client hello.
rfc 4492 and 8422 sec 4 paragraph 3:
The client MUST NOT include these extensions in the ClientHello message if it does not propose any ECC cipher suites. A client that proposes ECC cipher suites may choose not to include these extensions. In this case, the server is free to choose any one of the elliptic curves or point formats listed in Section 5. That section also describes the structure and processing of these extensions in greater detail.
TLSv1.2 Record Layer: Handshake Protocol: Client Hello Content Type: Handshake (22) Version: TLS 1.2 (0x0303) Length: 63 Handshake Protocol: Client Hello Handshake Type: Client Hello (1) Length: 59 Version: TLS 1.2 (0x0303) Random Session ID Length: 0 Cipher Suites Length: 20 Cipher Suites (10 suites) Compression Methods Length: 1 Compression Methods (1 method)
TLSv1.2 Record Layer: Handshake Protocol: Server Hello Content Type: Handshake (22) Version: TLS 1.2 (0x0303) Length: 82 Handshake Protocol: Server Hello Handshake Type: Server Hello (2) Length: 78 Version: TLS 1.2 (0x0303) Random Session ID Length: 32 Session ID: bfe64de5d94a7c4c12bdb419b6938efcbb70429cd216fa1c... Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Compression Method: null (0) Extensions Length: 6 Extension: ec_point_formats Type: ec_point_formats (0x000b) Length: 2 EC point formats Length: 1 Elliptic curves point formats (1) EC point format: uncompressed (0)