aboutsummaryrefslogtreecommitdiff
path: root/src/testcurl/https/tls_extension_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testcurl/https/tls_extension_test.c')
-rw-r--r--src/testcurl/https/tls_extension_test.c42
1 files changed, 16 insertions, 26 deletions
diff --git a/src/testcurl/https/tls_extension_test.c b/src/testcurl/https/tls_extension_test.c
index 84ed374f..e3b95299 100644
--- a/src/testcurl/https/tls_extension_test.c
+++ b/src/testcurl/https/tls_extension_test.c
@@ -27,19 +27,9 @@
27 27
28#include "platform.h" 28#include "platform.h"
29#include "microhttpd.h" 29#include "microhttpd.h"
30#include "gnutls_int.h"
31#include "gnutls_handshake.h" // MHD_gtls_send_handshake
32#include "gnutls_num.h" // MHD_gtls_write_x
33#include "common.h" // MHD_gtls_version_x
34
35
36#include "tls_test_common.h" 30#include "tls_test_common.h"
37#define MAX_EXT_DATA_LENGTH 256 31#define MAX_EXT_DATA_LENGTH 256
38 32
39extern int
40MHD__gnutls_copy_ciphersuites (MHD_gtls_session_t session,
41 opaque * ret_data, size_t ret_data_size);
42
43extern const char srv_key_pem[]; 33extern const char srv_key_pem[];
44extern const char srv_self_signed_cert_pem[]; 34extern const char srv_self_signed_cert_pem[];
45 35
@@ -53,7 +43,7 @@ extern const char srv_self_signed_cert_pem[];
53 * @return 0 on successful test completion, -1 otherwise 43 * @return 0 on successful test completion, -1 otherwise
54 */ 44 */
55static int 45static int
56test_hello_extension (MHD_gtls_session_t session, extensions_t exten_t, 46test_hello_extension (gnutls_session_t session, extensions_t exten_t,
57 int ext_count, int ext_length) 47 int ext_count, int ext_length)
58{ 48{
59 int i, sd, ret = 0, pos = 0; 49 int i, sd, ret = 0, pos = 0;
@@ -117,7 +107,7 @@ test_hello_extension (MHD_gtls_session_t session, extensions_t exten_t,
117 107
118 /* generate session client random */ 108 /* generate session client random */
119 memset (session->security_parameters.client_random, 0, TLS_RANDOM_SIZE); 109 memset (session->security_parameters.client_random, 0, TLS_RANDOM_SIZE);
120 MHD_gtls_write_uint32 (time (NULL), rnd); 110 gnutls_write_uint32 (time (NULL), rnd);
121 if (GC_OK != MHD_gc_nonce ((char *) &rnd[4], TLS_RANDOM_SIZE - 4)) abort (); 111 if (GC_OK != MHD_gc_nonce ((char *) &rnd[4], TLS_RANDOM_SIZE - 4)) abort ();
122 memcpy (session->security_parameters.client_random, rnd, TLS_RANDOM_SIZE); 112 memcpy (session->security_parameters.client_random, rnd, TLS_RANDOM_SIZE);
123 memcpy (&data[pos], rnd, TLS_RANDOM_SIZE); 113 memcpy (&data[pos], rnd, TLS_RANDOM_SIZE);
@@ -144,14 +134,14 @@ test_hello_extension (MHD_gtls_session_t session, extensions_t exten_t,
144 pos += 2; 134 pos += 2;
145 135
146 /* set extensions length = 2 type bytes + 2 length bytes + extension length */ 136 /* set extensions length = 2 type bytes + 2 length bytes + extension length */
147 MHD_gtls_write_uint16 (exten_data_len, &data[pos]); 137 gnutls_write_uint16 (exten_data_len, &data[pos]);
148 pos += 2; 138 pos += 2;
149 for (i = 0; i < ext_count; ++i) 139 for (i = 0; i < ext_count; ++i)
150 { 140 {
151 /* write extension type */ 141 /* write extension type */
152 MHD_gtls_write_uint16 (exten_t, &data[pos]); 142 gnutls_write_uint16 (exten_t, &data[pos]);
153 pos += 2; 143 pos += 2;
154 MHD_gtls_write_uint16 (ext_length, &data[pos]); 144 gnutls_write_uint16 (ext_length, &data[pos]);
155 pos += 2; 145 pos += 2;
156 /* we might want to generate random data here */ 146 /* we might want to generate random data here */
157 memset (&data[pos], 0, ext_length); 147 memset (&data[pos], 0, ext_length);
@@ -165,7 +155,7 @@ test_hello_extension (MHD_gtls_session_t session, extensions_t exten_t,
165 goto cleanup; 155 goto cleanup;
166 } 156 }
167 157
168 MHD__gnutls_transport_set_ptr (session, (MHD_gnutls_transport_ptr_t) (long) sd); 158 gnutls_transport_set_ptr (session, (MHD_gnutls_transport_ptr_t) (long) sd);
169 159
170 if (gen_test_file_url (url, DEAMON_TEST_PORT)) 160 if (gen_test_file_url (url, DEAMON_TEST_PORT))
171 { 161 {
@@ -174,15 +164,15 @@ test_hello_extension (MHD_gtls_session_t session, extensions_t exten_t,
174 } 164 }
175 165
176 /* this should crash the server */ 166 /* this should crash the server */
177 ret = MHD_gtls_send_handshake (session, data, datalen, 167 ret = gnutls_send_handshake (session, data, datalen,
178 GNUTLS_HANDSHAKE_CLIENT_HELLO); 168 GNUTLS_HANDSHAKE_CLIENT_HELLO);
179 169
180 /* advance to STATE2 */ 170 /* advance to STATE2 */
181 session->internals.handshake_state = STATE2; 171 session->internals.handshake_state = STATE2;
182 ret = MHD__gnutls_handshake (session); 172 ret = gnutls_handshake (session);
183 ret = MHD__gnutls_bye (session, GNUTLS_SHUT_WR); 173 ret = gnutls_bye (session, GNUTLS_SHUT_WR);
184 174
185 MHD_gnutls_free (data); 175 gnutls_free (data);
186 176
187 /* make sure daemon is still functioning */ 177 /* make sure daemon is still functioning */
188 if (CURLE_OK != send_curl_req (url, &cbc, "AES128-SHA", 178 if (CURLE_OK != send_curl_req (url, &cbc, "AES128-SHA",
@@ -195,7 +185,7 @@ test_hello_extension (MHD_gtls_session_t session, extensions_t exten_t,
195cleanup: 185cleanup:
196 if (sd != -1) 186 if (sd != -1)
197 close (sd); 187 close (sd);
198 MHD_gnutls_free (cbc.buf); 188 gnutls_free (cbc.buf);
199 return ret; 189 return ret;
200} 190}
201 191
@@ -205,10 +195,10 @@ main (int argc, char *const *argv)
205 int i, errorCount = 0; 195 int i, errorCount = 0;
206 FILE *test_fd; 196 FILE *test_fd;
207 struct MHD_Daemon *d; 197 struct MHD_Daemon *d;
208 MHD_gtls_session_t session; 198 gnutls_session_t session;
209 MHD_gnutls_datum_t key; 199 gnutls_datum_t key;
210 MHD_gnutls_datum_t cert; 200 gnutls_datum_t cert;
211 MHD_gtls_cert_credentials_t xcred; 201 gnutls_certificate_credentials_t xcred;
212 202
213 int ext_arr[] = { GNUTLS_EXTENSION_SERVER_NAME, 203 int ext_arr[] = { GNUTLS_EXTENSION_SERVER_NAME,
214 -1 204 -1