3a0c68edfd
The algorithm used is essentially PBKDF1 from RFC 2898 but using hmac_sha1 rather than SHA1 directly (suggested by smb@research.att.com). * The format of the encrypted password is: * $<tag>$<iterations>$<salt>$<digest> * * where: * <tag> is "sha1" * <iterations> is an unsigned int identifying how many rounds * have been applied to <digest>. The number * should vary slightly for each password to make * it harder to generate a dictionary of * pre-computed hashes. See crypt_sha1_iterations. * <salt> up to 64 bytes of random data, 8 bytes is * currently considered more than enough. * <digest> the hashed password. hmac.c implementes HMAC as defined in RFC 2104 and includes a unit test for both hmac_sha1 and hmac_sha1 using a selection of the Known Answer Tests from RFC 2202. It is worth noting that to be FIPS compliant the hmac key (password) should be 10-20 chars.
26 lines
485 B
Makefile
26 lines
485 B
Makefile
# $NetBSD: Makefile,v 1.15 2004/07/02 00:05:23 sjg Exp $
|
|
|
|
USE_SHLIBDIR= yes
|
|
|
|
LIB= crypt
|
|
|
|
SRCS= crypt.c md5crypt.c bcrypt.c crypt-sha1.c util.c
|
|
|
|
CPPFLAGS+= -I${.CURDIR}
|
|
|
|
MAN= crypt.3
|
|
MLINKS= crypt.3 encrypt.3 crypt.3 setkey.3
|
|
|
|
|
|
.if make(*.test)
|
|
.SUFFIXES: .test
|
|
.c.test:
|
|
${CC} -o $@ -DUNIT_TEST -DMAIN ${LDSTATIC} ${.IMPSRC} ${LDADD}
|
|
LDADD+= -L${.OBJDIR} -l${LIB} -L${.OBJDIR}/../../libc
|
|
DPADD+= lib${LIB}.a
|
|
LDSTATIC?= -static
|
|
.include <bsd.prog.mk>
|
|
.else
|
|
.include <bsd.lib.mk>
|
|
.endif
|