MD4 hash algorithm in Go. Assembly-optimized for amd64 platforms.
MD4 is cryptographically broken and should should only be used where compatibility with legacy systems, not security, is the goal.
This package is based up the MD4 implementation in
x/crypto
together with some internals borrowed from
crypto/md5
,
which is structurally very similar. For assembly micro-optimization it was very
helpful to consult the implementations of MD5 in
Go
and
OpenSSL,
Marc Bevand's assembly
MD5, and
Nayuki's optimized
MD4/MD5.
Ricardo Branco's OpenSSL
bindings were very helpful for
differential testing and providing a performance baseline. Lastly, thanks to
Michael Stapelberg for providing the
motivation for this
package, to optimize his
rsync daemon.
md4
is available under the BSD 3-Clause License. The license
retains the copyright notice from x/crypto
.