@@ -78,26 +78,21 @@ static void memrnd(void *s, size_t n)
78
78
* byte ++ = rand ();
79
79
}
80
80
81
- FIXTURE (tls_basic )
82
- {
83
- int fd , cfd ;
84
- bool notls ;
85
- };
86
-
87
- FIXTURE_SETUP (tls_basic )
81
+ static void ulp_sock_pair (struct __test_metadata * _metadata ,
82
+ int * fd , int * cfd , bool * notls )
88
83
{
89
84
struct sockaddr_in addr ;
90
85
socklen_t len ;
91
86
int sfd , ret ;
92
87
93
- self -> notls = false;
88
+ * notls = false;
94
89
len = sizeof (addr );
95
90
96
91
addr .sin_family = AF_INET ;
97
92
addr .sin_addr .s_addr = htonl (INADDR_ANY );
98
93
addr .sin_port = 0 ;
99
94
100
- self -> fd = socket (AF_INET , SOCK_STREAM , 0 );
95
+ * fd = socket (AF_INET , SOCK_STREAM , 0 );
101
96
sfd = socket (AF_INET , SOCK_STREAM , 0 );
102
97
103
98
ret = bind (sfd , & addr , sizeof (addr ));
@@ -108,26 +103,37 @@ FIXTURE_SETUP(tls_basic)
108
103
ret = getsockname (sfd , & addr , & len );
109
104
ASSERT_EQ (ret , 0 );
110
105
111
- ret = connect (self -> fd , & addr , sizeof (addr ));
106
+ ret = connect (* fd , & addr , sizeof (addr ));
112
107
ASSERT_EQ (ret , 0 );
113
108
114
- self -> cfd = accept (sfd , & addr , & len );
115
- ASSERT_GE (self -> cfd , 0 );
109
+ * cfd = accept (sfd , & addr , & len );
110
+ ASSERT_GE (* cfd , 0 );
116
111
117
112
close (sfd );
118
113
119
- ret = setsockopt (self -> fd , IPPROTO_TCP , TCP_ULP , "tls" , sizeof ("tls" ));
114
+ ret = setsockopt (* fd , IPPROTO_TCP , TCP_ULP , "tls" , sizeof ("tls" ));
120
115
if (ret != 0 ) {
121
116
ASSERT_EQ (errno , ENOENT );
122
- self -> notls = true;
117
+ * notls = true;
123
118
printf ("Failure setting TCP_ULP, testing without tls\n" );
124
119
return ;
125
120
}
126
121
127
- ret = setsockopt (self -> cfd , IPPROTO_TCP , TCP_ULP , "tls" , sizeof ("tls" ));
122
+ ret = setsockopt (* cfd , IPPROTO_TCP , TCP_ULP , "tls" , sizeof ("tls" ));
128
123
ASSERT_EQ (ret , 0 );
129
124
}
130
125
126
+ FIXTURE (tls_basic )
127
+ {
128
+ int fd , cfd ;
129
+ bool notls ;
130
+ };
131
+
132
+ FIXTURE_SETUP (tls_basic )
133
+ {
134
+ ulp_sock_pair (_metadata , & self -> fd , & self -> cfd , & self -> notls );
135
+ }
136
+
131
137
FIXTURE_TEARDOWN (tls_basic )
132
138
{
133
139
close (self -> fd );
@@ -199,60 +205,21 @@ FIXTURE_VARIANT_ADD(tls, 13_sm4_ccm)
199
205
FIXTURE_SETUP (tls )
200
206
{
201
207
struct tls_crypto_info_keys tls12 ;
202
- struct sockaddr_in addr ;
203
- socklen_t len ;
204
- int sfd , ret ;
205
-
206
- self -> notls = false;
207
- len = sizeof (addr );
208
+ int ret ;
208
209
209
210
tls_crypto_info_init (variant -> tls_version , variant -> cipher_type ,
210
211
& tls12 );
211
212
212
- addr .sin_family = AF_INET ;
213
- addr .sin_addr .s_addr = htonl (INADDR_ANY );
214
- addr .sin_port = 0 ;
213
+ ulp_sock_pair (_metadata , & self -> fd , & self -> cfd , & self -> notls );
215
214
216
- self -> fd = socket (AF_INET , SOCK_STREAM , 0 );
217
- sfd = socket (AF_INET , SOCK_STREAM , 0 );
218
-
219
- ret = bind (sfd , & addr , sizeof (addr ));
220
- ASSERT_EQ (ret , 0 );
221
- ret = listen (sfd , 10 );
222
- ASSERT_EQ (ret , 0 );
215
+ if (self -> notls )
216
+ return ;
223
217
224
- ret = getsockname ( sfd , & addr , & len );
218
+ ret = setsockopt ( self -> fd , SOL_TLS , TLS_TX , & tls12 , tls12 . len );
225
219
ASSERT_EQ (ret , 0 );
226
220
227
- ret = connect (self -> fd , & addr , sizeof ( addr ) );
221
+ ret = setsockopt (self -> cfd , SOL_TLS , TLS_RX , & tls12 , tls12 . len );
228
222
ASSERT_EQ (ret , 0 );
229
-
230
- ret = setsockopt (self -> fd , IPPROTO_TCP , TCP_ULP , "tls" , sizeof ("tls" ));
231
- if (ret != 0 ) {
232
- self -> notls = true;
233
- printf ("Failure setting TCP_ULP, testing without tls\n" );
234
- }
235
-
236
- if (!self -> notls ) {
237
- ret = setsockopt (self -> fd , SOL_TLS , TLS_TX , & tls12 ,
238
- tls12 .len );
239
- ASSERT_EQ (ret , 0 );
240
- }
241
-
242
- self -> cfd = accept (sfd , & addr , & len );
243
- ASSERT_GE (self -> cfd , 0 );
244
-
245
- if (!self -> notls ) {
246
- ret = setsockopt (self -> cfd , IPPROTO_TCP , TCP_ULP , "tls" ,
247
- sizeof ("tls" ));
248
- ASSERT_EQ (ret , 0 );
249
-
250
- ret = setsockopt (self -> cfd , SOL_TLS , TLS_RX , & tls12 ,
251
- tls12 .len );
252
- ASSERT_EQ (ret , 0 );
253
- }
254
-
255
- close (sfd );
256
223
}
257
224
258
225
FIXTURE_TEARDOWN (tls )
@@ -1355,62 +1322,25 @@ TEST(non_established) {
1355
1322
1356
1323
TEST (keysizes ) {
1357
1324
struct tls12_crypto_info_aes_gcm_256 tls12 ;
1358
- struct sockaddr_in addr ;
1359
- int sfd , ret , fd , cfd ;
1360
- socklen_t len ;
1325
+ int ret , fd , cfd ;
1361
1326
bool notls ;
1362
1327
1363
- notls = false;
1364
- len = sizeof (addr );
1365
-
1366
1328
memset (& tls12 , 0 , sizeof (tls12 ));
1367
1329
tls12 .info .version = TLS_1_2_VERSION ;
1368
1330
tls12 .info .cipher_type = TLS_CIPHER_AES_GCM_256 ;
1369
1331
1370
- addr .sin_family = AF_INET ;
1371
- addr .sin_addr .s_addr = htonl (INADDR_ANY );
1372
- addr .sin_port = 0 ;
1373
-
1374
- fd = socket (AF_INET , SOCK_STREAM , 0 );
1375
- sfd = socket (AF_INET , SOCK_STREAM , 0 );
1376
-
1377
- ret = bind (sfd , & addr , sizeof (addr ));
1378
- ASSERT_EQ (ret , 0 );
1379
- ret = listen (sfd , 10 );
1380
- ASSERT_EQ (ret , 0 );
1381
-
1382
- ret = getsockname (sfd , & addr , & len );
1383
- ASSERT_EQ (ret , 0 );
1384
-
1385
- ret = connect (fd , & addr , sizeof (addr ));
1386
- ASSERT_EQ (ret , 0 );
1387
-
1388
- ret = setsockopt (fd , IPPROTO_TCP , TCP_ULP , "tls" , sizeof ("tls" ));
1389
- if (ret != 0 ) {
1390
- notls = true;
1391
- printf ("Failure setting TCP_ULP, testing without tls\n" );
1392
- }
1332
+ ulp_sock_pair (_metadata , & fd , & cfd , & notls );
1393
1333
1394
1334
if (!notls ) {
1395
1335
ret = setsockopt (fd , SOL_TLS , TLS_TX , & tls12 ,
1396
1336
sizeof (tls12 ));
1397
1337
EXPECT_EQ (ret , 0 );
1398
- }
1399
-
1400
- cfd = accept (sfd , & addr , & len );
1401
- ASSERT_GE (cfd , 0 );
1402
-
1403
- if (!notls ) {
1404
- ret = setsockopt (cfd , IPPROTO_TCP , TCP_ULP , "tls" ,
1405
- sizeof ("tls" ));
1406
- EXPECT_EQ (ret , 0 );
1407
1338
1408
1339
ret = setsockopt (cfd , SOL_TLS , TLS_RX , & tls12 ,
1409
1340
sizeof (tls12 ));
1410
1341
EXPECT_EQ (ret , 0 );
1411
1342
}
1412
1343
1413
- close (sfd );
1414
1344
close (fd );
1415
1345
close (cfd );
1416
1346
}
0 commit comments