git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3621 ed5197a5-7fde-0310-b194-c3ffbd925b24
		
			
				
	
	
		
			69 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
This is an implementation of a password hashing method, provided via the
 | 
						|
crypt(3) and a reentrant interface.  It is fully compatible with
 | 
						|
OpenBSD's bcrypt.c for prefix "$2b$", originally by Niels Provos and
 | 
						|
David Mazieres.  (Please refer to the included crypt(3) man page for
 | 
						|
information on minor compatibility issues for other bcrypt prefixes.)
 | 
						|
 | 
						|
I've placed this code in the public domain, with fallback to a
 | 
						|
permissive license.  Please see the comment in crypt_blowfish.c for
 | 
						|
more information.
 | 
						|
 | 
						|
You can use the provided routines in your own packages, or link them
 | 
						|
into a C library.  I've provided hooks for linking into GNU libc, but
 | 
						|
it shouldn't be too hard to get this into another C library.  Note
 | 
						|
that simply adding this code into your libc is probably not enough to
 | 
						|
make your system use the new password hashing algorithm.  Changes to
 | 
						|
passwd(1), PAM modules, or whatever else your system uses will likely
 | 
						|
be needed as well.  These are not a part of this package, but see
 | 
						|
LINKS for a pointer to our tcb suite.
 | 
						|
 | 
						|
Instructions on using the routines in one of the two common ways are
 | 
						|
given below.  It is recommended that you test the routines on your
 | 
						|
system before you start.  Type "make check" or "make check_threads"
 | 
						|
(if you have the POSIX threads library), then "make clean".
 | 
						|
 | 
						|
 | 
						|
1. Using the routines in your programs.
 | 
						|
 | 
						|
The available interfaces are in ow-crypt.h, and this is the file you
 | 
						|
should include.  You won't need crypt.h.  When linking, add all of the
 | 
						|
C files and x86.S (you can compile and link it even on a non-x86, it
 | 
						|
will produce no code in this case).
 | 
						|
 | 
						|
 | 
						|
2. Building the routines into GNU C library.
 | 
						|
 | 
						|
For versions 2.13 and 2.14 (and likely other nearby ones), extract the
 | 
						|
library sources as usual.  Apply the patch for glibc 2.14 provided in
 | 
						|
this package.  Enter crypt/ and rename crypt.h to gnu-crypt.h within
 | 
						|
that directory.  Copy the C sources, header, and assembly (x86.S) files
 | 
						|
from this package in there as well (but be sure you don't overwrite the
 | 
						|
Makefile).  Configure, build, and install the library as usual.
 | 
						|
 | 
						|
For versions 2.2 to 2.3.6 (and likely also for some newer ones),
 | 
						|
extract the library sources and maybe its optional add-ons as usual.
 | 
						|
Apply the patch for glibc 2.3.6 provided in this package.  Enter
 | 
						|
crypt/ and rename crypt.h to gnu-crypt.h within that directory.  Copy
 | 
						|
the C sources, header, and assembly (x86.S) files from this package in
 | 
						|
there as well (but be sure you don't overwrite the Makefile).
 | 
						|
Configure, build, and install the library as usual.
 | 
						|
 | 
						|
For versions 2.1 to 2.1.3, extract the library sources and the crypt
 | 
						|
and linuxthreads add-ons as usual.  Apply the patch for glibc 2.1.3
 | 
						|
provided in this package.  Enter crypt/sysdeps/unix/, and rename
 | 
						|
crypt.h to gnu-crypt.h within that directory.  Copy C sources, header,
 | 
						|
and assembly (x86.S) files from this package in there as well (but be
 | 
						|
sure you don't overwrite the Makefile).  Configure, build, and install
 | 
						|
the library as usual.
 | 
						|
 | 
						|
Programs that want to use the provided interfaces will need to include
 | 
						|
crypt.h (but not ow-crypt.h directly).  By default, prototypes for the
 | 
						|
new routines aren't defined (but the extra functionality of crypt(3)
 | 
						|
is indeed available).  You need to define _OW_SOURCE to obtain the new
 | 
						|
routines as well.
 | 
						|
 | 
						|
-- 
 | 
						|
Solar Designer <solar at openwall.com>
 | 
						|
 | 
						|
$Owl: Owl/packages/glibc/crypt_blowfish/README,v 1.10 2014/07/07 15:19:04 solar Exp $
 |