Hi Team,
Referring to MBed release page -
https://github.com/Mbed-TLS/mbedtls/releases?page=1 I see that there has
been constant release periodically from Jul 27, 2018 mbedtls-2.1.14
till Nov 8, 2023 v3.5.1.
In the same context I understand that with each release there have been
fixes and new features / enhancement implementation. There was a project
that I was working in year 2020 were we tried to integrate MBed TLS in EAP
https://github.com/prplfoundation/hostap. It was a practice exercise that
our team did that time. I have not much idea as to which MBed TLS version
was opted and integrated then.
Now that so many new releases are made after 2020 - are older versions can
be taken as stable?
Is it that we should take the latest version and try again from scratch?
Thanks in advance.
Regards,
Prakash
Hello,
I have a simple http(s) server running on embedded platform using mbedtls.
Using ssl session cache significantly improves the throughput. However
while it works flawlessly in chromium based browser I noticed that in
Firefox it does not work at all.
Following there is a short snippet of my accept routine. Am I doing
something wrong?
...
mbedtls_ssl_conf_session_cache(&ssl_ctx->conf, &server_cache,
mbedtls_ssl_cache_get,
mbedtls_ssl_cache_set);
mbedtls_ssl_init(*ssl);
rc = mbedtls_ssl_setup(*ssl, &ssl_ctx->conf);
if (rc < 0) {
mbedtls_ssl_free(*ssl);
mg_free(*ssl);
*ssl = NULL;
return -ENOMEM;
}
mbedtls_ssl_set_bio(*ssl, sock, mbedtls_net_send, mbedtls_net_recv, NULL);
rc = mbed_ssl_handshake(*ssl);
...
best regards
Jan
Hi,
We are trying to integrate MBedTLs 3.5.2 release code into our
project. In the same regards we need your help for all information as
requested below - please do provide your valuable information:
1. Please confirm if all source and include files for MbedTLs 3.5.2
are available in below directories, so that we make use of these file
only (libraries can be built independently and have no dependency with
other files in other folder) -
mbedtls-3.5.2\include\mbedtls
mbedtls-3.5.2\include\psa
mbedtls-3.5.2\library
2. We are using our own RTOS threads instead of Posix or other
variants. Is there any specific configuration we need to do / setup?
3. We want to use as much small memory as possible - please let me
know the required configuration for the same?
4. Please let us know the various configuration / setup details that
we should do for the MBedTLS 3.5.2 codebase?
5. Any other references and information related to configuration /
setup / compilation will be an added advantage.
Thanks in advance and please let me know in case of any issues or concerns.
Regards,
Prakash
Hi,
Iam trying to import an ECC privatekey(parsed through mbedtls_parse_key()) to PSA (psa_import_key()) (for ECDSA NIST-P256-SECP-R1), by following the suggestions here ==>
https://github.com/Mbed-TLS/mbedtls/blob/development/docs/psa-transition.md (under the heading - Importing a PK key by export-import for an ECC private key).
But, i get an undefined reference to `mbedtls_ecp_export' error. Is there a special flag that controls this?
I can see that the definition of this function does exist in ecp.c.
Kind Regards,
Mathi.
Hi Shripad,
Cross-posting to mbed-tls ML.
I noticed though you already sent the same query to this list.
Regards,
Olivier.
________________________________
From: shripad.nunjundarao--- via TF-A <tf-a(a)lists.trustedfirmware.org>
Sent: 06 March 2024 05:39
To: tf-a(a)lists.trustedfirmware.org <tf-a(a)lists.trustedfirmware.org>
Subject: [TF-A] mbedtls and PQC algorithms support
Hi,
Is there a plan for mbedtls to add support for PQC algorithms (Dilithium/Khyber)?
regards,
/Shripad
--
TF-A mailing list -- tf-a(a)lists.trustedfirmware.org
To unsubscribe send an email to tf-a-leave(a)lists.trustedfirmware.org
Greetings,
## The Setup
Greetings,
## The Setup
I have a RENESAS board that has an integrated crypto processor and uses MbedTLS 2.25.0.
I have a SE (secure element) connected to it.
I am allowing hardware acceleration and PSA crypto API inside mbedtls_config.h
I registered my SE driver before calling psa_crypto_init().
The board connects to a web server and performs TLS handshake with the forced cipher `MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`.
## The issue
The handshake fails during the step 8 when generating EC private key for ECDHE exchange.
I have tracked the issue through debug and it unfolded as follows inside `ssl_write_client_key_exchange()`:
- We enter the PSA crypto code from the pre-processor directives.
- We set the key attributes after initializing them to 0. (here usage_flags, algorithm, type and bits field are set but lifetime is still 0 from init at this point, this will count later on)
- The next function `psa_generate_key()` fails.
## In depth
When inside the `psa_generate_key()` function, we start the key creation inside `psa_start_key_creation()`.
But here, when validating the attributes of the key in `psa_validate_key_attributes()`, we are not able to rely on the SE to store the key due to it being volatile (lifetime is still 0), the driver is never called.
From there the program keeps going until trying to generate the key with the crypto processor from the board which does not support this type of key and returns unsupported error.
## Main question
Since the lifetime is forced to be representing a volatile key and since the driver for the SE is not called except for persistent ones, i cannot do this cryptographic step using the SE. Is the generation of the volatile key at this step meant to be handled by the MbedTLS library (software or hardware alt) and not by the PSA Crypto API (SE) due to the key being volatile ? If not, how is the Se supposed to be called in the handshake and what am i missing ?
## Discussion
I can pass the handshake when disabling hardware acceleration and using the software for cryptographic steps, but in this case i am not using the SE for them. Should the SE only be used to store the client certificate for mTLS case ?
## Note
I must use the MbedTLS version 2.25.0 since the SE driver I am using relies on this version.
Hi,
We are writing a client code which can accept or decline connection to the
server - so for each connection I understand there is a mbedtls_ssl_context
data established. Once the same is closed or not required we need to do
deinitialize or free memory allocated to its member variables like - we
need to free all memory allocated since we need it back else our
application will run out of memory like:
os_free(mbed_ctx->handshake);
os_free(mbed_ctx->transform_negotiate);
os_free(mbed_ctx->session_negotiate);
os_free(mbed_ctx->in_buf);
os_free(mbed_ctx->out_buf);
But there are many member variables which also need to free memory if
allocated and assigned to it.
Is there a function / method that can free all memory
for mbedtls_ssl_context instance variable?
Thanks in advance.
Regards,
Prakash