<font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"> <font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">Hi
All,
</font></font></p>
<p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">
</font></font></p>
<p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2"><font size="2">Based on</font> the feedbacks received, some modifications have been done in RFC-6506
implementation. The changes are listed below:
</font></font></p>

<ol><li><p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">The
        implementation now supports sha-1, sha-256, sha-384 and sha-512
        algorithms. The hash algorithm implementation (in files cryptohash.c
        and cryptohash.h) is taken from 
        https://github.com/Quagga-RE/quagga-RE/wiki/hashes. This is done by
        Denis Ovsienko.
</font></font></p>
        <p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">
</font></font></p>
        </li><li><p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">The
        CLI syntax has been changed as it now supports above mentioned hash
        algorithms.
</font></font></p>
        <p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">
</font></font></p>
        </li><li><p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">The
        configuration and operation of the authentication mechanism now done
        per interface and the per area extension is omitted.
</font></font></p>
        <p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">
</font></font></p>
        </li><li><p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">The
        logic of sequence number check in ospf6_check_sha256_digest() is
        taken from OSPFv2 that is a counterpart version of OSPFv3 and it has
        not rejected any valid packet so far.</font></font></p>
        
        </li><li><p style="margin-bottom: 0in"><font face="Liberation Serif, serif"><font size="2">Following
        lines which were for default empty key, has been removed</font></font></p>
        <p style="margin-bottom: 0in"><font color="#000000"><font face="Liberation Serif, serif"><font size="2">if
        (list_isempty (oi-&gt;auth_crypt)) <br>+ auth_key = (const u_int8_t
        *) ""; </font></font></font>
        </p>
        
        </li><li><p style="margin-bottom: 0in"><font color="#000000"><font face="Liberation Serif, serif"><font size="2">Changes
        in ospf6_packet_examin has been done and it now doesn't check for
        authenticity but it does check for size of packets with
        authentication. The packets that are received with authentication
        have authentication trailer attached with them which increases
        packet size. Similar logic has been used in counterpart version
        OPSFv2.</font></font></font></p>
        
        </li><li><p style="margin-bottom: 0in"><font color="#000000"><font face="Liberation Serif, serif"><font size="2">The
        keychain mechanism used is similar to OPSFv2 md5 keychain mechanism.</font></font></font></p>
        
        </li><li><p style="margin-bottom: 0in"><font color="#000000"><font face="Liberation Serif, serif"><font size="2">The
        stylistic issues have been removed.</font></font></font></p></li></ol></font></font>The patch files attached are<font size="2">:<br></font></font></font><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2">- P</font>atch</font></font> file for lib directory <br></font></font></font></font></font><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2">- P</font>atch</font></font></font></font></font></font></font></font></font></font></font></font></font></font> file for CLI part <br><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2">- P</font>atch</font></font></font></font></font></font></font></font></font></font></font></font> file for OSPF implementation <br><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font color="black" face="Verdana,Arial,Helvetica" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2">- P</font>atch</font></font></font></font></font></font></font></font></font></font></font></font> file of <font size="2">whole</font> project <br><br>Thanks and Regards<br>Jyotsna Priya<br><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font size="2">Telecom Technology - NextGen R&amp;D,</font></font><br>Tata Consultancy Services<br><br><div><blockquote style="padding-right:0px;padding-left:5px;margin-left:5px;border-left:solid black 2px;margin-right:0px"><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2"><font color="#990099"></font><div><blockquote style="padding-right:0px;padding-left:5px;margin-left:5px;border-left:solid black 2px;margin-right:0px">To: Lokesh Pareta &lt;lokesh.pareta@tcs.com&gt;<br>From: Denis Ovsienko &lt;infrastation@yandex.ru&gt;<br>Date: 06/18/2013 01:03AM<br>cc: quagga-dev@lists.quagga.net<br>Subject: Re: [quagga-dev 10527] RFC-6506(Supporting Authentication Trailer for OSPFv3) implementation in quagga-0.99.21 version<br><br><pre>11.06.2013, 12:57, "Lokesh Pareta" &lt;lokesh.pareta@tcs.com&gt;:
