Thread (43 messages) 43 messages, 15 authors, 2018-07-26

Re: Hash algorithm analysis

flat view

From: Gilles Van Assche <hidden>
Date: 2018-06-15 10:32:52

On 14/06/18 01:58, brian m. carlson wrote:
quoted
quoted
I imported the optimized 64-bit implementation of KangarooTwelve.
The AVX2 implementation was not considered for licensing reasons
(it's partially generated from external code, which falls foul of
the GPL's "preferred form for modifications" rule). 
Indeed part of the AVX2 code in the Keccak code package is an
extension of the implementation in OpenSSL (written by Andy
Polyakov). The assembly code is generated by a Perl script, and we
extended it to fit in the KCP's internal API.

Would it solve this licensing problem if we remap our extensions to
the Perl script, which would then become "the source"? 
The GPLv2 requires "the preferred form of the work for making
modifications to it". If that form is the Perl script, then yes, that
would be sufficient. If your code is dissimilar enough that editing it
directly is better than editing the Perl script, then it might already
meet the definition.

I don't do assembly programming, so I don't know what forms one
generally wants for editing assembly. Apparently OpenSSL wants a Perl
script, but that is, I understand, less common. What would you use if
you were going to improve it?
The Perl script would be more flexible in case one needs to improve the
implementation. It allows one to use meaningful symbolic names for the
registers. My colleague Ronny, who did the extension, worked directly
with physical register names and considered the output of the Perl
script as his source. But this extension could probably be done also at
the level of the Perl script.

Kind regards,
Gilles
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help