+ if (!TEST_true(create_ssl_ctx_pair(DTLS_server_method(),
+ DTLS_client_method(),
+ DTLS1_VERSION, DTLS_MAX_VERSION,
+ &sctx, &cctx, cert, privkey)))
+ return 0;
+
+ if (idx >= TOTAL_FULL_HAND_RECORDS) {
+ /* We're going to do a resumption handshake. Get a session first. */
+ if (!TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl,
+ NULL, NULL))
+ || !TEST_true(create_ssl_connection(serverssl, clientssl,
+ SSL_ERROR_NONE))
+ || !TEST_ptr(sess = SSL_get1_session(clientssl)))
+ goto end;
+
+ SSL_shutdown(clientssl);
+ SSL_shutdown(serverssl);
+ SSL_free(serverssl);
+ SSL_free(clientssl);
+ serverssl = clientssl = NULL;
+
+ cli_to_srv_epoch0 = CLI_TO_SRV_RESUME_EPOCH_0_RECS;
+ cli_to_srv_epoch1 = CLI_TO_SRV_RESUME_EPOCH_1_RECS;
+ srv_to_cli_epoch0 = SRV_TO_CLI_RESUME_EPOCH_0_RECS;
+ idx -= TOTAL_FULL_HAND_RECORDS;
+ } else {
+ cli_to_srv_epoch0 = CLI_TO_SRV_EPOCH_0_RECS;
+ cli_to_srv_epoch1 = CLI_TO_SRV_EPOCH_1_RECS;
+ srv_to_cli_epoch0 = SRV_TO_CLI_EPOCH_0_RECS;