&gt; Hi Denis,
&gt;
&gt; Thanks for you feedback. In response to your suggestion, we require more inputs on following points:
&gt;
&gt; * &nbsp;"It is possible to see that these prior works establish and use a common internal API to cryptographic hash algorithms implemented in a library, libgcrypt in this case. This approach provides agility without the cost of duplicating and maintaining the source code of each hash algorithm in use. Agility matters within the scope of this work, because RFC6506 sets SHA-256 as the mandatory-to-implement, but not the only possible hash algorithm. The contents of sha256.c and sha256.h together with much of the code in ospf6_check_sha256_digest() and ospf6_make_sha256_digest(), which implement the construct specified in RFC6506 (and derived from RFC4822), can be replaced with a call to hash_key_compress_rfc4822() and hash_make_hmac()."
&gt;
&gt; TCS inference&nbsp;- &nbsp;The functions hash_key_compress_rfc4822() and hash_make_hmac() are present in the code downloaded from the link as suggested , but were not present in original code of quagga-0.99.21(as downloaded from quagga site before our implementation started) and even in current available version quagga-0.99.22. Kindly confirm whether this code piece (hash_key_compress_rfc4822() , hash_make_hmac() and libgcrypt) is in process of inclusion in upcoming version of quagga so that it can be used directly in RFC-6506 implementation. If not, kindly suggest &nbsp;further steps so as to proceed with the implementation.
&gt;

Hi Lokesh.

Your concern above is very clear, but some things are beyond my responsibility. That is, everyone is in their right to decide whether their version of Quagga includes or not the works I (or anybody else) occasionally contribute.

As a subscriber to this mailing list I can share some expertise on authentication and/or the source code I have authored, but for the rest you would have to make your own judgement. All that said, I really appreciate your will to implement modern specifications and contribute back to Free Software.

&gt; * "ospf6_make_sha256_digest() would default to an empty string key when authentication is configured without any keys".
&gt;
&gt; TCS inference&nbsp;&#8211;&nbsp;CLI has been retested. In CLI, for ospf6d daemon, while entering command "ipv6 opspf6 sha-256-key &lt;key-value&gt; sha-256 &lt;password&gt; ", when user tries to enter empty &lt;key-value&gt; or &lt;password&gt;, &nbsp;it returns an error message "Command incomplete" . Thus authentication without any keys is not possible.
&gt;

No doubt I may be wrong here, but then the code shouldn't allow for two execution branches:

+  if (list_isempty (oi-&gt;auth_crypt))
+    auth_key = (const u_int8_t *) "";
+  else
+    {
+      ck = listgetdata (listtail(oi-&gt;auth_crypt));
+      auth_key = ck-&gt;auth_key;
+    }

-- 
 Denis Ovsienko
</pre></blockquote></div><div></div></font></blockquote></div>
<div id="MIMEAttachInfoDiv" style="display:none" title="octet-stream|RFC6506_Lib.patch"></div><div id="MIMEAttachInfoDiv" style="display:none" title="octet-stream|RFC6506_CLI.patch"></div><div id="MIMEAttachInfoDiv" style="display:none" title="octet-stream|RFC6506_Implementation.patch"></div><div id="MIMEAttachInfoDiv" style="display:none" title="octet-stream|RFC6506.patch"></div><div></div></font><p>=====-----=====-----=====<br>
Notice: The information contained in this e-mail<br>
message and/or attachments to it may contain <br>
confidential or privileged information. If you are <br>
not the intended recipient, any dissemination, use, <br>
review, distribution, printing or copying of the <br>
information contained in this e-mail message <br>
and/or attachments to it are strictly prohibited. If <br>
you have received this communication in error, <br>
please notify us by reply e-mail or telephone and <br>
immediately and permanently delete the message <br>
and any attachments. Thank you</p>

<p></p>