+ NULL, NULL)))
+ return 0;
+
+ if (idx == 2) {
+ /* Create the PSK */
+ const SSL_CIPHER *cipher = NULL;
+ const unsigned char key[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
+ 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
+ 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
+ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b,
+ 0x2c, 0x2d, 0x2e, 0x2f
+ };
+
+ cipher = SSL_CIPHER_find(*clientssl, TLS13_AES_256_GCM_SHA384_BYTES);
+ psk = SSL_SESSION_new();
+ if (!TEST_ptr(psk)
+ || !TEST_ptr(cipher)
+ || !TEST_true(SSL_SESSION_set1_master_key(psk, key,
+ sizeof(key)))
+ || !TEST_true(SSL_SESSION_set_cipher(psk, cipher))
+ || !TEST_true(
+ SSL_SESSION_set_protocol_version(psk,
+ TLS1_3_VERSION))
+ /*
+ * We just choose an arbitrary value for max_early_data which
+ * should be big enough for testing purposes.
+ */
+ || !TEST_true(SSL_SESSION_set_max_early_data(psk, 0x100))) {
+ SSL_SESSION_free(psk);
+ psk = NULL;
+ return 0;
+ }
+
+ if (sess != NULL)
+ *sess = psk;
+ return 1;
+ }
+
+ if (sess == NULL)
+ return 1;
+
+ if (!TEST_true(create_ssl_connection(*serverssl, *clientssl,
+ SSL_ERROR_NONE)))