<?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>nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/91745/nrf9160dk-ecdsa-non-deterministic</link><description>Hello! We are trying to sign our data using ECDSA ( https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/samples/crypto/ecdsa/README.html ) , so we can send our information to an Ethereum Blockchain. We discovered that ECDSA non-deterministic</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 29 Sep 2022 11:41:42 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/91745/nrf9160dk-ecdsa-non-deterministic" /><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/388557?ContentTypeID=1</link><pubDate>Thu, 29 Sep 2022 11:41:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b09a4ea5-3de3-4d2d-89da-ca213f07dc15</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;Yes, you cannot do anything now using our library.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/388231?ContentTypeID=1</link><pubDate>Tue, 27 Sep 2022 22:00:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d25522bd-13b4-4f54-abc2-2d86920a6a95</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;So I can&amp;#39;t do anything for now...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/388193?ContentTypeID=1</link><pubDate>Tue, 27 Sep 2022 15:11:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7ccf779-a092-40c7-8a6b-28b0861e9680</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user="Gioele"]I only want to verify my ecdsa.[/quote]
&lt;p&gt;I understand that. Unfortunately, it seems that your request exceeds what we are currently supporting with our binary library.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/387770?ContentTypeID=1</link><pubDate>Sun, 25 Sep 2022 16:42:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c61e265a-142d-4420-86ab-671b85dc4144</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;I understood that. I only want to verify my ecdsa.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/387729?ContentTypeID=1</link><pubDate>Fri, 23 Sep 2022 15:34:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:046523da-b564-4091-ac49-d4776f50f11e</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Unfortunately, our binary library provides a specific set of features that does not include Ethereum block chain support.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/387441?ContentTypeID=1</link><pubDate>Thu, 22 Sep 2022 09:55:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77aa6b73-7922-4180-9b18-19d73202e8aa</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;int verify_message(void)
{
	psa_status_t status;

	LOG_INF(&amp;quot;Verifying ECDSA signature...&amp;quot;);

	/* Verify the signature of the hash */
	status = psa_verify_hash(pub_key_handle,
				 PSA_ALG_ECDSA(PSA_ALG_SHA3_256),
				 m_hash,
				 sizeof(m_hash),
				 m_signature,
				 sizeof(m_signature));
	if (status != PSA_SUCCESS) {
		LOG_INF(&amp;quot;psa_verify_hash failed! (Error: %d)&amp;quot;, status);
		return APP_ERROR;
	}

	LOG_INF(&amp;quot;Signature verification was successful!&amp;quot;);

	return APP_SUCCESS;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This is the code to verify our sign but we don&amp;#39;t know the public key.&lt;br /&gt;The problem is always the same, we need some values we can&amp;#39;t find inside this library.&lt;br /&gt;For example, we could obtain the public key from the private key but we&amp;nbsp;need the generation point G.&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;span&gt;The public key is calculated from the private key using elliptic curve multiplication, which is practically irreversible:&amp;nbsp;&lt;/span&gt;&lt;em&gt;K&lt;/em&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;em&gt;k&lt;/em&gt;&lt;span&gt;&amp;nbsp;*&amp;nbsp;&lt;/span&gt;&lt;em&gt;G&lt;/em&gt;&lt;span&gt;, where&amp;nbsp;&lt;/span&gt;&lt;em&gt;k&lt;/em&gt;&lt;span&gt;&amp;nbsp;is the private key,&amp;nbsp;&lt;/span&gt;&lt;em&gt;G&lt;/em&gt;&lt;span&gt;&amp;nbsp;is a constant point called&amp;nbsp;&lt;/span&gt;&lt;a id="idm140144412218560" data-type="indexterm" data-primary="generator point"&gt;&lt;/a&gt;&lt;span&gt;the&amp;nbsp;&lt;/span&gt;&lt;em&gt;generator point&lt;/em&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;em&gt;K&lt;/em&gt;&lt;span&gt;&amp;nbsp;is the resulting public key, and * is the special elliptic curve &amp;ldquo;multiplication&amp;rdquo; operator. Note that elliptic curve multiplication is not like normal multiplication. It shares functional attributes with normal multiplication, but that is about it. For example, the reverse operation (which would be division for normal numbers), known as &amp;ldquo;finding the discrete logarithm&amp;rdquo;&amp;mdash;i.e., calculating&amp;nbsp;&lt;/span&gt;&lt;em&gt;k&lt;/em&gt;&lt;span&gt;&amp;nbsp;if you know&amp;nbsp;&lt;/span&gt;&lt;em&gt;K&lt;/em&gt;&lt;span&gt;&amp;mdash;is as difficult as trying all possible values of&amp;nbsp;&lt;/span&gt;&lt;em&gt;k&lt;/em&gt;&lt;span&gt;&amp;nbsp;(a brute-force search that will likely take more time than this universe will allow for).&amp;quot;&lt;br /&gt;&lt;br /&gt;We need to use the verify method but we&amp;nbsp;need the correct values.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386949?ContentTypeID=1</link><pubDate>Mon, 19 Sep 2022 16:41:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4e460998-58db-4ee4-9796-edb62f58d0a7</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;In order to get to common understanding, I would suggest that you read&amp;nbsp;&lt;a href="https://www.secg.org/sec1-v2.pdf"&gt;chapter 4.1.4 verifying operation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386604?ContentTypeID=1</link><pubDate>Fri, 16 Sep 2022 11:13:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f987536d-632e-4820-9b83-4312eec97bf8</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;We understood that&amp;nbsp;the Nordic&amp;nbsp;code doesn&amp;#39;t fit correctly with Keccak256 and Ethereum but we saw that after some&amp;nbsp;attempts the ECDSA is correct.&lt;br /&gt;So this is our idea. We could verify each time the correctness of our ECDSA and when the ECDSA is correct we can use that sign.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://cryptobook.nakov.com/digital-signatures/ecdsa-sign-verify-messages"&gt;cryptobook.nakov.com/.../ecdsa-sign-verify-messages&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-xd6kpl r-1ygmrgt r-1yzf0co r-bnwqim r-417010" data-key="9b04355f9f6e4f119cf6e7a093e821d8"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-eqz5dr r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="9b04355f9f6e4f119cf6e7a093e821d8"&gt;
&lt;div class="css-901oao r-1nf4jbm r-1loqt21 r-fdjqy7 r-1xnzce8" dir="auto" data-rnw-media-class="211__210"&gt;&lt;span data-key="1c11a9a176aa4297961be998625cd482"&gt;ECDSA Verify Signature&lt;/span&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 class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-xd6kpl r-tskmnb r-1yzf0co r-bnwqim r-417010" data-key="45a4a60b1e8a4f05b0097ee782982320"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-eqz5dr r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="45a4a60b1e8a4f05b0097ee782982320"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="1ab81fcdb437489eac74aa680a8ec8ea"&gt;The algorithm to &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:1"&gt;verify a ECDSA signature&lt;/strong&gt; takes as input the signed message &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:3"&gt;msg&lt;/em&gt;&lt;/strong&gt; + the signature {&lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:5"&gt;r&lt;/em&gt;&lt;/strong&gt;, &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:7"&gt;s&lt;/em&gt;&lt;/strong&gt;} produced from the signing algorithm + the public key &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:9"&gt;pubKey&lt;/em&gt;&lt;/strong&gt;, corresponding to the signer&amp;#39;s private key. The output is boolean value: &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:11"&gt;valid&lt;/em&gt;&lt;/strong&gt; or &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:13"&gt;invalid&lt;/em&gt;&lt;/strong&gt; signature. The &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="1ab81fcdb437489eac74aa680a8ec8ea:15"&gt;ECDSA signature verify&lt;/strong&gt; algorithm works as follows (with minor simplifications):&lt;/span&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 class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;ul&gt;
&lt;li class="css-4rbku5 r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-iphfwy r-wk8lta r-1yzf0co r-bnwqim r-417010" data-key="1d33419bd5334cdd9d4b2867584934ac"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="1d33419bd5334cdd9d4b2867584934ac"&gt;&lt;span class="r-1awozwy r-1nf4jbm r-6koalj r-18u37iz r-gg6oyi r-ubezar r-16dba41 r-1472mwg r-135wba7 r-1m04atk r-1pyaxff"&gt;1.&lt;/span&gt;
&lt;div class="css-1dbjc4n r-13awgt0"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-key="295638fc6a184a8cbaeb2b318db4fbdd"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="5e29671510044b8daa1d5ac4fbb5b030"&gt;Calculate the message &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="5e29671510044b8daa1d5ac4fbb5b030:1"&gt;hash&lt;/strong&gt;, with the same cryptographic hash function used during the signing: &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="5e29671510044b8daa1d5ac4fbb5b030:3"&gt;h&lt;/em&gt;&lt;/strong&gt; = hash(&lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="5e29671510044b8daa1d5ac4fbb5b030:5"&gt;msg&lt;/em&gt;&lt;/strong&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;ul&gt;
&lt;li class="css-4rbku5 r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-iphfwy r-1h8ys4a r-1yzf0co r-bnwqim r-417010" data-key="3c0f50d86cc943efa7c6f2494c98e15c"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="3c0f50d86cc943efa7c6f2494c98e15c"&gt;&lt;span class="r-1awozwy r-1nf4jbm r-6koalj r-18u37iz r-gg6oyi r-ubezar r-16dba41 r-1472mwg r-135wba7 r-1m04atk r-1pyaxff"&gt;2.&lt;/span&gt;
&lt;div class="css-1dbjc4n r-13awgt0"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-key="8baad07b28fd43318db323c102f4c9e3"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="7930ecc1c3164058b44e2c7b3607ee2f"&gt;Calculate the modular inverse of the signature proof: &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="7930ecc1c3164058b44e2c7b3607ee2f:1"&gt;s1&lt;/em&gt;&lt;/strong&gt; = &lt;/span&gt;
&lt;div class="css-1dbjc4n r-42olwf r-z2wwpe r-d045u9 r-xoduu5 r-1pos5eu"&gt;&lt;span class="r-1nf4jbm"&gt;&lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;s&amp;minus;1(modn)s^{-1} \pmod n&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;s&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&amp;minus;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace allowbreak"&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathrm"&gt;mod&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span data-key="a42a0cb4260740bcac8cb3481a9f16f8"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;ul&gt;
&lt;li class="css-4rbku5 r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-iphfwy r-1h8ys4a r-1yzf0co r-bnwqim r-417010" data-key="a4b22f6fefb748068a55406bc6c432ae"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="a4b22f6fefb748068a55406bc6c432ae"&gt;&lt;span class="r-1awozwy r-1nf4jbm r-6koalj r-18u37iz r-gg6oyi r-ubezar r-16dba41 r-1472mwg r-135wba7 r-1m04atk r-1pyaxff"&gt;3.&lt;/span&gt;
&lt;div class="css-1dbjc4n r-13awgt0"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-key="56e757fb3f2544f7b848cbdbc7eb4172"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="0a93e7cea2f64dd5b5faa33e59b49483"&gt;Recover the random point used during the signing: &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:1"&gt;R&amp;#39;&lt;/em&gt;&lt;/strong&gt; = (&lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:3"&gt;h&lt;/em&gt;&lt;/strong&gt; * &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:5"&gt;s1&lt;/strong&gt;) * &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:7"&gt;G&lt;/strong&gt; + (&lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:9"&gt;r&lt;/em&gt;&lt;/strong&gt; * &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:11"&gt;s1&lt;/em&gt;&lt;/strong&gt;) * &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="0a93e7cea2f64dd5b5faa33e59b49483:13"&gt;pubKey&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;ul&gt;
&lt;li class="css-4rbku5 r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-iphfwy r-1h8ys4a r-1yzf0co r-bnwqim r-417010" data-key="c4a4b5dd90e342dab00e600a05878bc2"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="c4a4b5dd90e342dab00e600a05878bc2"&gt;&lt;span class="r-1awozwy r-1nf4jbm r-6koalj r-18u37iz r-gg6oyi r-ubezar r-16dba41 r-1472mwg r-135wba7 r-1m04atk r-1pyaxff"&gt;4.&lt;/span&gt;
&lt;div class="css-1dbjc4n r-13awgt0"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-key="59735eafd4c3460f894b0ebc3636c0ce"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="eeae6bf1751e4a5a8ef5cedbf13fb683"&gt;Take from &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="eeae6bf1751e4a5a8ef5cedbf13fb683:1"&gt;R&amp;#39;&lt;/em&gt;&lt;/strong&gt; its x-coordinate: &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="eeae6bf1751e4a5a8ef5cedbf13fb683:3"&gt;r&amp;#39;&lt;/em&gt;&lt;/strong&gt; = &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="eeae6bf1751e4a5a8ef5cedbf13fb683:5"&gt;R&amp;#39;&lt;/em&gt;&lt;/strong&gt;&lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="eeae6bf1751e4a5a8ef5cedbf13fb683:6"&gt;.x&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;ul&gt;
&lt;li class="css-4rbku5 r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-1mdbw0j r-1h8ys4a r-1yzf0co r-bnwqim r-417010" data-key="c9aaf1905d0c45ca85c46477e01028bb"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="c9aaf1905d0c45ca85c46477e01028bb"&gt;&lt;span class="r-1awozwy r-1nf4jbm r-6koalj r-18u37iz r-gg6oyi r-ubezar r-16dba41 r-1472mwg r-135wba7 r-1m04atk r-1pyaxff"&gt;5.&lt;/span&gt;
&lt;div class="css-1dbjc4n r-13awgt0"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-key="f01bed7f55444dda96a18d2427d381fc"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="fbfec756779b4f71af79dc4165d9af41"&gt;Calculate the signature validation &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="fbfec756779b4f71af79dc4165d9af41:1"&gt;result&lt;/strong&gt; by comparing whether &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="fbfec756779b4f71af79dc4165d9af41:3"&gt;r&amp;#39;&lt;/em&gt;&lt;/strong&gt; == &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="fbfec756779b4f71af79dc4165d9af41:5"&gt;r&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJoZWFkaW5nLTElMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMkVDRFNBJTIwVmVyaWZ5JTIwU2lnbmF0dXJlJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyZmIwZmI0NmEwMTNhNDE4MThlNjZjZWJlY2M4MDgwOWYlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjJlNWY2YTIwNzcwOTI0NDRmOGZmMTkxNTA0NDQxZTQ4NiUyMiU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMnBhcmFncmFwaCUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyVGhlJTIwYWxnb3JpdGhtJTIwdG8lMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnZlcmlmeSUyMGElMjBFQ0RTQSUyMHNpZ25hdHVyZSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMHRha2VzJTIwYXMlMjBpbnB1dCUyMHRoZSUyMHNpZ25lZCUyMG1lc3NhZ2UlMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMm1zZyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyQiUyMHRoZSUyMHNpZ25hdHVyZSUyMCU3QiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyciUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyQyUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIycyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiU3RCUyMHByb2R1Y2VkJTIwZnJvbSUyMHRoZSUyMHNpZ25pbmclMjBhbGdvcml0aG0lMjAlMkIlMjB0aGUlMjBwdWJsaWMlMjBrZXklMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnB1YktleSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyQyUyMGNvcnJlc3BvbmRpbmclMjB0byUyMHRoZSUyMHNpZ25lcidzJTIwcHJpdmF0ZSUyMGtleS4lMjBUaGUlMjBvdXRwdXQlMjBpcyUyMGJvb2xlYW4lMjB2YWx1ZSUzQSUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIydmFsaWQlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjBvciUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyaW52YWxpZCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMHNpZ25hdHVyZS4lMjBUaGUlMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMkVDRFNBJTIwc2lnbmF0dXJlJTIwdmVyaWZ5JTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwYWxnb3JpdGhtJTIwd29ya3MlMjBhcyUyMGZvbGxvd3MlMjAod2l0aCUyMG1pbm9yJTIwc2ltcGxpZmljYXRpb25zKSUzQSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMjFhYjgxZmNkYjQzNzQ4OWVhYzc0YWE2ODBhOGVjOGVhJTIyJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyNDVhNGE2MGIxZThhNGYwNWIwMDk3ZWU3ODI5ODIzMjAlMjIlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJsaXN0LW9yZGVyZWQlMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmxpc3QtaXRlbSUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJDYWxjdWxhdGUlMjB0aGUlMjBtZXNzYWdlJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJoYXNoJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTJDJTIwd2l0aCUyMHRoZSUyMHNhbWUlMjBjcnlwdG9ncmFwaGljJTIwaGFzaCUyMGZ1bmN0aW9uJTIwdXNlZCUyMGR1cmluZyUyMHRoZSUyMHNpZ25pbmclM0ElMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMmglMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlM0QlMjBoYXNoKCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIybXNnJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMml0YWxpYyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyKSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMjVlMjk2NzE1MTAwNDRiOGRhYTFkNWFjNGZiYjViMDMwJTIyJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyMjk1NjM4ZmM2YTE4NGE4Y2JhZWIyYjMxOGRiNGZiZGQlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjIxZDMzNDE5YmQ1MzM0Y2RkOWQ0YjI4Njc1ODQ5MzRhYyUyMiU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmxpc3QtaXRlbSUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJDYWxjdWxhdGUlMjB0aGUlMjBtb2R1bGFyJTIwaW52ZXJzZSUyMG9mJTIwdGhlJTIwc2lnbmF0dXJlJTIwcHJvb2YlM0ElMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnMxJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMml0YWxpYyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwJTNEJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyNzkzMGVjYzFjMzE2NDA1OGI0NGUyYzdiMzYwN2VlMmYlMjIlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJpbmxpbmUlMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaW5saW5lLW1hdGglMjIlMkMlMjJpc1ZvaWQlMjIlM0F0cnVlJTJDJTIyZGF0YSUyMiUzQSU3QiUyMmZvcm11bGElMjIlM0ElMjJzJTVFJTdCLTElN0QlMjAlNUMlNUNwbW9kJTIwbiUyMiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIydGV4dCUyMiUyQyUyMmxlYXZlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyYmJjM2JmY2U4ZmE2NDBkMzliOTU2ZDc1NDcyY2VmZTklMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjJkZmEzOGRiOWJjMDk0ZmVhODY3Y2IxNTI1YzUzODkxZiUyMiU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMmE0MmEwY2I0MjYwNzQwYmNhYzhjYjM0ODFhOWYxNmY4JTIyJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyOGJhYWQwN2IyOGZkNDMzMThkYjMyM2MxMDJmNGM5ZTMlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjIzYzBmNTBkODZjYzk0M2VmYTdjNmYyNDk0Yzk4ZTE1YyUyMiU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmJsb2NrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmxpc3QtaXRlbSUyMiUyQyUyMmlzVm9pZCUyMiUzQWZhbHNlJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCUyQyUyMm5vZGVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIycGFyYWdyYXBoJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIybGVhdmVzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJSZWNvdmVyJTIwdGhlJTIwcmFuZG9tJTIwcG9pbnQlMjB1c2VkJTIwZHVyaW5nJTIwdGhlJTIwc2lnbmluZyUzQSUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyUiclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlM0QlMjAoJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJoJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMml0YWxpYyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwKiUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyczElMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIpJTIwKiUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyRyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMCUyQiUyMCglMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAqJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJzMSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiklMjAqJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJwdWJLZXklMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyMGE5M2U3Y2VhMmY2NGRkNWI1ZmFhMzNlNTliNDk0ODMlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjI1NmU3NTdmYjNmMjU0NGY3Yjg0OGNiZGJjN2ViNDE3MiUyMiU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMmE0YjIyZjZmZWZiNzQ4MDY4YTU1NDA2YmM2YzQzMmFlJTIyJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIybGlzdC1pdGVtJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMlRha2UlMjBmcm9tJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJSJyUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJpdGFsaWMlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMGl0cyUyMHgtY29vcmRpbmF0ZSUzQSUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyciclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlM0QlMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMlInJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMml0YWxpYyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyLnglMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyZWVhZTZiZjE3NTFlNGE1YThlZjVjZWRiZjEzZmI2ODMlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjI1OTczNWVhZmQ0YzM0NjBmODk0YjBlYmMzNjM2YzBjZSUyMiU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMmM0YTRiNWRkOTBlMzQyZGFiMDBlNjAwYTA1ODc4YmMyJTIyJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIyYmxvY2slMjIlMkMlMjJ0eXBlJTIyJTNBJTIybGlzdC1pdGVtJTIyJTJDJTIyaXNWb2lkJTIyJTNBZmFsc2UlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMkNhbGN1bGF0ZSUyMHRoZSUyMHNpZ25hdHVyZSUyMHZhbGlkYXRpb24lMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnJlc3VsdCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMGJ5JTIwY29tcGFyaW5nJTIwd2hldGhlciUyMCUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyciclMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlM0QlM0QlMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnIlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyaXRhbGljJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyZmJmZWM3NTY3NzliNGY3MWFmNzlkYzQxNjVkOWFmNDElMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjJmMDFiZWQ3ZjU1NDQ0ZGRhOTZhMThkMjQyN2QzODFmYyUyMiU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMmM5YWFmMTkwNWQwYzQ1Y2E4NWM0NjQ3N2UwMTAyOGJiJTIyJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyMDgxMzAwZmM1ZGNjNDQzMTk4NDY2YTEyMmMzOWNjNzElMjIlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMlRoZSUyMGdlbmVyYWwlMjBpZGVhJTIwb2YlMjB0aGUlMjBzaWduYXR1cmUlMjB2ZXJpZmljYXRpb24lMjBpcyUyMHRvJTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJyZWNvdmVyJTIwdGhlJTIwcG9pbnQlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMm1hcmslMjIlMkMlMjJ0eXBlJTIyJTNBJTIyYm9sZCUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjIlMjAlMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMlInJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMml0YWxpYyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTIwdXNpbmclMjB0aGUlMjBwdWJsaWMlMjBrZXklMjBhbmQlMjBjaGVjayUyMHdoZXRoZXIlMjBpdCUyMGlzJTIwc2FtZSUyMHBvaW50JTIwJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTJDJTdCJTIyb2JqZWN0JTIyJTNBJTIybGVhZiUyMiUyQyUyMnRleHQlMjIlM0ElMjJSJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMml0YWxpYyUyMiUyQyUyMmRhdGElMjIlM0ElN0IlN0QlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJtYXJrJTIyJTJDJTIydHlwZSUyMiUzQSUyMmJvbGQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTdEJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCUyQyU3QiUyMm9iamVjdCUyMiUzQSUyMmxlYWYlMjIlMkMlMjJ0ZXh0JTIyJTNBJTIyJTJDJTIwZ2VuZXJhdGVkJTIwcmFuZG9tbHklMjBkdXJpbmclMjB0aGUlMjBzaWduaW5nJTIwcHJvY2Vzcy4lMjIlMkMlMjJtYXJrcyUyMiUzQSU1QiU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjI5YTI1N2ExNTQ2NTQ0YmI2OWIwZDE3ZGQwMzVlMTI5NyUyMiU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMjA3MjRiOWVhNmUyMDRjZGI4NTk4MzMwNGI5OTk0YTg5JTIyJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyMzBiYWRlYTljNzg0NDYwMmFhYjU3ZWMyMjRhMmE5OGMlMjIlN0Q="&gt;
&lt;div class="css-1dbjc4n r-bnwqim"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-18u37iz r-16y2uox r-1wbh5a2 r-1777fci" data-rnw-media-class="2273-196__2271-_b1430-196"&gt;
&lt;div class="css-1dbjc4n r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1l5ssaz"&gt;
&lt;div class="css-1dbjc4n" data-rnw-media-class="2272-__2270"&gt;
&lt;div class="css-1dbjc4n"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-xd6kpl r-tskmnb r-1yzf0co r-bnwqim r-417010" data-key="0724b9ea6e204cdb85983304b9994a89"&gt;
&lt;div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1ro0kt6 r-eqz5dr r-16y2uox r-1wbh5a2 r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010" data-block-content="0724b9ea6e204cdb85983304b9994a89"&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="9a257a1546544bb69b0d17dd035e1297"&gt;The general idea of the signature verification is to &lt;strong class="r-b88u0q" data-slate-leaf="true" data-offset-key="9a257a1546544bb69b0d17dd035e1297:1"&gt;recover the point&lt;/strong&gt; &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="9a257a1546544bb69b0d17dd035e1297:3"&gt;R&amp;#39;&lt;/em&gt;&lt;/strong&gt; using the public key and check whether it is same point &lt;strong class="r-b88u0q" data-slate-leaf="true"&gt;&lt;em class="r-36ujnk" data-slate-leaf="true" data-offset-key="9a257a1546544bb69b0d17dd035e1297:5"&gt;R&lt;/em&gt;&lt;/strong&gt;, generated randomly during the signing process.&lt;/span&gt;&lt;/div&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="9a257a1546544bb69b0d17dd035e1297"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="9a257a1546544bb69b0d17dd035e1297"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="9a257a1546544bb69b0d17dd035e1297"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="css-901oao r-1nf4jbm r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-fdjqy7 r-1xnzce8" dir="auto"&gt;&lt;span data-key="9a257a1546544bb69b0d17dd035e1297"&gt;There is the&amp;nbsp;verification of ECDSA implemented by Nordic but we need the Public key. We only have the private key.&lt;/span&gt;&lt;span data-key="9a257a1546544bb69b0d17dd035e1297"&gt;&lt;br /&gt;Thank you!&lt;/span&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: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386432?ContentTypeID=1</link><pubDate>Thu, 15 Sep 2022 14:16:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:925383c9-bb0d-4570-b009-3ace5a6917c0</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;Unfortunately, we do not have support for Ethereum. It is not supported in CryptoCell hardware which means that software implementation would be needed.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386246?ContentTypeID=1</link><pubDate>Wed, 14 Sep 2022 15:53:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cbaad381-19ee-49b0-9f07-15d2fa9fc8d4</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;Is there a way with this code to verify the signature of ECDSA?&lt;/p&gt;
&lt;p&gt;Thank you very much!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386034?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 15:01:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:73d86049-6281-40f9-ae26-144a4b51de0b</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;&lt;span&gt;So There is nothing that&lt;/span&gt;&lt;span&gt;&amp;nbsp;can I&amp;nbsp;&lt;/span&gt;&lt;span&gt;do..?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386030?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 14:52:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:49576c42-e6ff-4980-b4bd-ac1d36f48c06</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;The issue is not whether your keccak256 is correct or not. There is a notion on the algorithm being used. Even though keccak256 and sha-256 have the same length, they cannot be used interchangeably. You use PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256) in the code, but even with hashed input, the result might be wrong. It is important that you use same hash algorithm as the input.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386023?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 14:22:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f4c9659-f027-4025-ac83-657067f96744</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;We are sure that our keccak256 is correct. Are you saying that the problem is the input? Both Keccak256 and SHA256 have the same length. In each case, we noticed that sometimes our output is correct. What should we do now? We need that our code works!&lt;br /&gt;The code of the example supports the ECDSA non-deterministic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/386018?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 14:15:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd1f33c5-e18e-4ae3-bb0a-d1675cd1b857</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;I have got a prompt reply.&lt;br /&gt;&lt;br /&gt;We currently do not support Ethereum blockchain neither in MbedTLS nor in crypto runtimes. In addition, we do not support keccak256. We only support Deterministic ECDSA using HMAC_DRBG which uses SHA-256. In this case, SHA-256 (not keccak256) is the only valid hash for the input. We check deterministic ECDSA with SHA-256 and verify it with NIST test materials. It seems that the root issue in your case is keccak256 which is not supported and therefore leads to a wrong result.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385924?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 11:02:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c2a96663-b562-447b-8142-65ab54af3707</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;Please note that the reply might not be quick, but I&amp;#39;ll inform you when I get it.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385906?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 09:49:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab056b29-fd24-477e-9378-c00b2ee1436d</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;&lt;span&gt;Perfect, I hope for a quick reply. For now, thank you very much!&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385874?ContentTypeID=1</link><pubDate>Tue, 13 Sep 2022 08:49:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6da7af07-9a27-4571-baea-66f8f5619176</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;I have made an internal inquiry related to your question. &lt;br /&gt;We are planning to perform some tests. Please note that this may take at least several days. I&amp;#39;ll get back to you when I get new information.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385747?ContentTypeID=1</link><pubDate>Mon, 12 Sep 2022 13:04:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:654d42d0-3fa3-443f-8dd7-f4dad29d66f1</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;I send the transaction to the Blockchain, or&amp;nbsp;I just use a transaction decoder. These methods show me if the transaction is correct or not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385650?ContentTypeID=1</link><pubDate>Mon, 12 Sep 2022 08:32:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b8953b6e-c703-4a4d-8f1d-811c53cb9893</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;Which criteria did you use to determine the validity of the raw transaction?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385564?ContentTypeID=1</link><pubDate>Fri, 09 Sep 2022 17:51:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7fc3b9a-d1de-427b-8897-8167a955aa7c</guid><dc:creator>Gioele</dc:creator><description>&lt;p&gt;&lt;span&gt;Okay, now I will try to explain all the procedures.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Like I said we need to create a raw transaction for an Ethereum Blockchain.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;To create the raw transaction we need to follow some steps:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;1)Make the RLP of the information&lt;/span&gt;&lt;br /&gt;&lt;span&gt;2)Make the Keccack256 of the RLP above&lt;/span&gt;&lt;br /&gt;&lt;span&gt;3)Make the ECDSA of the Keccack256 resulting&lt;/span&gt;&lt;br /&gt;&lt;span&gt;4)Make another time the RLP of the information plus the values of the sign of the ECDSA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;We make this procedure for any time we need to create a transaction.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;We use ECDSA non-deterministic so the values of the sign are different every time. We are mathematically sure of the whole procedure, the only thing that we can&amp;#39;t be sure of is the ECDSA. Sometimes the raw transaction is correct the first time, sometimes we need to repeat the procedure to obtain different sign values because no&lt;/span&gt;&lt;span&gt;t&amp;nbsp;&lt;/span&gt;&lt;span&gt;always the raw transaction is considered valid. The problem is related to the ECDSA.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF9160DK ECDSA non-deterministic</title><link>https://devzone.nordicsemi.com/thread/385365?ContentTypeID=1</link><pubDate>Thu, 08 Sep 2022 15:43:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ad44801-16d9-468e-87f8-435b95aaabb4</guid><dc:creator>dejans</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
[quote user=""]We discovered that ECDSA non-deterministic algorithm is not so accurate.[/quote]
&lt;p&gt;Could you describe the procedure how you determined that the algorithm is not so accurate? In which way is it not so accurate?&lt;/p&gt;
[quote user=""]There is the possibility that the sign of ECDSA is not correct on the first attempt, but we need to execute our application more times.[/quote]
&lt;p&gt;Could you elaborate on this?&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Dejan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>