Hi,
We have developed a propriety protocol that authenticate node using certificate. In our PKI, we have four level of certificates as ROOT_CA, PROXY_CA, LOCAL_CA, and DEVICE_CERTIFICATE. Parsing of trusted CA certificate is getting success. However, verifying PROXY_CA against ROOT_CA fails with below error code.
MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG + MBEDTLS_ERR_OID_NOT_FOUND
I have viewed the certificates transacted using OpenSSL command, the ASN1 OID is ECDSA_SHA384. Though, I have enabled the algorithm, it is failing. Any support would be appreciated. Attached the config.h for your reference.
Thanks,
Gopi Krishnan
After recently updating mbedtls I noticed a considerable slowdown (over 70% on my cortex-m7 board) in the sha256 implementation, and after some digging I found the offending commit:
https://github.com/Mbed-TLS/mbedtls/commit/76749aea784cfec245390d0d6f0ab0a2…
I understand the motivation behind the commit, but I think it may not be relevant to all use cases.
So my question is if an option to disable the clearing of internal buffers in mbedtls_config.h would be a reasonable improvement? Or would that be considered to much of a foot gun?
Regards,
Joel Petersson
Hi,
In Embed tls version 2.28, is there any support to validate
client certificate fields like for example: validity of certificate, CA
validation or role extraction ?
If support is present then, how can we enable that ?
Please help me with this.Thanks in advance.
Regards
Anupma
Hi All,
A gentle reminder that the US-Europe timezone-friendly MBed TLS Tech forum
is next Monday at 4:30 PM UK time. Invite details can be found on the
online calendar here <https://www.trustedfirmware.org/meetings/>.
If you have any topics, please let Dave Rodgman know. :)
Best regards,
Don Harbin
TrustedFirmware Community Manager
don.harbin(a)linaro.org
hello, we are testing a secure communication and got example code that uses the mbed-tls library. i am using the online keil studio with mbed.org: created a new project (compiles fine) and added in the mbed-tls library but this already gives compile errors. see below. i am using the latest greatest versions (mbed-os 6.16.0 and mbedtls-3.2.1) and tried some older versions. all seem to give the same problems. see below.
i have tried commenting out MBEDTLS_HAVE_TIME in mbedtls_config.h but that does not seem to make any difference
tried different target boards, also no difference
any help is greatly appreciated!
thanks
frank
Build started
Using toolchain ARMC6 profile {'ENV': {'ARMLMD_LICENSE_FILE': '8224@10.10.101.194:8224@10.10.109.222'}, 'PATHS': {'ARMC6_PATH': '/opt/ARMCompiler6.15.13/bin/', 'ARM_PATH': '/opt/armcc5_06_u6/'}, 'common': ['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'], 'cxx': ['--cpp', '--no_rtti'], 'COMPILE_C_AS_CPP': False, 'NEW_SCAN_RESOURCES': True}
scan /tmp/chroots/ch-59110c86-ee99-44c4-9ef0-79f3efde74a7/src
scan /tmp/chroots/ch-59110c86-ee99-44c4-9ef0-79f3efde74a7/extras/mbed-os.lib
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Config/RTX_Config.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/TOOLCHAIN_ARM/TARGET_RTOS_M4_M7/irq_cm4f.S
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_evflags.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_lib.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_mempool.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Library/cmsis_os1.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_evr.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_memory.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_delay.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_msgqueue.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_kernel.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_mutex.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_semaphore.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_system.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/Source/os_systick.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/TARGET_CORTEX_M/Source/mbed_tz_context.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_timer.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/Source/os_tick_ptim.c
compile mbed-os/cmsis/CMSIS_5/CMSIS/RTOS2/RTX/Source/rtx_thread.c
"time.h included in a configuration without MBEDTLS_HAVE_TIME"
unknown type name 'time_t'; did you mean 'size_t'?
unknown type name 'time_t'; did you mean 'size_t'?
unknown type name 'time_t'; did you mean 'size_t'?
compile mbed-os/cmsis/device/rtos/source/mbed_rtos_rtx.c
In file included from /extras/mbed-os.lib/cmsis/device/rtos/source/mbed_rtos_rtx.c:23:
In file included from /extras/mbed-os.lib/platform/include/platform/mbed_error.h:21:
In file included from /extras/mbed-os.lib/platform/include/platform/mbed_retarget.h:107:
/src/mbedtls/tests/include/baremetal-override/time.h:18:2: error: "time.h included in a configuration without MBEDTLS_HAVE_TIME"
#error "time.h included in a configuration without MBEDTLS_HAVE_TIME"
^
In file included from /extras/mbed-os.lib/cmsis/device/rtos/source/mbed_rtos_rtx.c:23:
In file included from /extras/mbed-os.lib/platform/include/platform/mbed_error.h:21:
/extras/mbed-os.lib/platform/include/platform/mbed_retarget.h:669:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t st_atime; ///< Time of last access
^~~~~~
size_t
/opt/ARMCompiler6.15.13/bin/../include/stdio.h:53:26: note: 'size_t' declared here
typedef unsigned int size_t; /* see <stddef.h> */
^
In file included from /extras/mbed-os.lib/cmsis/device/rtos/source/mbed_rtos_rtx.c:23:
In file included from /extras/mbed-os.lib/platform/include/platform/mbed_error.h:21:
/extras/mbed-os.lib/platform/include/platform/mbed_retarget.h:670:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t st_mtime; ///< Time of last data modification
^~~~~~
size_t
/opt/ARMCompiler6.15.13/bin/../include/stdio.h:53:26: note: 'size_t' declared here
typedef unsigned int size_t; /* see <stddef.h> */
^
In file included from /extras/mbed-os.lib/cmsis/device/rtos/source/mbed_rtos_rtx.c:23:
In file included from /extras/mbed-os.lib/platform/include/platform/mbed_error.h:21:
/extras/mbed-os.lib/platform/include/platform/mbed_retarget.h:671:5: error: unknown type name 'time_t'; did you mean 'size_t'?
time_t st_ctime; ///< Time of last status change
^~~~~~
size_t
/opt/ARMCompiler6.15.13/bin/../include/stdio.h:53:26: note: 'size_t' declared here
typedef unsigned int size_t; /* see <stddef.h> */
^
4 errors generated.
Internal error.
Build failed
Build failed
Hi all,
I have some questions.
1) If you have an established TLS connection (mbed TLS 3.x) and while the
connection is up the (server-) certificate expires: Will the connection stay
up? Or is a new handshake (with valid cert) REQUIRED?
2) Related to question 1: CAN mbed TLS switch to a new cert on an existing
TLS connection? (e.g. by doing another handshake from server OR client side)
3) With 3.x some struct members are now "private". Even if you can allow
private access by a define it would be better to use a getter. But for ssl
context's "state" I am missing this and also for "p_bio" (to access fd). Is
there a chance to get this implemented?
BTW - a big "LIKE" for 3.x! I really appreciate the changes. Thank you!
kind regards,
Frank
Hi All,
A gentle reminder that the US-Europe timezone-friendly MBed TLS Tech forum
is tomorrow (Monday) at 4:30 PM UK time.
If you have any topics, please let Dave Rodgman know. :)
Best regards,
Don Harbin
TrustedFirmware Community Manager
don.harbin(a)linaro.org
Hi Mbed TLS users,
We have released Mbed TLS version 3.2.1.
This release is functionally identical to 3.2.0, but includes a file that was missing from the 3.2.0 release (see https://github.com/Mbed-TLS/mbedtls/issues/6084).
Full details are available in the release notes (https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.2.1).
We recommend all users to consider whether they are impacted, and to upgrade appropriately.
Many thanks,
Mbed TLS Team.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
--
Mbed-tls-announce mailing list -- mbed-tls-announce(a)lists.trustedfirmware.org
To unsubscribe send an email to mbed-tls-announce-leave(a)lists.trustedfirmware.org
Hi Mbed TLS users,
We have released Mbed TLS versions 3.2.0 and 2.28.1.
These releases of Mbed TLS address several security issues, provide bug fixes, and for 3.2.0, add various features. Full details are available in the release notes (https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.2.0, https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.1).
We recommend all users to consider whether they are impacted, and to upgrade appropriately.
Dave Rodgman
Hi mbed-tls Team,
I notice that https://tls.mbed.org has been directed to https://www.trustedfirmware.org/projects/mbed-tls/. However, I does not see any link to the old Mbed TLS knowledge base. It is a good resource for learning Mbed TLS. What is the URL to access it?
Thanks,
Max Peng
Hi all,
it feels like the state of documentation has deteriorated since the last
time I've used mbedtls (a couple of months ago). I'm not sure if the google
index hasn't fully been updated yet, or I don't understand the new
structure of the docs or ...
Also, is this the proper forum to make suggestions? Should I raise an issue
on Github?
1.) a lot of previously linked, useful information now redirects here:
https://www.trustedfirmware.org/projects/mbed-tls/ which (please excuse my
frankness) feels like an utterly useless abomination that only marketing
people could love.
- Some examples of previously useful links: from the wiki (
https://developer.trustedfirmware.org/w/mbed-tls/) :
> Old Mbed TLS website
> Documentation: Mbed TLS API Reference; Knowledge base; Dev corner
all redirect to trustedfirmware.org ! As do nearly all the links in
https://github.com/Mbed-TLS/mbedtls/blob/development/SUPPORT.md
2.) there is no longer an doxygen generated API documentation anywhere
only. I could generate it myself, but then I'd need to get and install
Doxygen, figure how to use it, etc. It would be great if this were
restored. It can't be that expensive to host :)
Anyway, it feels like I've been running around for hours trying to find
_anything_ useful, but I just realized everything is redirected to
trustedfirmware.org ... Is there any way to still access the old, useful
docs?
Thanks & sorry that this post is so negative,
-tim
Hello Sir/Madam,
I am developing TI's EFM32 series micro controller based IOT device. This
device will connect to mqtt broker and publish/ subscribes to/from data.
In my application, I am trying to connect to AWS using mbedtls library over
lwIP (no rtos mode). While my device is in debug mode (i.e. JTAG programmer
connected) then it gets connected to AWS successfully. But when I remove
JTAG programmer and operate device in normal running mode, then it failed to
get connect to broker (i.e. AWS).
I observe following errors occured while performing TLS handshaking stage:
SSL - The connection indicated an EOF
X509 - Certificate verification failed, e.g. CRL, CA or signatur
SSL - Processing of the ServerHello handshake message failed
Hi all,
First of all apologies if this is not the right place for this topic. For my master thesis I am using the mbedtls library to analyze it using side channel analysis.
My objective was to use it as a starting point to analyze the resistance of different exponentiation algorithms.
With this objective I am trying to set up a environment where I can call the function "mbedtls_mpi_exp_mod" https://github.com/Mbed-TLS/mbedtls/blob/f5b7082f6e8af72868966b6ea99eae228f… and debug it. I have been trying for at least two weeks but I couldn't be able to succeed.
I believe that when If I can get a debugging environment for that function I will be able to adapt it and use other exponentiation algorithms such as the Left-to-right k-ary (HAC 14.82).
I am using VScode and the code is located in WLS Ubuntu 20.04. So far I been able to compile the full library and run all the tests.
Anyone here could give mean indication on how to set up the environment to debug this function?
Thanks!
Victor.
Hello,
Currently, we are evaluating the MbedLib to be eventually used in small and midsized automotive ECUs.
* Since we have to follow the UNECE Regulation R155, R156, and ISO/SAE 21434 I need some information regarding the long-term support of the library and how the communication of bugs is organized?
* I also do not understand the involvement and responsibility of ARM company?
* Furthermore, I'm not sure if I understood the terms PSA and MbedTls and their mutual dependencies as well as the technical meaning?
I checked the web for I but did not find anything about it yet.
It would be just great if somebody can give me some hints or links to the information I am looking for.
Regards Heico
I have an application using mbedTls 2.9.0 that's been running successfully for a few years. It secures connections for the AWS MQTT broker, for https GET/PUT transfers, and for SSL/TLS email servers - But only one secure connection at a time. I need to add support for an FTPS client. This requires opening/securing a control channel on port 21, then opening/securing a second port for data transfer.
Opening/securing the control channel works as expected. Then, when the client calls connect() for the data transfer socket, the server log shows messages indicating it is preparing for a TLS handshake.
Now, here's where I may be missing something... The client calls the same code as for the control connection: Allocates a second mbedtls_ssl_context, mbedtls_ssl_config, mbedtls_x509_crt, et.al, and calls some mbedtls_ssl_*() functions which were copy/pasted from example code several years ago. The server name and root cert are the same. I think the only difference in the second negotiation is the underlying socket descriptor allocated by the IP stack for the data channel.
When mbedtls_ssl_handshake() is called, both the filezilla log and client log show a successful handshake. The filezilla log then shows it trying to establish yet another secure data connection, which fails, and reports "TLS session of data connection not resumed."
Questions:
-- Is the above sequence correct for opening and securing a second connection?
-- In searching through ssl.h I see mbedtls_ssl_get_session() and mbedtls_ssl_set_session(). Are these relevant to the situation? I cannot tell from their one-sentence descriptions.
Hi
I just needed to use rsa.c but its a little complicated.
Can anyone help me or give me any document about how i can use it without use of tls.
I just saw a doc on tls.mbed.org but the site is not working anymore.
Hello,
currently, I am evaluating the mbed-tls. I already created some smaller demos regarding AES and RSA. I do so on a PC with cygwin and with Keil micro vision for a NXP S32K144.
One demo is just validating some data with a signature and an existing public key. Here is the point that puzzles me a bit. As far as I understand this cybersecurity stuff entropy is not needed for the above use case. Some of my colleagues would agree with me.
Once psa_crypto_init() is called on a target NXP S32K144 the function returns PSA_ERROR_INSUFFICIENT_ENTROPY.
So far so good
https://os.mbed.com/docs/mbed-os/v6.15/porting/entropy-sources.html
gives the hints on how to handle this in general but I did not find any information on how to disable the "request for entropy" in a save way once your use case does not need any new secrets.
Can you give me a hint why psa_crypto_init() is implemented that way?
It may also be that I still have a conceptual understanding problem!?
Regards
Heico
Hi mbed-tls Team,
PSA crypto API for HW acceleration seems pretty new.
Question1: is there some reference code or project I could poke around to see how it is being used?
Currently I have added (locally) a set of driver to make use of our HW crypto using the *_ALT way (the old way?) and for what I understand, the PSA API is the "new way" to do things.
But It is still unclear how vendor do upstream there HW acceleration drivers.
If this part is kept in another repo, then the mbedTLS build does not have any "hooks" to pull-in the vendor specific code to build the mbedTLS library with.
The current implementation seems to be agnostic to any vendor specific HW so I am wondering if there is a "standard" way for vendor to upstream their mbedTLS HW acceleration code that would be built as part of mbedTLS library.
I have posted a similar thread to the "issue" ticket of the mbedtls repo for reference: https://github.com/Mbed-TLS/mbedtls/issues/5975
Thanks for any feedback/pointers/ideas.
Regards,
-Mathieu
Hi All,
My target has 128k SRAM which has about 60k spare, and 64k CCM which
is allocated whole to FreeRTOS stacks etc (its private heap, memory
model #4).
I am running a simplified HTTP server (for local config etc), which
uses fairly minimal RAM (a few k), and an HTTPS/TLS client which uses
about 50k (for its private heap).
So if both of the above are running concurrently, there is only ~10k
RAM left, but it does work, but when TLS is doing its
handshake/negotiation (which on a 168MHz 32F417 takes 2-3 seconds) the
HTTP server temporarily hangs.
Investigating this, it appears that LWIP is running out of buffers
during TLS and is rejecting incoming packets.
I don't really want to change the CPU to the next one up which has
another 64k RAM, because a) I have stock of the 417 and this took
about a year to get, b) the design is rock solid and I don't want to
tempt fate (there is a lot of subtle hardware usage e.g. DAC ADC DMA
timers) even though in theory it should be just alternate function pin
changes, c) some versions of the product may not need TLS at all.
I have an option of an 8 megabyte SPI-attached RAM
https://www.eevblog.com/forum/microcontrollers/lyontek-ly68l6400-8-megabyte…
which does work and is not bad at $3 (there are cheaper 128kbyte
versions too), but obviously cannot be addressed as normal RAM. The
ESP32 can do that but the 32F4 can't.
Does anyone know enough about the internals of MbedTLS, or even LWIP,
to know whether the memory usage structure lends itself to this kind
of "overlay" memory? One can read or write say 1k bytes in 400us, in
my target (21MHz SPI with DMA). Obviously this would be horribly
inefficient for a byte at a time emulation but perhaps one can switch
buffers in and out...
Thank you in advance. If somebody knows of a concrete route, I am
happy to pay for the time.
Regards,
Peter
Hi All, This is a gentle reminder that the next MBed TLS Tech forum is next
Monday 4:30 PM UK time. If you have any topics, please let Dave Rodgman
know. :) Best regards, Don
MBed TLS Technical Forum
Monday Jul 4, 2022 ⋅ 8:30am – 9:30am
Mountain Standard Time - Phoenix
Trusted Firmware is inviting you to a scheduled Zoom meeting.
Topic: MBed TLS Technical Forum
Time: Oct 25, 2021 04:30 PM London
Every 4 weeks on Mon, 20 occurrence(s)
Oct 25, 2021 04:30 PM
Nov 22, 2021 04:30 PM
Dec 20, 2021 04:30 PM
Jan 17, 2022 04:30 PM
Feb 14, 2022 04:30 PM
Mar 14, 2022 04:30 PM
Apr 11, 2022 04:30 PM
May 9, 2022 04:30 PM
Jun 6, 2022 04:30 PM
Jul 4, 2022 04:30 PM
Aug 1, 2022 04:30 PM
Aug 29, 2022 04:30 PM
Sep 26, 2022 04:30 PM
Oct 24, 2022 04:30 PM
Nov 21, 2022 04:30 PM
Dec 19, 2022 04:30 PM
Jan 16, 2023 04:30 PM
Feb 13, 2023 04:30 PM
Mar 13, 2023 04:30 PM
Apr 10, 2023 04:30 PM
Please download and import the following iCalendar (.ics) files to your
calendar system.
Weekly:
https://linaro-org.zoom.us/meeting/tJEkceuurT4sGdaksikbUn6FARB9Kuk3ac2o/ics…
Join Zoom Meeting
https://linaro-org.zoom.us/j/95962635632?pwd=STFkQVltejAzRDJ6NmoxZjhmZC9RUT…
Meeting ID: 959 6263 5632
Passcode: 018366
One tap mobile
+13462487799,,95962635632# US (Houston)
+16699009128,,95962635632# US (San Jose)
Dial by your location
+1 346 248 7799 US (Houston)
+1 669 900 9128 US (San Jose)
+1 253 215 8782 US (Tacoma)
+1 312 626 6799 US (Chicago)
+1 646 558 8656 US (New York)
+1 301 715 8592 US (Washington DC)
877 853 5247 US Toll-free
888 788 0099 US Toll-free
Meeting ID: 959 6263 5632
Find your local number: https://linaro-org.zoom.us/u/aewUpnQu5y
Guests
psa-crypto(a)lists.trustedfirmware.org
mbed-tls(a)lists.trustedfirmware.org
nnac123(a)gmail.com
Hi all,
We're seeking feedback on our plans regarding support for Finite-Field DHE (also known as FFDH(E), as opposed to the Elliptic Curve version, ECDH(E)).
Currently the PSA Crypto API only supports FFDH with named groups, which aligns well with modern cryptographic practice and the needs of TLS 1.3, but less well with TLS 1.2 where arbitrary parameters can be chosen by the server, leading to various interoperability and security issues (see the introduction of RFC 7919, hence the general move to named groups).
Some data suggests that FFDH is already seeing very little use (less than 1% of TLS 1.2 traffic) on major websites, and presumably this would be even less when constrained devices are involved, since ECDH is less resource-intensive.
So, we are currently planning on removing support for DHE-RSA and DHE-PSK key exchanges in TLS 1.2 in the next major version of Mbed TLS. We would retain support of ECDHE in TLS 1.2, and of DHE (in addition to ECDHE) in TLS 1.3. (Support for FFDH in TLS 1.2 would also be present in the LTS version released around the same time as the next major version.)
If you have any objection to this plan, please let us know about your use case and motivations, either by responding to this email, or by commenting on the corresponding github issue: https://github.com/Mbed-TLS/mbedtls/issues/5278 Thank you!
Best regards,
Manuel for the Mbed TLS team.
Hi,
I have one root ca, intermediate ca, and device certificate in der format.
While am trying to verify one by one as intermediate-ca with root-ca and device cert with intermediate-ca; things work fine.
But if I tried to verify like having two context one for ca and one chain. I parse root ca on CA context and intermediate ca and device cert on chain context. Now verification fails with flag 8 error code -0x2700.
I have attached verify_der_one_by_one.c it is working without any issue; but verify_der_chain.c is causing the issue stated above.
Any help would be appreciated.
Thanks,
Gopi Krishnan
Hello,
Mbed TLS supports AES acceleration with VIA Padlock (MBEDTLS_PADLOCK_C).
We do not have the hardware to test it, so this should be considered
strictly community-maintained.
We are making a patch to the AES module which has a small risk of
breaking VIA padlock support:
https://github.com/Mbed-TLS/mbedtls/pull/5896 . If you are using VIA
padlock, please test this change and let us know if something's wrong.
On a related note, we intend to drop the Padlock code in the next major
version of Mbed TLS (https://github.com/Mbed-TLS/mbedtls/issues/5903).
If you care about this feature, please let us know.
Best regards,
--
Gilles Peskine
Mbed TLS developer