blob: 1371508fab229f41bde2f91d4ad39d8c1dea5391 [file] [log] [blame]
The yescrypt code comes from yescrypt by Solar Designer <solar at
openwall.com>. It builds upon Colin Percival's scrypt.
See: http://openwall.com/yescrypt/ for reference.
The bcrypt hash module comes from crypt_blowfish, originally written
by Solar Designer <solar at openwall.com> and based on algorithms and
ideas by Niels Provos <provos at citi.umich.edu> and David Mazieres
<dm at lcs.mit.edu>.
The MD5, SHA256, and SHA512 hash modules, and the underlying
secure-hash primitives, were originally written by Ulrich Drepper
<drepper at cygnus.com> as part of the GNU C Library. Other people
may also have contributed to them; our records are incomplete.
The DES hash module was originally FreeSec, written by David Burren
<davidb at werj.com.au> for the NetBSD project, and since extensively
modified by Geoffrey M. Rehmet, Mark R V Murray, and Zack Weinberg.
The NTHASH module comes from FreeBSD, originally written by Michael
Bretterklieber and based on the password hashing algorithm used by
the Windows NT LAN Manager (NTLM) from Microsoft Corporation to
provide easier compatibility with NT accounts.
The SUNMD5 hash module is a clean-room reimplementation by Zack Weinberg,
based on a specification written by Eli Collins for the Passlib project,
of an algorithm originally developed by Alec Muffett for use in Solaris 9.
The crypt and gensalt backends for yescrypt and gost-yescrypt are by
Vitaly Chikunov.
The implementation of the public interface (crypt, crypt_r, etc) is a
mashup of code from the GNU C Library with code from crypt_blowfish,
originally put together by Thorsten Kukuk and since completely
rewritten by Björn Esser and Zack Weinberg.
The above components were assembled into this library by Thorsten Kukuk
<kukuk at suse.de>, Björn Esser <besser82 at fedoraproject.org>, and
Zack Weinberg <zackw at panix.com>.