@@ -32,71 +32,7 @@ int main(int argc, char **argv)
32
32
BEGIN_TEST ();
33
33
EXPECT_SUCCESS (s2n_enable_tls13 ());
34
34
35
- /* Test client fails to parse certificate request with no extensions */
36
- {
37
- struct s2n_connection * client_conn ;
38
- EXPECT_NOT_NULL (client_conn = s2n_connection_new (S2N_CLIENT ));
39
- client_conn -> actual_protocol_version = S2N_TLS13 ;
40
-
41
- /* Write 0 length request context https://tools.ietf.org/html/rfc8446#section-4.3.2 */
42
- EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
43
- /* write total extension length */
44
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , 0 ));
45
-
46
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_MISSING_EXTENSION );
47
-
48
- EXPECT_SUCCESS (s2n_connection_free (client_conn ));
49
- }
50
-
51
- /* Test client fails to parse certificate request with wrong extension type */
52
- {
53
- struct s2n_connection * client_conn ;
54
- EXPECT_NOT_NULL (client_conn = s2n_connection_new (S2N_CLIENT ));
55
- client_conn -> actual_protocol_version = S2N_TLS13 ;
56
-
57
- /* Write supported versions extension instead */
58
- EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
59
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , s2n_extensions_server_supported_versions_size (client_conn )));
60
- EXPECT_SUCCESS (s2n_extensions_server_supported_versions_send (client_conn , & client_conn -> handshake .io ));
61
-
62
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_BAD_MESSAGE );
63
-
64
- EXPECT_SUCCESS (s2n_connection_free (client_conn ));
65
- }
66
-
67
- /* Test extension size greater than actual fails */
68
- {
69
- struct s2n_connection * client_conn ;
70
- EXPECT_NOT_NULL (client_conn = s2n_connection_new (S2N_CLIENT ));
71
- client_conn -> actual_protocol_version = S2N_TLS13 ;
72
-
73
- EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
74
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , s2n_extensions_server_signature_algorithms_size (client_conn ) + 3 ));
75
- EXPECT_SUCCESS (s2n_extensions_server_signature_algorithms_send (client_conn , & client_conn -> handshake .io ));
76
-
77
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_BAD_MESSAGE );
78
-
79
- EXPECT_SUCCESS (s2n_connection_free (client_conn ));
80
- }
81
-
82
- /* Test extension size smaller than actual fails */
83
- {
84
- struct s2n_connection * client_conn ;
85
- EXPECT_NOT_NULL (client_conn = s2n_connection_new (S2N_CLIENT ));
86
- client_conn -> actual_protocol_version = S2N_TLS13 ;
87
-
88
- /* Extension size read inside of parsing the extension will be greater than data available
89
- * as overall extension size written here is smaller than was actually written */
90
- EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
91
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , s2n_extensions_server_signature_algorithms_size (client_conn ) - 4 ));
92
- EXPECT_SUCCESS (s2n_extensions_server_signature_algorithms_send (client_conn , & client_conn -> handshake .io ));
93
-
94
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_BAD_MESSAGE );
95
-
96
- EXPECT_SUCCESS (s2n_connection_free (client_conn ));
97
- }
98
-
99
- /* Test correct extension (sig_alg) */
35
+ /* Test correct required extension (sig_alg) sent and received */
100
36
{
101
37
struct s2n_connection * conn ;
102
38
EXPECT_NOT_NULL (conn = s2n_connection_new (S2N_CLIENT ));
@@ -110,53 +46,17 @@ int main(int argc, char **argv)
110
46
EXPECT_SUCCESS (s2n_connection_free (conn ));
111
47
}
112
48
113
- /* Test correct extension (sig alg) with wrong length */
114
- {
115
- struct s2n_connection * client_conn ;
116
- EXPECT_NOT_NULL (client_conn = s2n_connection_new (S2N_CLIENT ));
117
- client_conn -> actual_protocol_version = S2N_TLS13 ;
118
-
119
- EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
120
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , s2n_extensions_server_signature_algorithms_size (client_conn )));
121
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , TLS_EXTENSION_SIGNATURE_ALGORITHMS ));
122
- /* From s2n_extensions_server_signature_algorithms_send() */
123
- uint16_t total_size = s2n_extensions_server_signature_algorithms_size (client_conn );
124
- uint16_t extension_size = total_size - 4 ;
125
- /* Subtract further to make the extension_size smaller than it actually is */
126
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , extension_size - 4 ));
127
- EXPECT_SUCCESS (s2n_send_supported_sig_scheme_list (client_conn , & client_conn -> handshake .io ));
128
-
129
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_BAD_MESSAGE );
130
-
131
- /* Test again with extension size larger than it actually is */
132
- EXPECT_SUCCESS (s2n_stuffer_wipe (& client_conn -> handshake .io ));
133
- EXPECT_TRUE (s2n_stuffer_data_available (& client_conn -> handshake .io ) == 0 );
134
-
135
- EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
136
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , s2n_extensions_server_signature_algorithms_size (client_conn )));
137
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , TLS_EXTENSION_SIGNATURE_ALGORITHMS ));
138
- total_size = s2n_extensions_server_signature_algorithms_size (client_conn );
139
- extension_size = total_size - 4 ;
140
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , extension_size + 4 ));
141
- EXPECT_SUCCESS (s2n_send_supported_sig_scheme_list (client_conn , & client_conn -> handshake .io ));
142
-
143
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_BAD_MESSAGE );
144
-
145
- EXPECT_SUCCESS (s2n_connection_free (client_conn ));
146
- }
147
-
148
- /* Test two of the same extension */
49
+ /* Test client fails to parse certificate request with no extensions */
149
50
{
150
51
struct s2n_connection * client_conn ;
151
52
EXPECT_NOT_NULL (client_conn = s2n_connection_new (S2N_CLIENT ));
152
53
client_conn -> actual_protocol_version = S2N_TLS13 ;
153
54
55
+ /* Write 0 length request context https://tools.ietf.org/html/rfc8446#section-4.3.2 */
154
56
EXPECT_SUCCESS (s2n_stuffer_write_uint8 (& client_conn -> handshake .io , 0 ));
155
- EXPECT_SUCCESS (s2n_stuffer_write_uint16 (& client_conn -> handshake .io , 2 * s2n_extensions_server_signature_algorithms_size (client_conn )));
156
- EXPECT_SUCCESS (s2n_extensions_server_signature_algorithms_send (client_conn , & client_conn -> handshake .io ));
157
- EXPECT_SUCCESS (s2n_extensions_server_signature_algorithms_send (client_conn , & client_conn -> handshake .io ));
57
+ EXPECT_SUCCESS (s2n_extension_list_send (S2N_EXTENSION_LIST_EMPTY , client_conn , & client_conn -> handshake .io ));
158
58
159
- EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_DUPLICATE_EXTENSION );
59
+ EXPECT_FAILURE_WITH_ERRNO (s2n_tls13_cert_req_recv (client_conn ), S2N_ERR_MISSING_EXTENSION );
160
60
161
61
EXPECT_SUCCESS (s2n_connection_free (client_conn ));
162
62
}
0 commit comments