Skip to content

Commit 12ab759

Browse files
committed
tests: net: sockets: tls_configurations: adapt to Mbed TLS 4.0
- RSA based key exchanges were removed so the corresponding test case is also removed. It has been replaced with a PSK one, still using TLS 1.2. - Configuration overlay files were removed because thank to ciphersuite Kconfig it's now pretty trivial and compact to select what's required for a connection. pytest script was updated accordingly. Signed-off-by: Valerio Setti <vsetti@baylibre.com>
1 parent 19b8150 commit 12ab759

File tree

7 files changed

+38
-80
lines changed

7 files changed

+38
-80
lines changed

‎tests/net/socket/tls_configurations/overlay-ec.conf‎

Lines changed: 0 additions & 7 deletions
This file was deleted.

‎tests/net/socket/tls_configurations/overlay-rsa.conf‎

Lines changed: 0 additions & 7 deletions
This file was deleted.

‎tests/net/socket/tls_configurations/overlay-tls12.conf‎

Lines changed: 0 additions & 8 deletions
This file was deleted.

‎tests/net/socket/tls_configurations/overlay-tls13.conf‎

Lines changed: 0 additions & 8 deletions
This file was deleted.

‎tests/net/socket/tls_configurations/pytest/test_app_vs_openssl.py‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,17 @@ def get_arguments_from_server_type(server_type, port):
1717
certs_path = os.path.join(this_path, "..", "credentials")
1818

