aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2018-10-20 19:44:59 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2021-08-06 00:27:56 +0000
commitec2942baf536cde8298febc1787b7bf4ff97cd27 (patch)
tree990ceda3171c84ef40eb7ee74fdc74382f88c937
parent973304077ff865a6ebeb55aa1d38f8d44b7dc3b4 (diff)
Fortuna: Clean up reseeding key material to closer match FS&K
When reseeding, only incorporate actual key material. Do not include e.g. the derived key schedules or other AES context. I don't think the extra material was harmful here, just not beneficial. Reviewed by: delphij, markm Approved by: secteam (delphij) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D16934 (cherry picked from commit 90545403e9d293efb0b843a75ad02361eadaae6d)
-rw-r--r--sys/dev/random/fortuna.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/random/fortuna.c b/sys/dev/random/fortuna.c
index c20cea2f21ae..d203c2f138a1 100644
--- a/sys/dev/random/fortuna.c
+++ b/sys/dev/random/fortuna.c
@@ -285,7 +285,8 @@ random_fortuna_reseed_internal(uint32_t *entropy_data, u_int blockcount)
*/
randomdev_hash_init(&context);
randomdev_hash_iterate(&context, zero_region, RANDOM_ZERO_BLOCKSIZE);
- randomdev_hash_iterate(&context, &fortuna_state.fs_key, sizeof(fortuna_state.fs_key));
+ randomdev_hash_iterate(&context, &fortuna_state.fs_key.key.keyMaterial,
+ fortuna_state.fs_key.key.keyLen / 8);
randomdev_hash_iterate(&context, entropy_data, RANDOM_KEYSIZE*blockcount);
randomdev_hash_finish(&context, hash);
randomdev_hash_init(&context);