openwall / crypt_blowfish Goto Github PK
View Code? Open in Web Editor NEWImplementation of bcrypt password hashing scheme
Home Page: https://www.openwall.com/crypt/
Implementation of bcrypt password hashing scheme
Home Page: https://www.openwall.com/crypt/
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 $
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.