Module Name: src Committed By: riastradh Date: Thu Aug 27 14:01:36 UTC 2020
Modified Files: src/sys/kern: init_main.c kern_sysctl.c src/sys/rump/kern/lib/libcrypto: Makefile src/sys/rump/librump/rumpkern: Makefile.rumpkern Log Message: Move address hashing from init_main.c to kern_sysctl.c. This way rump gets it automatically. Make sure blake2s is in librumpkern.so, not just in librumpkern_crypto.so, for this to work. To generate a diff of this commit: cvs rdiff -u -r1.528 -r1.529 src/sys/kern/init_main.c cvs rdiff -u -r1.264 -r1.265 src/sys/kern/kern_sysctl.c cvs rdiff -u -r1.20 -r1.21 src/sys/rump/kern/lib/libcrypto/Makefile cvs rdiff -u -r1.185 -r1.186 src/sys/rump/librump/rumpkern/Makefile.rumpkern Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/init_main.c diff -u src/sys/kern/init_main.c:1.528 src/sys/kern/init_main.c:1.529 --- src/sys/kern/init_main.c:1.528 Wed Aug 26 22:56:55 2020 +++ src/sys/kern/init_main.c Thu Aug 27 14:01:36 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: init_main.c,v 1.528 2020/08/26 22:56:55 christos Exp $ */ +/* $NetBSD: init_main.c,v 1.529 2020/08/27 14:01:36 riastradh Exp $ */ /*- * Copyright (c) 2008, 2009, 2019 The NetBSD Foundation, Inc. @@ -97,7 +97,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.528 2020/08/26 22:56:55 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.529 2020/08/27 14:01:36 riastradh Exp $"); #include "opt_ddb.h" #include "opt_inet.h" @@ -228,8 +228,6 @@ extern void *_binary_splash_image_end; #include <prop/proplib.h> -#include <crypto/blake2/blake2s.h> - #include <sys/userconf.h> extern struct lwp lwp0; @@ -732,24 +730,6 @@ main(void) /* NOTREACHED */ } -static uint8_t address_key[32]; /* key used in address hashing */ -static ONCE_DECL(random_inithook); - -static int -random_address_init(void) -{ - cprng_strong(kern_cprng, address_key, sizeof(address_key), 0); - return 0; -} - -void -hash_value(void *d, size_t ds, const void *s, size_t ss) -{ - - RUN_ONCE(&random_inithook, random_address_init); - blake2s(d, ds, address_key, sizeof(address_key), s, ss); -} - /* * Configure the system's hardware. */ Index: src/sys/kern/kern_sysctl.c diff -u src/sys/kern/kern_sysctl.c:1.264 src/sys/kern/kern_sysctl.c:1.265 --- src/sys/kern/kern_sysctl.c:1.264 Wed Jul 3 17:31:32 2019 +++ src/sys/kern/kern_sysctl.c Thu Aug 27 14:01:36 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sysctl.c,v 1.264 2019/07/03 17:31:32 maxv Exp $ */ +/* $NetBSD: kern_sysctl.c,v 1.265 2020/08/27 14:01:36 riastradh Exp $ */ /*- * Copyright (c) 2003, 2007, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.264 2019/07/03 17:31:32 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sysctl.c,v 1.265 2020/08/27 14:01:36 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_defcorename.h" @@ -84,11 +84,15 @@ __KERNEL_RCSID(0, "$NetBSD: kern_sysctl. #include <sys/ksyms.h> #include <sys/malloc.h> #include <sys/mount.h> +#include <sys/cprng.h> +#include <sys/once.h> #include <sys/syscallargs.h> #include <sys/kauth.h> #include <sys/ktrace.h> #include <sys/rndsource.h> +#include <crypto/blake2/blake2s.h> + #define MAXDESCLEN 1024 MALLOC_DEFINE(M_SYSCTLNODE, "sysctlnode", "sysctl node structures"); MALLOC_DEFINE(M_SYSCTLDATA, "sysctldata", "misc sysctl data"); @@ -2816,3 +2820,21 @@ sysctl_cvt_out(struct lwp *l, int v, con return (0); } + +static uint8_t address_key[32]; /* key used in address hashing */ +static ONCE_DECL(random_inithook); + +static int +random_address_init(void) +{ + cprng_strong(kern_cprng, address_key, sizeof(address_key), 0); + return 0; +} + +void +hash_value(void *d, size_t ds, const void *s, size_t ss) +{ + + RUN_ONCE(&random_inithook, random_address_init); + blake2s(d, ds, address_key, sizeof(address_key), s, ss); +} Index: src/sys/rump/kern/lib/libcrypto/Makefile diff -u src/sys/rump/kern/lib/libcrypto/Makefile:1.20 src/sys/rump/kern/lib/libcrypto/Makefile:1.21 --- src/sys/rump/kern/lib/libcrypto/Makefile:1.20 Wed Aug 26 15:49:56 2020 +++ src/sys/rump/kern/lib/libcrypto/Makefile Thu Aug 27 14:01:36 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.20 2020/08/26 15:49:56 riastradh Exp $ +# $NetBSD: Makefile,v 1.21 2020/08/27 14:01:36 riastradh Exp $ # SODIUM_IMPORTDIR=${.CURDIR}/../../../../external/isc/libsodium @@ -6,7 +6,6 @@ SODIUM_DIR=${.CURDIR}/../../../../extern .PATH: ${.CURDIR}/../../../../crypto/adiantum \ ${.CURDIR}/../../../../crypto/aes \ - ${.CURDIR}/../../../../crypto/blake2 \ ${.CURDIR}/../../../../crypto/blowfish \ ${.CURDIR}/../../../../crypto/camellia \ ${.CURDIR}/../../../../crypto/cast128 \ @@ -57,9 +56,6 @@ SRCS+= des_ecb.c des_setkey.c des_enc.c # skipjack SRCS+= skipjack.c -# BLAKE2 -SRCS+= blake2s.c - # libsodium SODIUM_CPPFLAGS+= -I${SODIUM_IMPORTDIR}/include SODIUM_CPPFLAGS+= -I${SODIUM_IMPORTDIR}/dist/src/libsodium/include/sodium Index: src/sys/rump/librump/rumpkern/Makefile.rumpkern diff -u src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.185 src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.186 --- src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.185 Fri Aug 14 00:53:16 2020 +++ src/sys/rump/librump/rumpkern/Makefile.rumpkern Thu Aug 27 14:01:36 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.rumpkern,v 1.185 2020/08/14 00:53:16 riastradh Exp $ +# $NetBSD: Makefile.rumpkern,v 1.186 2020/08/27 14:01:36 riastradh Exp $ # IOCONFDIR:= ${.PARSEDIR} @@ -16,6 +16,7 @@ MAN= rump.3 rump_lwproc.3 ${RUMPTOP}/../conf \ ${RUMPTOP}/../dev \ ${RUMPTOP}/../crypto/nist_hash_drbg \ + ${RUMPTOP}/../crypto/blake2 \ ${RUMPTOP}/../crypto/cprng_fast \ ${RUMPTOP}/../crypto/chacha \ ${RUMPTOP}/../secmodel \ @@ -162,6 +163,10 @@ SRCS+= chacha_impl.c SRCS+= chacha_ref.c SRCS+= chacha_selftest.c +# BLAKE2 +# for hash_address +SRCS+= blake2s.c + .include "${RUMPTOP}/Makefile.rump" .include <bsd.own.mk>