<?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>nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/42859/nrf_inbuilt_key_delete-returns-2-for-public-certificate-type</link><description>I have successfully written the public certificate (type 1) using nrf_inbuilt_key_write(). 
 When I then try to delete it with nrf_inbuilt_key_delete(), however, it returns 2. 
 We use modem firmware: mfw-m1_nrf9160_0.6.8-30.alpha.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 24 Jan 2019 08:19:35 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/42859/nrf_inbuilt_key_delete-returns-2-for-public-certificate-type" /><item><title>RE: nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/thread/167553?ContentTypeID=1</link><pubDate>Thu, 24 Jan 2019 08:19:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:17cd810e-d0d0-4a64-8dac-5ae3f056aeaf</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Glad to hear that it&amp;#39;s working as expected now. I&amp;#39;ve created an internal bug on the behavior you&amp;#39;re seeing, as it should not have been necessary to remove the build folder.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/thread/167390?ContentTypeID=1</link><pubDate>Wed, 23 Jan 2019 14:00:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8db5ae23-33e0-4003-9dde-160c6250a2b2</guid><dc:creator>kristian_meshtech</dc:creator><description>&lt;p&gt;I re-created the /build folder for the segger project AND switched to another dev. kit - and now it works.&lt;/p&gt;
&lt;p&gt;The current dev kit is version 0.7.0. The one I got the error was a newer version.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/thread/167377?ContentTypeID=1</link><pubDate>Wed, 23 Jan 2019 13:08:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7d283a9d-1eab-4acb-b834-14ba7efa07bc</guid><dc:creator>kristian_meshtech</dc:creator><description>&lt;p&gt;I agree that on the first run through the code, I get return code 2. After a reset, however, I would expect all delete calls to return 0.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/thread/167369?ContentTypeID=1</link><pubDate>Wed, 23 Jan 2019 12:41:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9763e44a-4b83-4a9e-8d09-ae107d098aa2</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;As I read your code, you call _delete() without knowing if the certs are present.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the docs for the API call return code 2 (ENOENT):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;* @retval NRF_ENOENT If there was no credential associated with the sec_tag and cred_type.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Getting a return code in your scenario would be expected.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/thread/167355?ContentTypeID=1</link><pubDate>Wed, 23 Jan 2019 12:04:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0fe13468-a7e3-4e60-af4a-f7b0d5081476</guid><dc:creator>kristian_meshtech</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;const char *tcxn_ca_certificate = {
&amp;quot;-----BEGIN CERTIFICATE-----\r\n&amp;quot;
&amp;quot;MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF\r\n&amp;quot;
&amp;quot;ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6\r\n&amp;quot;
&amp;quot;b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL\r\n&amp;quot;
&amp;quot;MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv\r\n&amp;quot;
&amp;quot;b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj\r\n&amp;quot;
&amp;quot;ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM\r\n&amp;quot;
&amp;quot;9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw\r\n&amp;quot;
&amp;quot;IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6\r\n&amp;quot;
&amp;quot;VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L\r\n&amp;quot;
&amp;quot;93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm\r\n&amp;quot;
&amp;quot;jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\r\n&amp;quot;
&amp;quot;AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA\r\n&amp;quot;
&amp;quot;A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI\r\n&amp;quot;
&amp;quot;U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs\r\n&amp;quot;
&amp;quot;N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv\r\n&amp;quot;
&amp;quot;o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU\r\n&amp;quot;
&amp;quot;5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy\r\n&amp;quot;
&amp;quot;rqXRfboQnoZsG4q5WTP468SQvvG5\r\n&amp;quot;
&amp;quot;-----END CERTIFICATE-----\r\n&amp;quot;
};

