<div dir="ltr"><div>In theory, I am more than happy with having more security options in FRR, especially if some generic functions we are using can be taken out of FRR and the code maintenance can be taken care of by some other library.</div><div><br></div>I guess where I have been hesitating to respond is the sentence `Can we update...`.  I am not sure if I should read the sentence as either:<div><br></div><div>a) David Wall is saying I will do the work to update this code</div><div>b) The we implies that someone should just pick this up from the community and run with the idea.</div><div><br></div><div>If (a) then I say go for it, David!  For this work, though, I would want to see a plan of action for how this is going to be done in the code base.  Mainly so that the 2-3 people within the FRR community who really really care about how this is done won't come back and say do it completely differently and your and our time is not wasted.</div><div><br></div><div>if (b) then I say that's a great idea!  Unfortunately due to how open source development is done, until some business has a use case for this expanded functionality, this idea is going to languish.</div><div><br></div><div>Finally if you are going to do option (a), please feel free to privately send me email( or come talk to us on slack ) and we can get the ball rolling on helping you get the work done.</div><div><br></div><div>thanks!</div><div><br></div><div>donald</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 1, 2023 at 6:31 AM Christian Hopps <<a href="mailto:chopps@chopps.org">chopps@chopps.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Hi David,<br>
<br>
Add "Is there someone will to do the work and maintain the code?" to the non-library options. The answer to that q. very well could be "no" in which case the library is definitely the way to go. :)<br>
<br>
Thanks,<br>
Chris.<br>
<br>
"Ward, David - 0665 - MITLL" <<a href="mailto:david.ward@ll.mit.edu" target="_blank">david.ward@ll.mit.edu</a>> writes:<br>
<br>
> FRR has an "internal" implementation of the MD5 and SHA-256 algorithms,<br>
> including HMAC functions for both. [1] This code is under a BSD license, and<br>
> provides an alternative to linking FRR against OpenSSL, for which there were<br>
> historical (?) issues around GPL incompatibility. Several routing protocols use<br>
> one of these hash algorithms.<br>
><br>
> ospf6d was extended last year to support the OSPFv3 Authentication Trailer (RFC 7166), which may use any of HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, or HMAC-SHA-512. [2] The choice of algorithm is limited unless FRR has been compiled with OpenSSL support.<br>
><br>
> Can we update FRR's internal crypto implementation in order to overcome this limitation? For example:<br>
> * Gnulib provides a drop-in version of each of the algorithms mentioned above for inclusion in open-source projects, available under LGPL 2.1.<br>
> * FreeBSD has adapted Colin Percival's SHA-256 implementation to support the other SHA-2 algorithms (but without the HMAC functions - which would seem straightforward to adapt).<br>
> * Or should FRR rely on an external library for these functions instead? Should it allow the use of something other than OpenSSL, such as Libgcrypt?<br>
><br>
> Thanks in advance,<br>
><br>
> David<br>
><br>
><br>
> [1] The SHA-256 implementation was written by Colin Percival, originally for FreeBSD. His current version seems to be here:<br>
> <a href="https://github.com/Tarsnap/libcperciva/blob/master/alg/sha256.c" rel="noreferrer" target="_blank">https://github.com/Tarsnap/libcperciva/blob/master/alg/sha256.c</a><br>
><br>
> [2] ospf6d also supports the use of HMAC-MD5 here, despite this not being specified in RFC 7166.<br>
><br>
> _______________________________________________<br>
> dev mailing list<br>
> <a href="mailto:dev@lists.frrouting.org" target="_blank">dev@lists.frrouting.org</a><br>
> <a href="https://lists.frrouting.org/listinfo/dev" rel="noreferrer" target="_blank">https://lists.frrouting.org/listinfo/dev</a><br>
<br>
_______________________________________________<br>
dev mailing list<br>
<a href="mailto:dev@lists.frrouting.org" target="_blank">dev@lists.frrouting.org</a><br>
<a href="https://lists.frrouting.org/listinfo/dev" rel="noreferrer" target="_blank">https://lists.frrouting.org/listinfo/dev</a><br>
</blockquote></div>