diff options
author | allanjude <allanjude@FreeBSD.org> | 2016-05-29 01:15:36 +0000 |
---|---|---|
committer | allanjude <allanjude@FreeBSD.org> | 2016-05-29 01:15:36 +0000 |
commit | 6d6e6f6722577f2c5b8b789caf3c9d484c010f05 (patch) | |
tree | 59f55ee6a0d920a0aada43db03458cad3bea0e3f /lib/libcrypt | |
parent | 7a3ab2fa78cc54e513671d181b33cbce79c453cf (diff) | |
parent | 8aa87eff837e633b6d5393c4ae6dbb378606bce7 (diff) | |
download | FreeBSD-src-6d6e6f6722577f2c5b8b789caf3c9d484c010f05.zip FreeBSD-src-6d6e6f6722577f2c5b8b789caf3c9d484c010f05.tar.gz |
Import the skein hashing algorithm, based on the threefish block cipher
Connect it to userland (libmd, libcrypt, sbin/md5) and kernel (crypto.ko)
Support for skein as a ZFS checksum algorithm was introduced in r289422
but is disconnected because FreeBSD lacked a Skein implementation.
A further commit will enable it in ZFS.
Reviewed by: cem
Sponsored by: ScaleEngine Inc.
Differential Revision: https://reviews.freebsd.org/D6166
Diffstat (limited to 'lib/libcrypt')
-rw-r--r-- | lib/libcrypt/Makefile | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/libcrypt/Makefile b/lib/libcrypt/Makefile index 3b982a3..2a59b3b 100644 --- a/lib/libcrypt/Makefile +++ b/lib/libcrypt/Makefile @@ -10,16 +10,25 @@ SHLIBDIR?= /lib SHLIB_MAJOR= 5 LIB= crypt -.PATH: ${.CURDIR}/../libmd ${.CURDIR}/../../sys/crypto/sha2 +.PATH: ${.CURDIR}/../libmd ${.CURDIR}/../../sys/crypto/sha2 ${.CURDIR}/../../sys/crypto/skein SRCS= crypt.c misc.c \ crypt-md5.c md5c.c \ crypt-nthash.c md4c.c \ crypt-sha256.c sha256c.c \ - crypt-sha512.c sha512c.c + crypt-sha512.c sha512c.c \ + skein.c skein_block.c MAN= crypt.3 MLINKS= crypt.3 crypt_get_format.3 crypt.3 crypt_set_format.3 CFLAGS+= -I${.CURDIR}/../libmd -I${.CURDIR}/../libutil \ - -I${.CURDIR}/../../sys/crypto/sha2 + -I${.CURDIR}/../../sys/crypto/sha2 -I${.CURDIR}/../../sys/crypto/skein + +# Use assembly optimized skein if available +.if exists(${MACHINE_ARCH}/skein_block_asm.s) +.PATH: ${.CURDIR}/../../sys/crypto/skein/${MACHINE_ARCH} +SRCS += skein_block_asm.s +CFLAGS += -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792 +ACFLAGS += -DELF -Wa,--noexecstack +.endif # Pull in the strong crypto, if it is present. .if exists(${.CURDIR}/../../secure/lib/libcrypt) && ${MK_CRYPT} != "no" @@ -34,7 +43,10 @@ CFLAGS+= -I${.CURDIR} -DHAS_DES -DHAS_BLOWFISH SHA512_224_Init SHA512_224_Final SHA512_224_Update \ SHA512_256_Init SHA512_256_Final SHA512_256_Update \ SHA384_Init SHA384_Final SHA384_Update \ - SHA512_Init SHA512_Final SHA512_Update + SHA512_Init SHA512_Final SHA512_Update \ + SKEIN256_Init SKEIN256_Final SKEIN256_Update \ + SKEIN512_Init SKEIN512_Final SKEIN512_Update \ + SKEIN1024_Init SKEIN1024_Final SKEIN1024_Update CFLAGS+= -D${sym}=__${sym} .endfor |