cryptpw: forgot svn add... how typical of me :(
This commit is contained in:
@@ -21,7 +21,6 @@ lib-y += copyfd.o
|
||||
lib-y += crc32.o
|
||||
lib-y += create_icmp6_socket.o
|
||||
lib-y += create_icmp_socket.o
|
||||
lib-y += crypt_make_salt.o
|
||||
lib-y += default_error_retval.o
|
||||
lib-y += device_open.o
|
||||
lib-y += dump.o
|
||||
@@ -103,10 +102,8 @@ lib-y += xreadlink.o
|
||||
lib-$(CONFIG_FEATURE_MOUNT_LOOP) += loop.o
|
||||
lib-$(CONFIG_LOSETUP) += loop.o
|
||||
lib-$(CONFIG_FEATURE_MTAB_SUPPORT) += mtab.o
|
||||
lib-$(CONFIG_PASSWD) += pw_encrypt.o
|
||||
lib-$(CONFIG_PASSWD) += crypt_make_salt.o
|
||||
lib-$(CONFIG_CRYPTPW) += pw_encrypt.o
|
||||
lib-$(CONFIG_CRYPTPW) += crypt_make_salt.o
|
||||
lib-$(CONFIG_PASSWD) += pw_encrypt.o crypt_make_salt.o
|
||||
lib-$(CONFIG_CRYPTPW) += pw_encrypt.o crypt_make_salt.o
|
||||
lib-$(CONFIG_SULOGIN) += pw_encrypt.o
|
||||
lib-$(CONFIG_FEATURE_HTTPD_AUTH_MD5) += pw_encrypt.o
|
||||
lib-$(CONFIG_VLOCK) += correct_password.o
|
||||
|
||||
48
libbb/crypt_make_salt.c
Normal file
48
libbb/crypt_make_salt.c
Normal file
@@ -0,0 +1,48 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* crypt_make_salt
|
||||
*
|
||||
* i64c was also put here, this is the only function that uses it.
|
||||
*
|
||||
* Lifted from loginutils/passwd.c by Thomas Lundquist <thomasez@zelow.no>
|
||||
*
|
||||
*/
|
||||
|
||||
#include "libbb.h"
|
||||
|
||||
static int i64c(int i)
|
||||
{
|
||||
i &= 0x3f;
|
||||
if (i == 0)
|
||||
return '.';
|
||||
if (i == 1)
|
||||
return '/';
|
||||
if (i < 12)
|
||||
return ('0' - 2 + i);
|
||||
if (i < 38)
|
||||
return ('A' - 12 + i);
|
||||
return ('a' - 38 + i);
|
||||
}
|
||||
|
||||
|
||||
void crypt_make_salt(char *p, int cnt)
|
||||
{
|
||||
unsigned x = x; /* it's pointless to initialize it anyway :) */
|
||||
|
||||
x += getpid() + time(NULL) + clock();
|
||||
do {
|
||||
/* x = (x*1664525 + 1013904223) % 2^32 generator is lame
|
||||
* (low-order bit is not "random", etc...),
|
||||
* but for our purposes it is good enough */
|
||||
x = x*1664525 + 1013904223;
|
||||
/* BTW, Park and Miller's "minimal standard generator" is
|
||||
* x = x*16807 % ((2^31)-1)
|
||||
* It has no problem with visibly alternating lowest bit
|
||||
* but is also weak in cryptographic sense + needs div,
|
||||
* which needs more code (and slower) on many CPUs */
|
||||
*p++ = i64c(x >> 16);
|
||||
*p++ = i64c(x >> 22);
|
||||
} while (--cnt);
|
||||
*p = '\0';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user