Latest update
This commit is contained in:
@@ -4480,6 +4480,58 @@ static int test_export_key_mat_early(int idx)
|
||||
|
||||
return testresult;
|
||||
}
|
||||
|
||||
#define NUM_KEY_UPDATE_MESSAGES 40
|
||||
/*
|
||||
* Test KeyUpdate.
|
||||
*/
|
||||
static int test_key_update(void)
|
||||
{
|
||||
SSL_CTX *cctx = NULL, *sctx = NULL;
|
||||
SSL *clientssl = NULL, *serverssl = NULL;
|
||||
int testresult = 0, i, j;
|
||||
char buf[20];
|
||||
static char *mess = "A test message";
|
||||
|
||||
if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(),
|
||||
TLS_client_method(),
|
||||
TLS1_3_VERSION,
|
||||
0,
|
||||
&sctx, &cctx, cert, privkey))
|
||||
|| !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
|
||||
NULL, NULL))
|
||||
|| !TEST_true(create_ssl_connection(serverssl, clientssl,
|
||||
SSL_ERROR_NONE)))
|
||||
goto end;
|
||||
|
||||
for (j = 0; j < 2; j++) {
|
||||
/* Send lots of KeyUpdate messages */
|
||||
for (i = 0; i < NUM_KEY_UPDATE_MESSAGES; i++) {
|
||||
if (!TEST_true(SSL_key_update(clientssl,
|
||||
(j == 0)
|
||||
? SSL_KEY_UPDATE_NOT_REQUESTED
|
||||
: SSL_KEY_UPDATE_REQUESTED))
|
||||
|| !TEST_true(SSL_do_handshake(clientssl)))
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* Check that sending and receiving app data is ok */
|
||||
if (!TEST_int_eq(SSL_write(clientssl, mess, strlen(mess)), strlen(mess))
|
||||
|| !TEST_int_eq(SSL_read(serverssl, buf, sizeof(buf)),
|
||||
strlen(mess)))
|
||||
goto end;
|
||||
}
|
||||
|
||||
testresult = 1;
|
||||
|
||||
end:
|
||||
SSL_free(serverssl);
|
||||
SSL_free(clientssl);
|
||||
SSL_CTX_free(sctx);
|
||||
SSL_CTX_free(cctx);
|
||||
|
||||
return testresult;
|
||||
}
|
||||
#endif /* OPENSSL_NO_TLS1_3 */
|
||||
|
||||
static int test_ssl_clear(int idx)
|
||||
@@ -6170,6 +6222,7 @@ int setup_tests(void)
|
||||
ADD_ALL_TESTS(test_export_key_mat, 6);
|
||||
#ifndef OPENSSL_NO_TLS1_3
|
||||
ADD_ALL_TESTS(test_export_key_mat_early, 3);
|
||||
ADD_TEST(test_key_update);
|
||||
#endif
|
||||
ADD_ALL_TESTS(test_ssl_clear, 2);
|
||||
ADD_ALL_TESTS(test_max_fragment_len_ext, OSSL_NELEM(max_fragment_len_test));
|
||||
|
||||
Reference in New Issue
Block a user