summaryrefslogtreecommitdiff
path: root/nx_secure/src/nx_secure_tls_send_clienthello_extensions.c
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-06-08 10:03:52 +0200
committerGitHub <[email protected]>2026-06-08 10:03:52 +0200
commit1a0e9e43a03e37ddecfb6b49e9b078d6e1803d05 (patch)
treec60ec41b4ff4fd2d7566c505cbdd423ceddd65f3 /nx_secure/src/nx_secure_tls_send_clienthello_extensions.c
parent8b6e03ac30ab688bec02c69d42f2304b7f72a202 (diff)
parent4d88828b06d164a5b7e82152395a92254abcd6e4 (diff)
Merge pull request #391 from eclipse-threadx/devv6.5.1.202602_reldev
Merging changes for the v.6.5.1.202602 release
Diffstat (limited to 'nx_secure/src/nx_secure_tls_send_clienthello_extensions.c')
-rw-r--r--nx_secure/src/nx_secure_tls_send_clienthello_extensions.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/nx_secure/src/nx_secure_tls_send_clienthello_extensions.c b/nx_secure/src/nx_secure_tls_send_clienthello_extensions.c
index 0c9ce53b..08364122 100644
--- a/nx_secure/src/nx_secure_tls_send_clienthello_extensions.c
+++ b/nx_secure/src/nx_secure_tls_send_clienthello_extensions.c
@@ -451,6 +451,28 @@ UCHAR sig_algo = 0;
}
}
+ /* TLS 1.3 requires RSA-PSS instead of PKCS#1 v1.5 (RFC 8446 §4.2.3).
+ Map RSA + SHA-256/384/512 to rsa_pss_rsae_sha256/384/512 (0x0804/0805/0806). */
+ if (tls_session -> nx_secure_tls_1_3 &&
+ sig_algo == NX_SECURE_TLS_SIGNATURE_ALGORITHM_RSA)
+ {
+ switch (hash_algo)
+ {
+ case NX_SECURE_TLS_HASH_ALGORITHM_SHA256:
+ *signature_algorithm = 0x0804u; /* rsa_pss_rsae_sha256 */
+ break;
+ case NX_SECURE_TLS_HASH_ALGORITHM_SHA384:
+ *signature_algorithm = 0x0805u; /* rsa_pss_rsae_sha384 */
+ break;
+ case NX_SECURE_TLS_HASH_ALGORITHM_SHA512:
+ *signature_algorithm = 0x0806u; /* rsa_pss_rsae_sha512 */
+ break;
+ default:
+ *signature_algorithm = 0;
+ }
+ return;
+ }
+
/* In TLS 1.3, the signing curve is constrained. */
if (tls_session -> nx_secure_tls_1_3 &&
(named_curve != 0) &&