<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MQTT over Thread</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/110551/mqtt-over-thread</link><description>Today I am attempting to set up an MQTT connection from a Thread device to an MQTT server on the Internet (for better or for worse, if this is a terrible idea I&amp;#39;m open to suggestions). 
 I&amp;#39;ve done some preliminary investigation using the Thread CLI example</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 17 Jul 2024 13:34:05 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/110551/mqtt-over-thread" /><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/494394?ContentTypeID=1</link><pubDate>Wed, 17 Jul 2024 13:34:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f6763ffa-d9ce-432e-8f17-6a621e97d7d6</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Frog,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Yes, you are correct. By default, OpenThread in the nRF Connect SDK uses the nRF Security module for cryptographic operations. This module provides hardware-accelerated cryptographic functionality on selected Nordic Semiconductor SoCs as well as alternate software-based implementations of the Mbed TLS APIs.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If you choose to build OT libraries from source, you can define additional configuration options one by one. By default, the Feature sets option is set to custom, which allows you to create your own OpenThread stack configuration. However, you can select other feature sets as a basis. Rebuilding OT libraries from source may need more certification steps for the final products.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The unsupported cipher suite may have some reason to be unsupported. It could consume more memory or computing power, which may not fit for MCU usage. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It is common that server support&amp;nbsp;a list of cipher suite which more than client side. The negotiation between client and server decide one that fit both of them.&amp;nbsp;Do you have control on the server side? Maybe it is&amp;nbsp;easier to support&amp;nbsp;cipher suite from MQTT broker server side.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Charlie&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/494261?ContentTypeID=1</link><pubDate>Wed, 17 Jul 2024 04:41:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f57c81b-7c23-4341-8c75-428d4c3fb021</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;It&amp;#39;s not possible to set &lt;span&gt;NRF_SECURITY_LEGACY_AND_PSA&lt;/span&gt; directly, so I set&lt;/p&gt;
&lt;div style="background-color:#1f1f1f;color:#cccccc;font-family:Consolas, &amp;#39;Courier New&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NRF_CC3XX_PLATFORM&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_TRUSTED_STORAGE&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_BUILD_WITH_TFM&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;which conflicted with many of the crypto library options I&amp;#39;d already requested, e.g.&lt;/p&gt;
&lt;div style="background-color:#1f1f1f;color:#cccccc;font-family:Consolas, &amp;#39;Courier New&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;#CONFIG_MBEDTLS_AES_C=y&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;so I commented out all the offending definitions.&amp;nbsp; This left me with:&lt;/p&gt;
&lt;p&gt;warning: HW_UNIQUE_KEY (defined at C:/nordic/v2.6.1/nrf\lib\hw_unique_key/Kconfig:35) has direct dependencies HW_UNIQUE_KEY_SUPPORTED &amp;amp;&amp;amp; (NRF_CC3XX_PLATFORM || BUILD_WITH_TFM) &amp;amp;&amp;amp; NRF_SECURITY &amp;amp;&amp;amp; (MPU_ALLOW_FLASH_WRITE || BUILD_WITH_TFM) &amp;amp;&amp;amp; (!BUILD_WITH_TFM || TFM_CRYPTO_BUILTIN_KEYS) with value n, but is currently being y-selected by the following symbols:&lt;br /&gt;&amp;nbsp;- TRUSTED_STORAGE_BACKEND_AEAD_KEY_DERIVE_FROM_HUK (defined at C:/nordic/v2.6.1/nrf\subsys\trusted_storage/Kconfig:132), with value y, direct dependencies HW_UNIQUE_KEY_SUPPORTED &amp;amp;&amp;amp; &amp;lt;choice TRUSTED_STORAGE_BACKEND_AEAD_KEY&amp;gt; (value: y), and select condition HW_UNIQUE_KEY_SUPPORTED &amp;amp;&amp;amp; &amp;lt;choice TRUSTED_STORAGE_BACKEND_AEAD_KEY&amp;gt; (value: y)&lt;br /&gt;&lt;br /&gt;warning: SOC_NRF_GPIO_FORWARDER_FOR_NRF5340 (defined at soc/arm/nordic_nrf\nrf53\Kconfig.soc:147) has direct dependencies NRF_SOC_SECURE_SUPPORTED &amp;amp;&amp;amp; SOC_NRF5340_CPUAPP &amp;amp;&amp;amp; SOC_SERIES_NRF53X &amp;amp;&amp;amp; SOC_FAMILY_NRF with value n, but is currently being y-selected by the following symbols:&lt;br /&gt;&amp;nbsp;- BOARD_ENABLE_CPUNET (defined at C:/nordic/v2.6.1/zephyr/boards/arm/nrf5340dk_nrf5340/Kconfig:23), with value y, direct dependencies BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF5340DK_NRF5340_CPUAPP_NS (value: y), and select condition BOARD_NRF5340DK_NRF5340_CPUAPP || BOARD_NRF5340DK_NRF5340_CPUAPP_NS (value: y)&lt;/p&gt;
&lt;p&gt;Given that this is all internal to the SDK I don&amp;#39;t know if there&amp;#39;s anything I can do to work around it.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m worried about getting too far into the weeds without having a really good understanding of what OpenThread needs.&amp;nbsp; If I understand correctly there&amp;#39;s one crypto library that&amp;#39;s used system-wide, and this needs to provide the superset of what OT needs and what my TLS connection needs.&amp;nbsp; Is that correct?&amp;nbsp; If so it would make sense to start with the default OT configuration and then add the ciphersuite that I need, although I suppose that may mean I have to build the library from source rather than linking a precompiled library.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/494184?ContentTypeID=1</link><pubDate>Tue, 16 Jul 2024 14:03:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6c31a3aa-ed60-4b56-b54f-06ff712371fc</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Frog,&lt;/p&gt;
&lt;p&gt;Could you have a quick try to enable configure&amp;nbsp;&lt;span&gt;&lt;span dir="ltr"&gt;NRF_SECURITY_LEGACY_AND_PSA?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;config&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;NRF_SECURITY_LEGACY_AND_PSA&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;bool&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;default&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;select&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;EXPERIMENTAL&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;depends on&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MBEDTLS_LEGACY_CRYPTO_C&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MBEDTLS_PSA_CRYPTO_C&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # This configuration doesn&amp;#39;t affect TF-M builds since the PSA&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # APIs are provided by TF-M.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # When this configuration is enabled we manually enable&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # some symbols in the build_config.h file in the Oberon PSA core.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # This requires only the Oberon PSA crypto driver to be enabled,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # it requires the CC3XX platform library to get random data and&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # the trusted storage for ITS support. The depenedencies here&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # match what we enable in the build_config.h file so if we need to&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; # modify the dependencies here we also need to modify the build_config.h.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;depends on&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PSA_CRYPTO_DRIVER_OBERON&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;PSA_CRYPTO_DRIVER_CC3XX&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;depends on&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;NRF_CC3XX_PLATFORM&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;depends on&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;TRUSTED_STORAGE&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;depends on&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;BUILD_WITH_TFM&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span&gt;help&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;This is an option to support legacy mbedTLS and PSA crypto APIs&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at the same time. This is not recommended as it is not fully&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;supported in our system. This feature might get changed/removed at&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;any time in the future. You are advised to use the PSA APIs&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for any new developments.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;This option doesn&amp;#39;t use the nrf_security for the internal&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PSA configuration. It always use the Oberon PSA driver&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for all the crypto operations expect for the PRNG which&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uses the nrf_cc3xx_platform library.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Charlie&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/493544?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2024 04:57:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a506a157-5857-4329-9fcc-eb4d0fbd0427</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;Hi Charlie,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Since last time I have moved from a Thingy91 to a Fanstel BT40NE module which is based on an nRF5340 and has a 21540 FEM, which I&amp;#39;ve got working with some SDK adjustments as recommended by Fanstel.&amp;nbsp; I&amp;#39;m more or less back where I was with the MQTT connection - the device sends a hello request to the server but with the default list of ciphersuites.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve copied the config from here&lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/90352/error--22-in-mqtt_connect---nrf52840dk-with-azure-iot-hub-using-openthread-and-tcp/385557"&gt;RE: Error -22 in mqtt_connect() - nRF52840dk with Azure IoT Hub using OpenThread and TCP&lt;/a&gt;&lt;br /&gt;and resolved a few issues, now I&amp;#39;m down to three problems that appear to be closely related: MBEDTLS_CIPHER_AES_ENABLED, MBEDTLS_CIPHER_CCM_ENABLED and MBEDTLS_MAC_CMAC_ENABLED.&amp;nbsp; The error messages such as &lt;br /&gt;&lt;br /&gt;warning: MBEDTLS_CIPHER_AES_ENABLED (defined at C:/nordic/v2.6.1/zephyr/modules/mbedtls\Kconfig.tls-generic:257, modules\mbedtls\Kconfig.tls-generic:257) has direct dependencies (!(NRF_SECURITY || NORDIC_SECURITY_BACKEND) &amp;amp;&amp;amp; MBEDTLS_BUILTIN &amp;amp;&amp;amp; MBEDTLS_CFG_FILE = &amp;quot;config-tls-generic.h&amp;quot; &amp;amp;&amp;amp; MBEDTLS) || (!(NRF_SECURITY || NORDIC_SECURITY_BACKEND) &amp;amp;&amp;amp; MBEDTLS_BUILTIN &amp;amp;&amp;amp; MBEDTLS_CFG_FILE = &amp;quot;config-tls-generic.h&amp;quot; &amp;amp;&amp;amp; MBEDTLS &amp;amp;&amp;amp; 0) with value n, but is currently being y-selected by the following symbols:&lt;br /&gt;&amp;nbsp;- OPENTHREAD_MBEDTLS (defined at subsys/net/l2/openthread/Kconfig:179), with value y, direct dependencies NET_L2_OPENTHREAD &amp;amp;&amp;amp; NETWORKING (value: y), and select condition NET_L2_OPENTHREAD &amp;amp;&amp;amp; NETWORKING (value: y)&lt;/p&gt;
&lt;p&gt;tell me that OpenThread requires these set to &amp;#39;y&amp;#39; but they are forced to &amp;#39;n&amp;#39; because CONFIG_MBEDTLS_BUILTIN=n, in turn because I don&amp;#39;t have &lt;span style="background-color:#202020;color:#cccccc;float:none;font-family:Consolas, &amp;#39;Courier New&amp;#39;, monospace;font-size:14px;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:pre-wrap;"&gt;MBEDTLS_IMPLEMENTATION&lt;/span&gt; set and I&amp;#39;m not sure how to do that.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m currently using SDK v2.6.1 and getting ready to move to v2.7.0.&lt;/p&gt;
&lt;p&gt;Are you able to give any guidance please?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/486843?ContentTypeID=1</link><pubDate>Fri, 31 May 2024 09:37:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1c41364-fc64-4e5f-aca3-65d5e65e8e52</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Frog,&lt;/p&gt;
&lt;p&gt;Welcome back!&lt;/p&gt;
[quote user="Frog"]I&amp;#39;m back to the problem of wanting to specify one additional RSA-based cipersuite in addition to those that OT needs.&amp;nbsp; As far as I can see (please tell me if I&amp;#39;m wrong) I should be able to use the precompiled openThread library provided that I also provide a PSA suite that at least satisfies OT.[/quote]
&lt;p&gt;You are free to do this on your application codes. The certification should be OK according to&amp;nbsp;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/protocols/thread/certification.html#id6"&gt;Certification by inheritance without modifications to binaries&lt;/a&gt;, but if you use&amp;nbsp;&lt;span&gt;deprecated Mbed TLS support by setting the&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a title="(in Kconfig reference v&amp;amp;nbsp;)" href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.6.0/kconfig/index.html#CONFIG_OPENTHREAD_NRF_SECURITY_CHOICE"&gt;&lt;code&gt;&lt;span&gt;CONFIG_OPENTHREAD_NRF_SECURITY_CHOICE&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Kconfig option to&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;y&lt;/span&gt;&lt;/code&gt;&lt;span&gt;, but you must build the Thread libraries from source, the&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/protocols/thread/certification.html#id7"&gt;Certification by inheritance with modifications to binaries&lt;/a&gt;&amp;nbsp;need to be followed.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;[quote user="Frog"]Since I need an RSA-based cipersuite, is it essential to enable the legacy APIs (which the dependency tree seems to suggest) or is there another way to do this?[/quote]
&lt;p&gt;As far as I know, using legacy APIs is the shortest way to achieve your target.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;However, it&amp;#39;s important to note that combining legacy and PSA crypto APIs in the same application might work, but it&amp;#39;s not a recommended or maintained solution.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/486758?ContentTypeID=1</link><pubDate>Fri, 31 May 2024 01:45:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:150318d4-51c7-4009-accb-5a389b40905c</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;Thanks for your patience, I&amp;#39;ve been dealing with some other matters for a few days.&lt;/p&gt;
&lt;p&gt;Looking at the CLI example some more, the default configuration opens a TCP connection and then attempts TLS negotiation with the default ciphersuites (using SDK2.5.1).&amp;nbsp; However, when I set CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y it seems to break - the initial TCP connection packet should just have the SYN flag set but with LEGACY_C it has SYN, ECN and CWR according to Wireshark, and there&amp;#39;s no response from the server.&lt;/p&gt;
&lt;p&gt;I know from this post &amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/96872/psa-crypto-features-not-enabled-when-config_mbedtls_legacy_crypto_c-is-enabled"&gt;PSA crypto features not enabled when CONFIG_MBEDTLS_LEGACY_CRYPTO_C is enabled&lt;/a&gt;&amp;nbsp;that specifying LEGACY_C causes some PSA functionality to be lost.&amp;nbsp; Given that the legacy APIs are deprecated it makes sense that I would aim not to use them but should use the PSA APIs, and logically I&amp;#39;d use SDK 2.6.0 where OpenThread uses PSA too.&lt;br /&gt;&lt;br /&gt;So I&amp;#39;m back to the problem of wanting to specify one additional RSA-based cipersuite in addition to those that OT needs.&amp;nbsp; As far as I can see (please tell me if I&amp;#39;m wrong) I should be able to use the precompiled openThread library provided that I also provide a PSA suite that at least satisfies OT.&lt;br /&gt;&lt;br /&gt;Since I need an RSA-based cipersuite, is it essential to enable the legacy APIs (which the dependency tree seems to suggest) or is there another way to do this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/485266?ContentTypeID=1</link><pubDate>Wed, 22 May 2024 04:41:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d789b4d1-5354-4c09-bb35-3eef063ae292</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;I looked at the CLI sample again and found that I could request CONFIG_MBEDTLS_LEGACY_CRYPTO_C without breaking OpenThread.&amp;nbsp; I noticed that the CLI example was built with SDK version 2.5.1 rather than 2.6.0 that I&amp;#39;m using for the project I&amp;#39;m working on.&amp;nbsp; Dropping back to 2.5.1 in my own project appears to resolve the problem of breaking OpenThread, which is a step forward, but for some reason the TLS negotiation is no longer working - MQTT opens the TCP port but no &amp;#39;client hello&amp;#39; packet is sent.&amp;nbsp; I&amp;#39;ll continue to investigate that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/485109?ContentTypeID=1</link><pubDate>Tue, 21 May 2024 12:23:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3b555d5e-d466-475c-abfb-c24fa7bb0f38</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;&lt;span&gt;CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED dependencies are listed here:&amp;nbsp;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.6.0/kconfig/index.html#!%5ECONFIG_OPENTHREAD_NRF_SECURITY_CHOICE$"&gt;Kconfig search — Kconfig reference (nordicsemi.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;According to the&lt;span&gt;&amp;nbsp;NCS v2.6.0&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.6.0/nrf/releases_and_maturity/releases/release-notes-2.6.0.html#thread"&gt;release notes&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&amp;quot;The default cryptography backend for Thread is now Arm PSA Crypto API instead of Mbed TLS, which was used in earlier versions. You can still build all examples with deprecated Mbed TLS support by setting the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a title="(in Kconfig reference v&amp;amp;nbsp;)" href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.6.0/kconfig/index.html#CONFIG_OPENTHREAD_NRF_SECURITY_CHOICE"&gt;&lt;code&gt;&lt;span&gt;CONFIG_OPENTHREAD_NRF_SECURITY_CHOICE&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Kconfig option to&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;y&lt;/span&gt;&lt;/code&gt;, but you must build the Thread libraries from sources. To&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.6.0/nrf/protocols/thread/certification.html#ug-thread-cert-inheritance-without-modifications"&gt;&lt;span&gt;inherit Thread certification&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;from Nordic Semiconductor, you must use the PSA Crypto API backend.&amp;quot;&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;code&gt;&lt;span&gt;tcat&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;command in CLI sample actually enables support for Thread commissioning over authenticated TLS.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/484947?ContentTypeID=1</link><pubDate>Tue, 21 May 2024 02:14:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3a653cb-aa07-4e02-a173-13c707fb3d1c</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;Currently I&amp;#39;m able to request a subset of the default ciphersuites, which is a step in the right direction.&amp;nbsp; The suite that I want to use isn&amp;#39;t in that list though.&amp;nbsp; Looking in ssl_cipersuites.c I see that I need (at least) CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED&lt;/p&gt;
&lt;p&gt;although this depends on CONFIG_MBEDTLS_RSA_C and CONFIG_MBEDTLS_PKCS1_V15, and ultimately on CONFIG_MBEDTLS_LEGACY_CRYPTO_C.&amp;nbsp; The last of these breaks OpenThread.&lt;/p&gt;
&lt;p&gt;I see that this is a reversal of the situation described here &lt;br /&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/96872/psa-crypto-features-not-enabled-when-config_mbedtls_legacy_crypto_c-is-enabled"&gt;PSA crypto features not enabled when CONFIG_MBEDTLS_LEGACY_CRYPTO_C is enabled&lt;/a&gt;&lt;br /&gt;where CONFIG_MBEDTLS_LEGACY_CRYPTO_C used to be required by OT.&lt;/p&gt;
&lt;p&gt;It&amp;#39;s my intention to use PSA throughout, so I have CONFIG_OPENTHREAD_CRYPTO_PSA and CONFIG_MBEDTLS_PSA_CRYPTO_C and a few CONFIG_PSA_WANT... so I&amp;#39;m not clear on why I would need LEGACY_CRYPTO_C - are you able to shed any light on this?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/484733?ContentTypeID=1</link><pubDate>Thu, 16 May 2024 14:21:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a8dba28-180d-4604-b3de-c5d0591f700e</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Frog,&lt;/p&gt;
&lt;p&gt;If you search&amp;nbsp;MQTT_TRANSPORT_SECURE in NCS source codes, you will find some samples about to properly set up TLS connection in MQTT.&lt;/p&gt;
&lt;p&gt;Hope this will give you some hint.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/484603?ContentTypeID=1</link><pubDate>Thu, 16 May 2024 05:07:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:473e8f29-115d-402d-820a-0b81b4ee2d7f</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;So today I decided to go somewhat offroad; I set&lt;/p&gt;
&lt;p&gt;CONFIG_MBEDTLS_CFG_FILE=&amp;quot;config-tls-generic.h&amp;quot;&lt;br /&gt;CONFIG_MBEDTLS_USER_CONFIG_FILE=&amp;quot;my-own-nrf-config.h&amp;quot;&lt;br /&gt;&lt;br /&gt;and copied the content of config-thread.h into my-own-nrf-config.h with the intention of taking over control of the crypto settings without losing any of the functionality that OpenThread needs.&amp;nbsp; With a couple of minor tweaks I got it to compile and run.&lt;/p&gt;
&lt;p&gt;Now I have OpenThread working normally, but when I go to open an MQTT session it&amp;#39;s using TCP rather than TLS, which is being rejected by the server.&amp;nbsp; At this point I&amp;#39;m trying to work out how to get TLS going again.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll keep working away at that, comparing what I have with some examples unless you have any specific advice.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/483375?ContentTypeID=1</link><pubDate>Wed, 15 May 2024 04:56:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3ee7da0-c2cc-44c6-ad1d-e2065436ded8</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;Sadly I don&amp;#39;t have control over the server; there&amp;#39;s a list of about a dozen supported ciphersuites.&amp;nbsp; I&amp;#39;ve chosen to go with ECDHE-RSA-AES256-SHA384.&amp;nbsp; I&amp;#39;d hoped that this would be as simple as adding a few lines to prj.conf but have gone down something of a rabbit hole.&lt;br /&gt;&lt;br /&gt;Starting with CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_ENABLE&lt;/p&gt;
&lt;p&gt;This has dependencies:&lt;/p&gt;
&lt;p&gt;CONFIG_NRF_SECURITY=y&lt;br /&gt;CONFIG_MBEDTLS_RSA_C=y &lt;br /&gt;CONFIG_MBEDTLS_PKCS1_V15=y&lt;br /&gt;CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y&lt;/p&gt;
&lt;p&gt;However, setting these breaks OpenThread, I get the message:&lt;br /&gt;&amp;quot;Current nrf_security configuration does not provide all MBEDTLS options which are required by precompiled OpenThread libraries.&amp;quot;&lt;/p&gt;
&lt;p&gt;Investigating further I find that setting CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y is the culprit.&lt;/p&gt;
&lt;p&gt;Intriguingly, if I specify CONFIG_MBEDTLS_RSA_C=y I get a warning that it &amp;quot;was assigned the value &amp;#39;y&amp;#39; but got the value &amp;#39;n&amp;#39;&amp;quot;.&amp;nbsp; This appears to depend on CONFIG_MBEDTLS_LEGACY_CRYPTO_C too.&lt;/p&gt;
&lt;p&gt;It looks as though CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED=y might be a step forward, I&amp;#39;m working through the dependencies but that also appears to depend on CONFIG_MBEDTLS_LEGACY_CRYPTO_C.&lt;/p&gt;
&lt;p&gt;The ciphersuite list is currently&lt;/p&gt;
&lt;p&gt;TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256&lt;br /&gt;TLS_ECDHE_ECDSA_WITH_AES_256_CCM&lt;br /&gt;TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8&lt;br /&gt;TLS_ECDHE_ECDSA_WITH_AES_128_CCM&lt;br /&gt;TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8&lt;br /&gt;TLS_EMPTY_RENEGOTIATION_INFO_SCSV&lt;/p&gt;
&lt;p&gt;Presumably this is the list that OpenThread has chosen to compile in.&amp;nbsp; Do you happen to know where that&amp;#39;s defined?&amp;nbsp; I&amp;#39;m not above modifying the OT source if that&amp;#39;s what it takes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/483273?ContentTypeID=1</link><pubDate>Tue, 14 May 2024 12:04:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e22d3f0c-2c14-4407-87a8-954d59714274</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Frog,&lt;/p&gt;
&lt;p&gt;Thanks for the update, good to hear that you have explored&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For the MQTT server side, you should be able to configure the cipher suites from server side, this is important because the device wouldn&amp;#39;t support all cipher suites and TLS version due to resource limitation and mbed TLS library implemenation.&lt;/p&gt;
&lt;p&gt;You can find the following page related to AWS IoT MQTT server TLS configuration.&lt;/p&gt;
&lt;p&gt;&lt;a title="https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html#tls-policy-table" href="https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html#tls-policy-table" rel="noopener noreferrer" target="_blank"&gt;https://docs.aws.amazon.com/iot/latest/developerguide/transport-security.html#tls-policy-table&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="https://docs.aws.amazon.com/iot/latest/developerguide/iot-endpoints-tls-config.html#custom-tls-console" href="https://docs.aws.amazon.com/iot/latest/developerguide/iot-endpoints-tls-config.html#custom-tls-console" rel="noopener noreferrer" target="_blank"&gt;https://docs.aws.amazon.com/iot/latest/developerguide/iot-endpoints-tls-config.html#custom-tls-console&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For the device side, you need TLS library to load and use the certifications when you build TLS connection with server. Zephyr has samples about how to use mbed TLS library. You can refer to the following discussion about its implementation with OpenThread.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/95781/adaption-to-tcp-tls-on-top-of-openthread"&gt;(+) Adaption to TCP+TLS on top of OpenThread. - Nordic Q&amp;amp;A - Nordic DevZone - Nordic DevZone (nordicsemi.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/483149?ContentTypeID=1</link><pubDate>Tue, 14 May 2024 05:20:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:03ae3f3b-84de-4d97-8c51-c1041289375a</guid><dc:creator>Frog</dc:creator><description>&lt;p&gt;Thanks Charlie,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; fgervais&amp;#39; project has got me some way down the road; I&amp;#39;m able to connect to a border router, perform a DNS lookup and start to open a connection to my MQTT server.&amp;nbsp; However, the server requires some specific ciphersuites so the TLS negotiation is failing.&lt;/p&gt;
&lt;p&gt;I seem to be having difficulty in getting the ciphersuites set up correctly without breaking the encryption for openThread - at the time of writing my code is failing to set the OT network key because it&amp;#39;s stored in an encrypted form within openThread and the encryption is broken.&lt;/p&gt;
&lt;p&gt;What I&amp;#39;m not clear on is how the encryption libraries used by openThread and MQTT/TLS/SSL should be configured to work together - is there a recommended approach to this?&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my prj.conf as it currently is, if there are any obvious shortcomings please let me know, thanks.&lt;/p&gt;
&lt;div style="background-color:#1f1f1f;color:#cccccc;font-family:Consolas, &amp;#39;Courier New&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;# OpenThread&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_NORDIC_LIBRARY_MASTER&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_L2_OPENTHREAD&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_SOURCES&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_NORDIC_LIBRARY&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_CSL_RECEIVER&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_SLAAC&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_CHANNEL&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=11&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_TCP_ENABLE&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;&lt;/span&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_MBEDTLS_DEBUG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_OPENTHREAD_TIME_SYNC&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;# Networking options&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NETWORKING&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONFIG_SETTINGS&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_TCP&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_UDP&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_SOCKETS&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_IPV6&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_IPV4&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONFIG_NEED_IPV6&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONFIG_NEED_IPV4&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_LOG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_IF_LOG_LEVEL_DBG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_IPV6_LOG_LEVEL_DBG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONFIG_LOG_LEVEL_DBG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONN_LOG_LEVEL_DBG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_SOCKETS_LOG_LEVEL_DBG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;#CONFIG_NET_CORE_LOG_LEVEL_DBG=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_SOCKETS_SOCKOPT_TLS&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;#CONFIG_NET_TCP_LOG_LEVEL_DBG=y&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_BUF_TX_COUNT&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=64&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_TX_STACK_SIZE&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=4096&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_RX_STACK_SIZE&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=4096&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_SHELL&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_SOCKETS_POSIX_NAMES&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONNECTION_MANAGER&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NET_CONTEXT_NET_PKT_POOL&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;# MQTT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MQTT_LIB&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MQTT_LIB_TLS&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MQTT_CLEAN_SESSION&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MQTT_LOG_LEVEL_DBG&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MQTT_KEEPALIVE&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=600&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#6a9955;"&gt;# Crypto&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_PSA_CRYPTO_DRIVER_CC3XX&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS_SHA1_C&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS_LEGACY_CRYPTO_C&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS_X509_CRT_PARSE_C&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_NORDIC_SECURITY_BACKEND&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=n&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_ENTROPY_GENERATOR&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS_ENABLE_HEAP&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;
&lt;div&gt;&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS_HEAP_SIZE&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=32768&lt;/span&gt;&lt;/div&gt;
&lt;span style="color:#569cd6;"&gt;CONFIG_MBEDTLS_TLS_LIBRARY&lt;/span&gt;&lt;span style="color:#cccccc;"&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color:#1f1f1f;color:#cccccc;font-family:Consolas, &amp;#39;Courier New&amp;#39;, monospace;font-size:14px;font-weight:normal;line-height:19px;white-space:pre;"&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MQTT over Thread</title><link>https://devzone.nordicsemi.com/thread/480463?ContentTypeID=1</link><pubDate>Wed, 24 Apr 2024 12:50:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65db8bed-a8b1-4790-af83-0bf7e13311fe</guid><dc:creator>Charlie</dc:creator><description>&lt;p&gt;Hi Frog,&lt;/p&gt;
&lt;p&gt;This has been discussed in many places before. Just share the latest discussion I had with another developer on the MQTT over Thread topic:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/105692/nrf52840-mqtt-coap/455746"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/105692/nrf52840-mqtt-coap/455746&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is neither suggested nor easy to make directly since some configurations need to explore. You can refer to the following implementations to review your codes. If the problem still exists, we can continue the discussion here.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/90352/error--22-in-mqtt_connect---nrf52840dk-with-azure-iot-hub-using-openthread-and-tcp/385557"&gt;RE: Error -22 in mqtt_connect() - nRF52840dk with Azure IoT Hub using OpenThread and TCP&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/fgervais/project-nrf-thread-switch"&gt;fgervais/project-nrf-thread-switch: Home Assistant (MQTT) wireless button with 10 years of battery life. (github.com)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Charlie&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>