<?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>Unable to decrypt AES-CCM encrypted message from Central</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/110645/unable-to-decrypt-aes-ccm-encrypted-message-from-central</link><description>Hi, 
 I was trying to decrypt an encrypted message I send form my phone using the psa/crypto library. I managed to send the encrypted message over to my board by ble correctly, however when I tried to decrypt the message, I was meet with an error (status</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 07 May 2024 11:49:11 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/110645/unable-to-decrypt-aes-ccm-encrypted-message-from-central" /><item><title>RE: Unable to decrypt AES-CCM encrypted message from Central</title><link>https://devzone.nordicsemi.com/thread/482264?ContentTypeID=1</link><pubDate>Tue, 07 May 2024 11:49:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:879082b4-45e8-430e-9be1-79e3eed60ad4</guid><dc:creator>Johan83</dc:creator><description>&lt;p&gt;Hi Amanda,&lt;/p&gt;
&lt;p&gt;I tried the sample on AES-CCM and have finally zoned down the issue to the key generation part (or in my case key import function). I encrypted a message in flutter (android phone) and send it over to the controller through ble NUS and I declared the same nonce key and aad I used in flutter. It seem that only when I tried to use&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;status_key&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;psa_import_key&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;key_attributes&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;aes_key&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;aes_key&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;key_id&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;where aes_key is the key I&amp;nbsp; declared in VScode for the controller:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;aes_key&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;16&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span&gt;0x01&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x02&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x03&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x04&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x05&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x06&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x07&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x08&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x09&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0A&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0B&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0C&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0D&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0E&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0F&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x10&lt;/span&gt;&lt;span&gt; };&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;instead of&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;status&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;psa_generate_key&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;key_attributes&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;key_handle&lt;/span&gt;&lt;span&gt;); (original code in the example)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;that I ran into issue. &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;Also, I noticed that the data type for key identifier in the example you linked me to is&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;psa_key_handle_t&amp;quot; while the data type used in the documentation you linked me to uses &amp;quot;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;psa_key_id_t&amp;quot;. While both seem to work (the key is either generated or imported successfully for the aes-ccm example), &amp;quot;psa_key_handle_t&amp;quot; does not work for psa_import_key function.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Regards,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Johan&lt;/span&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: Unable to decrypt AES-CCM encrypted message from Central</title><link>https://devzone.nordicsemi.com/thread/481391?ContentTypeID=1</link><pubDate>Wed, 01 May 2024 15:58:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:de33d2eb-d5ff-49cb-940a-b70782104f2c</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can check out this sample&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-nrf/tree/v2.6.1/samples/crypto/aes_ccm"&gt;https://github.com/nrfconnect/sdk-nrf/tree/v2.6.1/samples/crypto/aes_ccm&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-Amanda H.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to decrypt AES-CCM encrypted message from Central</title><link>https://devzone.nordicsemi.com/thread/481383?ContentTypeID=1</link><pubDate>Wed, 01 May 2024 14:29:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09208528-f0c3-42f6-82c5-70457a3241b2</guid><dc:creator>Johan83</dc:creator><description>&lt;p&gt;Hi Amanda,&lt;/p&gt;
&lt;p&gt;I have validated that I my key is compatible and the nonce length is correct (12 bytes), I have also looked though various sources, but I still encounter the status -135 error.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Also, it seem strange that my ciphertext is only 18 bytes as I calculated that it should be 31 bytes:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Plaintext size: 2 bytes: [&lt;span&gt;0x01&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x0C&lt;/span&gt;]&lt;/li&gt;
&lt;li&gt;Nonce size: 12 bytes: [&lt;span&gt;0x10&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x11&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x12&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x13&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x14&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x15&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x16&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x17&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x18&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x19&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x1A&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0x1B&lt;/span&gt;]&lt;/li&gt;
&lt;li&gt;Additional authentication data (AAD) size: 1 byte: [&lt;span&gt;0x00&lt;/span&gt;]&lt;/li&gt;
&lt;li&gt;Authentication tag size: 16 bytes&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Total: 2+12+1+16 = 31 bytes&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;However, my ciphertext after encryption with AES-CCM (in flutter) is 18 bytes or&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;[180, 164, 171, 198, 129, 128, 178, 33, 55, 252, 241, 150, 243, 128, 243, 116, 146, 219]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;I tried decrypting this set of data using the&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;PSA_ALG_CCM algorithm with the psa_aead_decrypt function and got the status -135 error. Could this be the problem?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;I am sorry if the question is very basic as I am new to the topic of encryption.&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;Thanks,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Jinhhao&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unable to decrypt AES-CCM encrypted message from Central</title><link>https://devzone.nordicsemi.com/thread/480897?ContentTypeID=1</link><pubDate>Fri, 26 Apr 2024 13:12:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:983169c7-e89a-4677-84a4-312a29498aac</guid><dc:creator>Amanda Hsieh</dc:creator><description>&lt;p&gt;Hi &lt;span&gt;Johan&lt;/span&gt;,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The error code -135 means&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-nrf/blob/v2.6.1/subsys/trusted_storage/include/psa/error.h#L39"&gt;&lt;span&gt;PSA_ERROR_INVALID_ARGUMENT&lt;/span&gt;&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The following conditions can result in this error:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;alg&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is not an AEAD algorithm.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;key&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is not compatible with&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;alg&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;nonce_length&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is not valid for use with&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;alg&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;key&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;additional_data_length&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;ciphertext_length&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;are too large for&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;alg&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please check out&amp;nbsp;&lt;a href="https://arm-software.github.io/psa-api/crypto/1.1/api/ops/aead.html#c.psa_aead_decrypt"&gt;psa_aead_decrypt (function)&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards,&amp;nbsp;&lt;br /&gt;Amanda H.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>