1919
args = ["openssl", "s_server"]
20-
if server_type == "1.2-rsa":
21-
args.extend(["-cert", "{}/rsa.crt".format(certs_path),
22-
"-key", "{}/rsa-priv.key".format(certs_path),
23-
"-certform", "PEM",
24-
"-tls1_2",
25-
"-cipher", "AES128-SHA256,AES256-SHA256"])
20+
if server_type == "1.2-psk":
21+
args.extend(["-tls1_2",
22+
"-cipher", "PSK-AES256-CBC-SHA384",
23+
"-psk_identity", "PSK_identity", "-psk", "0102030405",
24+
"-nocert"])
2625
elif server_type == "1.2-ec":
2726
args.extend(["-cert", "{}/ec.crt".format(certs_path),
2827
"-key", "{}/ec-priv.key".format(certs_path),
2928
"-certform", "PEM",
3029
"-tls1_2",
31-
"-cipher", "ECDHE-ECDSA-AES128-SHA256"])
30+
"-cipher", "ECDHE-ECDSA-AES128-GCM-SHA256"])
3231
elif server_type == "1.3-ephemeral":
3332
args.extend(["-cert", "{}/ec.crt".format(certs_path),
3433
"-key", "{}/ec-priv.key".format(certs_path),
@@ -59,7 +58,7 @@ def openssl_server(server_type, port):
5958
logger.info("Server type: " + server_type)
6059
args = get_arguments_from_server_type(server_type, port)
6160
logger.info("Launch command:")
62-
print(" ".join(args))
61+
logger.info(" ".join(args))
6362
openssl = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
6463

6564
try:

‎tests/net/socket/tls_configurations/src/main.c‎

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,18 @@ LOG_MODULE_REGISTER(tls_configuration_sample, LOG_LEVEL_INF);
1616
#include <zephyr/net/net_if.h>
1717
#include <zephyr/sys/util.h>
1818

19-
/* This include is required for the definition of the Mbed TLS internal symbol
20-
* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED.
21-
*/
22-
#include <mbedtls/ssl_ciphersuites.h>
19+
#if defined(CONFIG_MBEDTLS_CIPHERSUITE_TLS_PSK_WITH_AES_256_CBC_SHA384) || \
20+
defined(CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED)
21+
#define USE_PSK_KEY_EXCHANGE
22+
#endif
2323

24-
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
24+
#if defined(USE_PSK_KEY_EXCHANGE)
2525
static const unsigned char psk[] = { 0x01, 0x02, 0x03, 0x04, 0x05 };
2626
static const char psk_id[] = "PSK_identity";
27-
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
27+
#endif /* USE_PSK_KEY_EXCHANGE */
2828

29-
/* Following certificates (*.inc files) are:
30-
* - generated from "create-certs.sh" script
31-
* - converted in C array shape in the CMakeList file
32-
*/
33-
#if defined(CONFIG_PSA_WANT_ALG_RSA_PKCS1V15_SIGN) || defined(CONFIG_PSA_WANT_ALG_RSA_PSS)
34-
#define USE_CERTIFICATE
35-
static const unsigned char certificate[] = {
36-
#include "rsa.crt.inc"
37-
};
38-
#elif defined(CONFIG_PSA_WANT_ALG_ECDSA)
29+
/* Server certificate is only used when not using PSK key exchanges for simplicity. */
30+
#if !defined(USE_PSK_KEY_EXCHANGE)
3931
#define USE_CERTIFICATE
4032
static const unsigned char certificate[] = {
4133
#include "ec.crt.inc"
@@ -51,7 +43,7 @@ enum {
5143
#if defined(USE_CERTIFICATE)
5244
CA_CERTIFICATE_TAG,
5345
#endif
54-
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
46+
#if defined(USE_PSK_KEY_EXCHANGE)
5547
PSK_TAG,
5648
#endif
5749
};
@@ -102,7 +94,7 @@ static int create_socket(void)
10294
#if defined(USE_CERTIFICATE)
10395
CA_CERTIFICATE_TAG,
10496
#endif
105-
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
97+
#if defined(USE_PSK_KEY_EXCHANGE)
10698
PSK_TAG,
10799
#endif
108100
};
@@ -159,7 +151,7 @@ static int setup_credentials(void)
159151
}
160152
#endif
161153

162-
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
154+
#if defined(USE_PSK_KEY_EXCHANGE)
163155
err = tls_credential_add(PSK_TAG,
164156
TLS_CREDENTIAL_PSK,
165157
psk,

‎tests/net/socket/tls_configurations/testcase.yaml‎

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,45 +8,42 @@ common:
88
- native_sim
99
harness: pytest
1010
tests:
11-
net.sockets.tls12.rsa_kex:
12-
extra_args:
13-
- EXTRA_CONF_FILE=overlay-tls12.conf;overlay-rsa.conf
11+
net.sockets.tls12.psk_kex:
1412
extra_configs:
15-
- CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_ENABLED=y
16-
- CONFIG_SERVER_PORT=4000
13+
- CONFIG_MBEDTLS_CIPHERSUITE_TLS_PSK_WITH_AES_256_CBC_SHA384=y
14+
- CONFIG_SERVER_PORT=4001
1715
harness_config:
18-
pytest_args: ["--server-type", "1.2-rsa", "--port", "4000"]
16+
pytest_args: ["--server-type", "1.2-psk", "--port", "4001"]
1917
net.sockets.tls12.ec_kex:
20-
extra_args:
21-
- EXTRA_CONF_FILE=overlay-tls12.conf;overlay-ec.conf
2218
extra_configs:
23-
- CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED=y
24-
- CONFIG_SERVER_PORT=4001
19+
- CONFIG_MBEDTLS_CIPHERSUITE_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256=y
20+
- CONFIG_SERVER_PORT=4002
2521
harness_config:
26-
pytest_args: ["--server-type", "1.2-ec", "--port", "4001"]
22+
pytest_args: ["--server-type", "1.2-ec", "--port", "4002"]
2723
net.sockets.tls13.ephemeral_kex:
28-
extra_args:
29-
- EXTRA_CONF_FILE=overlay-tls13.conf;overlay-ec.conf
3024
extra_configs:
25+
- CONFIG_MBEDTLS_CIPHERSUITE_TLS1_3_AES_256_GCM_SHA384=y
3126
- CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED=y
32-
- CONFIG_SERVER_PORT=4002
27+
- CONFIG_PSA_WANT_ALG_SHA_256=y # for certificate verification
28+
- CONFIG_SERVER_PORT=4003
3329
harness_config:
34-
pytest_args: ["--server-type", "1.3-ephemeral", "--port", "4002"]
30+
pytest_args: ["--server-type", "1.3-ephemeral", "--port", "4003"]
3531
net.sockets.tls13.ephemeral_kex.tickets:
36-
extra_args:
37-
- EXTRA_CONF_FILE=overlay-tls13.conf;overlay-ec.conf
3832
extra_configs:
3933
- CONFIG_MBEDTLS_SSL_SESSION_TICKETS=y
34+
- CONFIG_MBEDTLS_CIPHERSUITE_TLS1_3_AES_256_GCM_SHA384=y
4035
- CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED=y
41-
- CONFIG_SERVER_PORT=4003
36+
- CONFIG_PSA_WANT_ALG_SHA_256=y # for certificate verification
37+
- CONFIG_SERVER_PORT=4004
4238
harness_config:
43-
pytest_args: ["--server-type", "1.3-ephemeral-tickets", "--port", "4003"]
39+
pytest_args: ["--server-type", "1.3-ephemeral-tickets", "--port", "4004"]
4440
net.sockets.tls13.psk_kex.tickets:
45-
extra_args:
46-
- EXTRA_CONF_FILE=overlay-tls13.conf
4741
extra_configs:
4842
- CONFIG_MBEDTLS_SSL_SESSION_TICKETS=y
43+
- CONFIG_MBEDTLS_CIPHERSUITE_TLS1_3_AES_256_GCM_SHA384=y
4944
- CONFIG_MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED=y
50-
- CONFIG_SERVER_PORT=4004
45+
- CONFIG_PSA_WANT_ECC_SECP_R1_256=y # for certificate verification
46+
- CONFIG_PSA_WANT_ALG_SHA_256=y # for certificate verification
47+
- CONFIG_SERVER_PORT=4005
5148
harness_config:
52-
pytest_args: ["--server-type", "1.3-psk-tickets", "--port", "4004"]
49+
pytest_args: ["--server-type", "1.3-psk-tickets", "--port", "4005"]

0 commit comments

Comments
 (0)