<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[wolfSSL - Embedded SSL Library — [SOLVED] Some questions for SRP(Secure Remote Protocol)]]></title>
		<link>https://www.wolfssl.com/forums/topic700-solved-some-questions-for-srpsecure-remote-protocol.html</link>
		<atom:link href="https://www.wolfssl.com/forums/feed-rss-topic700.xml" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in [SOLVED] Some questions for SRP(Secure Remote Protocol).]]></description>
		<lastBuildDate>Mon, 24 Aug 2015 05:55:52 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [SOLVED] Some questions for SRP(Secure Remote Protocol)]]></title>
			<link>https://www.wolfssl.com/forums/post2156.html#p2156</link>
			<description><![CDATA[<p>Thank you moises.guimaraes. <img src="https://www.wolfssl.com/forums/img/smilies/smile.png" width="15" height="15" alt="smile" /> <br />I understood current status for SRP feature. <br />I will use another key exchange method instead of SRP.</p>]]></description>
			<author><![CDATA[null@example.com (sungyun)]]></author>
			<pubDate>Mon, 24 Aug 2015 05:55:52 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post2156.html#p2156</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] Some questions for SRP(Secure Remote Protocol)]]></title>
			<link>https://www.wolfssl.com/forums/post2153.html#p2153</link>
			<description><![CDATA[<p>Hi sungyun,</p><p>What functionality were you looking for in your project. What is the overall goal of your project? Perhaps with a little better understanding we may better support your efforts.</p><p>Kind Regards,</p><p>Kaleb</p>]]></description>
			<author><![CDATA[null@example.com (Kaleb J. Himes)]]></author>
			<pubDate>Thu, 20 Aug 2015 21:28:26 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post2153.html#p2153</guid>
		</item>
		<item>
			<title><![CDATA[Re: [SOLVED] Some questions for SRP(Secure Remote Protocol)]]></title>
			<link>https://www.wolfssl.com/forums/post2142.html#p2142</link>
			<description><![CDATA[<p>Hi Sungyun,</p><div class="quotebox"><cite>sungyun wrote:</cite><blockquote><p>How I can build the srp feature in master version ?</p></blockquote></div><p>First, you&#039;ll need to call ./autogen.sh when using our source code directly from github, it will generate the configure and makefile files for you.</p><div class="quotebox"><cite>sungyun wrote:</cite><blockquote><p>Do you have SRP client / server sample code ?</p></blockquote></div><p>Our implementation of SRP only computes the values, it doesn&#039;t handles communication. Each protocol or software that uses SRP have it&#039;s own way to exchange the SRP values over the network.</p><p>In order to better answer your other questions, could you explain to me how are you trying to use SRP? You should also notice that our implementation of SRP is a part of wolfCrypt and hasn&#039;t been integrated to our SSL/TLS implementation (wolfSSL) yet.</p><p>Best regards,<br />Moisés</p>]]></description>
			<author><![CDATA[null@example.com (moises.guimaraes)]]></author>
			<pubDate>Tue, 18 Aug 2015 19:20:06 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post2142.html#p2142</guid>
		</item>
		<item>
			<title><![CDATA[[SOLVED] Some questions for SRP(Secure Remote Protocol)]]></title>
			<link>https://www.wolfssl.com/forums/post2137.html#p2137</link>
			<description><![CDATA[<p>Hello</p><p>I have some questions for SRP of wolfssl. </p><p><span class="bbu"><strong>1st question</strong></span></p><p>How I can build the srp feature in master version ?<br />1.&nbsp; &nbsp; #&gt; git clone <a href="https://github.com/wolfSSL/wolfssl.git">https://github.com/wolfSSL/wolfssl.git</a><br />2.&nbsp; &nbsp; #&gt; ./configure --enable-srp<br />3.&nbsp; &nbsp; #&gt; bash: ./configure: No such file or directory</p><p>I can’t find configure&nbsp; in source code folder. </p><p><span class="bbu"><strong>2nd question</strong></span><br />Do you have SRP client / server sample code ?<br />I can find a just single side sample. </p><p><span class="bbu"><strong>3rd question</strong></span></p><p>How to share a SRP structure between server and client? <br />In case opensssl, srp_ctx is a part of SSL structure, so user can access srp information like username and etc in both(client/server) side. </p><p>I marked my questions in below sample source.</p><p><a href="https://github.com/wolfSSL/wolfssl/blob/4eafff0c215e7d2d6d6b70f2e27bfd26d4e62963/wolfcrypt/test/test.c">https://github.com/wolfSSL/wolfssl/blob … est/test.c</a></p><br /><p>Int srp_test(void)<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;Srp cli, srv;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;int r;<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;byte clientPubKey[80]; /* A */<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;byte serverPubKey[80]; /* B */<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;word32 clientPubKeySz = 80;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;word32 serverPubKeySz = 80;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;byte clientProof[SRP_MAX_DIGEST_SIZE]; /* M1 */<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;byte serverProof[SRP_MAX_DIGEST_SIZE]; /* M2 */<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;word32 clientProofSz = SRP_MAX_DIGEST_SIZE;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;word32 serverProofSz = SRP_MAX_DIGEST_SIZE;<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;byte username[] = &quot;user&quot;;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;word32 usernameSz = 4;<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;byte password[] = &quot;password&quot;;<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;word32 passwordSz = 8;<br />&nbsp; &nbsp; ………………………………………………………………<br />&nbsp; &nbsp; <br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;/* client knows username and password.&nbsp; &nbsp;*/<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;/* server knows N, g, salt and verifier. */<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;r = wc_SrpInit(&amp;cli, SRP_TYPE_SHA, SRP_CLIENT_SIDE);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpSetUsername(&amp;cli, username, usernameSz);<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;/* client sends username to server */ <strong> <img src="https://www.wolfssl.com/forums/img/smilies/sad.png" width="15" height="15" alt="sad" />&nbsp; <img src="https://www.wolfssl.com/forums/img/smilies/sad.png" width="15" height="15" alt="sad" />  How to send username ?</strong><br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpInit(&amp;srv, SRP_TYPE_SHA, SRP_SERVER_SIDE);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpSetUsername(&amp;srv, username, usernameSz);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpSetParams(&amp;srv, N,&nbsp; &nbsp; sizeof(N),<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g,&nbsp; &nbsp; sizeof(g),<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;salt, sizeof(salt));<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpSetVerifier(&amp;srv, verifier, sizeof(verifier));<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpGetPublic(&amp;srv, serverPubKey, &amp;serverPubKeySz);<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;/* server sends N, g, salt and B to client */ <strong> <img src="https://www.wolfssl.com/forums/img/smilies/sad.png" width="15" height="15" alt="sad" />&nbsp; <img src="https://www.wolfssl.com/forums/img/smilies/sad.png" width="15" height="15" alt="sad" />  How to send N ?</strong><br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpSetParams(&amp;cli, N,&nbsp; &nbsp; sizeof(N),<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;g,&nbsp; &nbsp; sizeof(g),<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;salt, sizeof(salt));<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpSetPassword(&amp;cli, password, passwordSz);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpGetPublic(&amp;cli, clientPubKey, &amp;clientPubKeySz);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpComputeKey(&amp;cli, clientPubKey, clientPubKeySz,<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; serverPubKey, serverPubKeySz);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpGetProof(&amp;cli, clientProof, &amp;clientProofSz);<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;/* client sends A and M1 to server */ <strong> <img src="https://www.wolfssl.com/forums/img/smilies/sad.png" width="15" height="15" alt="sad" />&nbsp; <img src="https://www.wolfssl.com/forums/img/smilies/sad.png" width="15" height="15" alt="sad" />  How to send A and M1 ?</strong><br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpComputeKey(&amp;srv, clientPubKey, clientPubKeySz,<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; serverPubKey, serverPubKeySz);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpVerifyPeersProof(&amp;srv, clientProof, clientProofSz);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpGetProof(&amp;srv, serverProof, &amp;serverProofSz);<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;/* server sends M2 to client */  How to send M2 ?<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;if (!r) r = wc_SrpVerifyPeersProof(&amp;cli, serverProof, serverProofSz);<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;wc_SrpTerm(&amp;cli);<br />&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;wc_SrpTerm(&amp;srv);<br />&nbsp; &nbsp; </p><p>&nbsp; &nbsp;&nbsp; &nbsp; &nbsp;return r;<br />&nbsp; &nbsp; }</p><br /><p><em><strong>4th question.</strong></em><br />What function can I use instead of the SSL_CTX_set_srp_username_callback of OpenSSL?<br />SSL_CTX_set_srp_username_callback is a very important to know valid timing. </p><p>Regards<br />Sunyun</p>]]></description>
			<author><![CDATA[null@example.com (sungyun)]]></author>
			<pubDate>Fri, 14 Aug 2015 06:36:41 +0000</pubDate>
			<guid>https://www.wolfssl.com/forums/post2137.html#p2137</guid>
		</item>
	</channel>
</rss>
