summaryrefslogtreecommitdiffstats
path: root/lib/libcrypt/crypt.c
Commit message (Collapse)AuthorAgeFilesLines
* Add a new hash type. This "NT-hash" is compatible with the passwordmarkm2003-06-021-0/+5
| | | | | | | hashing scheme used in Microsoft's NT machines. IT IS NOT SECURE! DON'T USE IT! This is for the use of competent sysadmins only! Submitted by: Michael Bretterklieber
* No functional change, but big code cleanup. WARNS, lint(1) and style(9).markm2002-03-061-7/+9
|
* Implement __FBSDID()dillon2001-09-161-4/+2
|
* Removed duplicate VCS ID tags, as per style(9).ru2001-08-131-3/+0
|
* Add OpenBSD-style blowfish password hashing. This makes one lessmarkm2001-03-111-0/+7
| | | | | | | | | | gratuitous difference between us and our sister project. This was given to me _ages_ ago. May apologies to Paul for the length of time its taken me to commit. Obtained from: Niels Provos <provos@physnet.uni-hamburg.de>/OpenBSD Submitted by: Paul Herman <pherman@frenchfries.net>
* Hindsight is wonderful, but I got cold feet over the crypt(3) defaultpeter2000-12-281-5/+5
| | | | | | | | | | | | | | | | | so I am backing it out for now. The problem is that some random program calling crypt() could be passing a DES salt and the crypt(3) library would encrypt it in md5 mode and there would be a password mismatch as a result. I wrote a validater function for the DES code to verify that a salt is valid for DES, but I realized there were too many strange things to go wrong. passwd(1), pw(8) etc still generate md5 passwords by default for /etc/master.passwd, so this is almost academic. It is a big deal for things that have their own crypt(3)-ed password strings (.htaccess, etc etc). Those are the things I do not want to break. My DES salt recognizer basically checked if the salt was either 2 or 13 characters long, or began with '_' (_PASSWORD_EFMT1). I think it would have worked but I have seen way too much crypt() mishandling in the past.
* Merge into a single US-exportable libcrypt, which only providespeter2000-12-281-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | one-way hash functions for authentication purposes. There is no more "set the libcrypt->libXXXcrypt" nightmare. - Undo the libmd.so hack, use -D to hide the md5c.c internals. - Remove the symlink hacks in release/Makefile - the algorthm is set by set_crypt_format() as before. If this is not called, it tries to heuristically figure out the hash format, and if all else fails, it uses the optional auth.conf entry to chose the overall default hash. - Since source has non-hidden crypto in it there may be some issues with having the source it in some countries, so preserve the "secure/*" division. You can still build a des-free libcrypt library if you want to badly enough. This should not be a problem in the US or exporting from the US as freebsd.org had notified BXA some time ago. That makes this stuff re-exportable by anyone. - For consistancy, the default in absence of any other clues is md5. This is to try and minimize POLA across buildworld where folk may suddenly be activating des-crypt()-hash support. Since the des hash may not always be present, it seemed sensible to make the stronger md5 algorithm the default. All things being equal, no functionality is lost. Reviewed-by: jkh (flame-proof suit on)
* Still have to support libscrypt for now :( Add #defines to take DESgreen2000-08-241-0/+2
| | | | out for it.
* Add working and easy crypt(3)-switching. Yes, we need a whole new APIgreen2000-08-221-7/+50
| | | | | | | | | | | | | | for crypt(3) by now. In any case: Add crypt_set_format(3) + documentation to -lcrypt. Add login_setcryptfmt(3) + documentation to -lutil. Support for switching crypt formats in passwd(8). Support for switching crypt formats in pw(8). The simple synopsis is: edit login.conf; add a passwd_format field set to "des" or "md5"; go nuts :) Reviewed by: peter
* Zap SHA1 password support. This will be re-implemented at a later date.kris2000-01-071-2/+0
|
* Never return NULL, always return a hash.markm1999-09-221-1/+1
| | | | Submitted by: dt
* Big code cleanup. (Inspired by Brandon Gillespie). Also move asmarkm1999-09-201-142/+34
| | | | much as possible away from secure/ to make extending easier.
* $Header$ -> $FreeBSD$peter1999-08-281-1/+1
|
* $Id$ -> $FreeBSD$peter1999-08-281-2/+2
|
* The new crypt code broke "make world". Back it out.markm1999-01-231-154/+122
|
* Rewrite of crypt library to be more modular, and addition of thebrandon1999-01-211-122/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | Secure Hashing Algorithm - 1 (SHA-1), along with the further refinement of what $x$salt$hash means. With this new crypt the following are all acceptable: $1$ $MD5$ $SHA1$ Note: $2$ is used by OpenBSD's Blowfish, which I considered adding as $BF$, but there is no actual need for it with SHA-1. However, somebody wishing to add OpenBSD password support could easilly add it in now. There is also a malloc_crypt() available in the library now, which behaves exactly the same as crypt(), but it uses a malloced buffer instead of a static buffer. However, this is not standard so will likely not be used much (at all). Also, for those interested I did a brief speed test Pentium 166/MMX, which shows the DES crypt to do approximately 2640 crypts a CPU second, MD5 to do about 62 crypts a CPU second and SHA1 to do about 18 crypts a CPU second. Reviewed by: Mark Murray
* Revert $FreeBSD$ to $Id$peter1997-02-221-2/+2
|
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-141-2/+2
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* A couple of minor nits.phk1996-10-141-5/+10
| | | | | Submitted by: Craig Leres <leres@ee.lbl.gov> Submitted by: Theo Deraadt <deraadt@theos.com>
* General -Wall warning cleanup, part I.jkh1996-07-121-2/+3
| | | | Submitted-By: Kent Vander Velden <graphix@iastate.edu>
* Remove trailing whitespace.rgrimes1995-05-301-7/+7
|
* *** ATTENTION *** YOU MIGHT BE ABOUT TO BE HOSED *** ATTENTION ***phk1994-11-071-153/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This effectively changes the non-DES password algoritm. If you have the "securedist" installed you will have no problems with this. (Though you might want to consider using this password-encryption instead of the DES-based if your system is likely to be hacked) If you are running a -current system without the "securedist" installed: YOU WILL NEED TO CHANGE ALL PASSWORDS !! There is no backwards mode. Suggested procedure is: Update your sources cd /usr/src/lib/libcrypt make clean make all make install passwd root <set roots new password> change password for any other users on the system. This algorithm is expected to be much better than the traditional DES- based algorithm. It uses the MD5 algorithm at what it is best at, as opposed to the DES algorithm at something it isn't good at at all. The algorithm is designed such that it should very hard to shortcut the calculations needed to build a dictionary, and to make partial knowledge (Hmm, his password starts with a 'P'...) useless. Of course if somebody breaks the MD5 algorithm this looses too. The salt is 48 bits (8 char @ base64). The encrypted password is 128 bits. And I am positively delighted to say that it takes 34 msec to crypt() a password on a Pentium/60Mhz, so building a dictionary is not really an option for hackers at the moment.
* Nates password scrambler, from FreebSD 1.1.5, but with everything except csgr1994-08-091-0/+184
crypt() ripped out Reviewed by: Geoff Rehmet Submitted by: Nate Williams
OpenPOWER on IntegriCloud