const char *tcxn_client_certificate = {
&amp;quot;-----BEGIN CERTIFICATE-----\n&amp;quot;
&amp;quot;MIIDWTCCAkGgAwIBAgIUFBSfKgH3sUcwMzyvgY6uYEnqASIwDQYJKoZIhvcNAQEL\n&amp;quot;
&amp;quot;BQAwTTFLMEkGA1UECwxCQW1hem9uIFdlYiBTZXJ2aWNlcyBPPUFtYXpvbi5jb20g\n&amp;quot;
&amp;quot;SW5jLiBMPVNlYXR0bGUgU1Q9V2FzaGluZ3RvbiBDPVVTMB4XDTE5MDEyMzA4NTQz\n&amp;quot;
&amp;quot;MloXDTQ5MTIzMTIzNTk1OVowHjEcMBoGA1UEAwwTQVdTIElvVCBDZXJ0aWZpY2F0\n&amp;quot;
&amp;quot;ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJWFrqctZUPAuQj+LyP\n&amp;quot;
&amp;quot;S3+nlhmZ0uG2qrQoiVR86Pe1MskXk7yDsyNqYtaWdoofuDZaUdnemvNmjEBO0Ms7\n&amp;quot;
&amp;quot;0aDCPLHS8o+Yk0ItVUnPJru0nMuQXRqxEgTIkpI8AQlBD11bza3QXrd4cCtDjvTL\n&amp;quot;
&amp;quot;vw4MnsnYENiUJIkTEt+D/RAzrzwEbZxdlFqRKnGTJOaYxJ736RxjVRGIp1o/VoPT\n&amp;quot;
&amp;quot;AmuhXeyQZEhqu1gsPhBhtO4NK0+sv84vhGwQcwl8yGaTqTRyTHsrcENaNFYDAkkX\n&amp;quot;
&amp;quot;soJo2T6jIHJUGKIq68XWNvu/tvEXh4Dgvzf/bFd7SIN+0OwmG8by5rBwR0NJIq0O\n&amp;quot;
&amp;quot;ynkCAwEAAaNgMF4wHwYDVR0jBBgwFoAUtgCcRnLp7Lys19niiRGYz23ME68wHQYD\n&amp;quot;
&amp;quot;VR0OBBYEFCJa9tPWc1pzU3/4dOXjYKJVIXLHMAwGA1UdEwEB/wQCMAAwDgYDVR0P\n&amp;quot;
&amp;quot;AQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4IBAQBbfTACHn8uw1zDut7o9vL03w27\n&amp;quot;
&amp;quot;1P9yiA3XmKQIRmR3gcisRUy0xci6/o0H8HxrF/3NxkQomXyqkWM2+Dg06iUGz/xD\n&amp;quot;
&amp;quot;Yz1RpIRxxmFxgiIzo4WX30qxpXVQmAO9IO+ZaGWbNl0qqp3kIwFB8R5pzKzCuuf/\n&amp;quot;
&amp;quot;WSGneeBIcjcpP6jNG6MK3uEcViPLeMfPP1KuLYss7Wa/zR1pj1fXDrNjNx/R3IdA\n&amp;quot;
&amp;quot;oTdJ16FXIgO5AKhyv/RAUJJzRqncTJQiTXJ/2TclNfJFdUBBuU8pDajHv8aFIbfK\n&amp;quot;
&amp;quot;YpBvE9Qe07IbdaduPvC4qoj7axRf0jsDI/Ivg3Ix3EeNDmES7wHptDhdxjwG\n&amp;quot;
&amp;quot;-----END CERTIFICATE-----\n&amp;quot;
};

/* Delete certificates */
    nrf_sec_tag_t sec_tag = 2000;

    int err;

    for (nrf_key_mgnt_cred_type_t type = 0; type &amp;lt; 5; type++) 
    {
        err = nrf_inbuilt_key_delete(sec_tag, type);
        log(&amp;quot;nrf_inbuilt_key_delete(%lu, %d) =&amp;gt; result=%d\n&amp;quot;, sec_tag, type, err);
    }
            
    // Provision CA Certificate
    err = nrf_inbuilt_key_write(sec_tag, NRF_KEY_MGMT_CRED_TYPE_CA_CHAIN,
                (uint8_t *)tcxn_ca_certificate, strlen(tcxn_ca_certificate));
    
    log(&amp;quot;nrf_inbuilt_key_write (%d): %d\n&amp;quot;, NRF_KEY_MGMT_CRED_TYPE_CA_CHAIN, err);
    
    if (err) 
    {
        log(&amp;quot;CA_CERTIFICATE error!\n&amp;quot;);
        return err;
    }

    // Provision Private Certificate
    err = nrf_inbuilt_key_write(sec_tag, NRF_KEY_MGMT_CRED_TYPE_PRIVATE_CERT,
        (uint8_t *)tcxn_client_private_key, strlen(tcxn_client_private_key));
    
    log(&amp;quot;nrf_inbuilt_key_write (%d): %d\n&amp;quot;, NRF_KEY_MGMT_CRED_TYPE_PRIVATE_CERT, err);

    if (err)
    {
        log(&amp;quot;CLIENT_PRIVATE_KEY error!\n&amp;quot;);
        return err;
    }

    // Provision Public Certificate
    err = nrf_inbuilt_key_write(sec_tag, NRF_KEY_MGMT_CRED_TYPE_PUBLIC_CERT,
        (uint8_t *)tcxn_client_certificate, strlen(tcxn_client_certificate));
    
    log(&amp;quot;nrf_inbuilt_key_write (%d): %d\n&amp;quot;, NRF_KEY_MGMT_CRED_TYPE_PUBLIC_CERT, err);

    if (err) 
    {
        log(&amp;quot;CLIENT_PUBLIC_CERTIFICATE error!\n&amp;quot;);
        return err;
    }&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;You need to put in some string for the private key. The deletes will all return 2 for the first run. For the second run, all 3 should return 0.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf_inbuilt_key_delete returns 2 for public certificate type</title><link>https://devzone.nordicsemi.com/thread/167351?ContentTypeID=1</link><pubDate>Wed, 23 Jan 2019 11:53:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e69d347f-8f6e-4f4c-8788-d0f32ebcf5e8</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I just did a quick test to see if I could recreate the issue:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;	printk(&amp;quot;Keys write erase test\n&amp;quot;);
	u32_t ret = nrf_inbuilt_key_write(1001, NRF_KEY_MGMT_CRED_TYPE_PUBLIC_CERT, &amp;quot;abcd&amp;quot;, 4);
	
	printk(&amp;quot;Ret: %d\n&amp;quot;, ret);

	ret = nrf_inbuilt_key_delete(1001, NRF_KEY_MGMT_CRED_TYPE_PUBLIC_CERT);

	printk(&amp;quot;Ret: %d\n&amp;quot;, ret);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;In both write and delete, the ret is &amp;#39;0&amp;#39;. Could you share your code so I can have a look?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Håkon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>