haveged - A simple entropy daemon

See git repository for current version


New installations and upgrades should not use the older versions unless blocked by a specific problem. Versions prior to v0.5 do not use the GNU build system.

463K Nov 17 12:28 2017 haveged-1.9.2.tar.gz
464K Feb 11 10:14 2014 haveged-1.9.1.tar.gz
464K Feb 10 20:00 2014 haveged-1.9.0.tar.gz
448K Jan  2 18:11 2014 haveged-1.8.tar.gz
448K Jun  8 10:12 2013 haveged-1.7c.tar.gz
450K Jun  6 18:15 2013 haveged-1.7b.tar.gz
448K Feb 14 12:03 2013 haveged-1.7a.tar.gz
444K Jan 15 10:34 2013 haveged-1.7.tar.gz
239K Dec 18 10:36 2012 haveged-1.6a.tar.gz
239K Dec 15 12:29 2012 haveged-1.6.tar.gz
238K Aug 14 09:02 2012 haveged-1.5.tar.gz
222K Feb  7 18:03 2012 haveged-1.4.tar.gz
  208K Nov 24 09:56 2011 haveged-1.3a.tar.gz
  207K Oct 24 19:07 2011 haveged-1.3.tar.gz
  203K Jun 26 16:58 2011 haveged-1.2.tar.gz
  196K Jan 11 16:16 2011 haveged-1.1.tar.gz
  195K Jan  4 15:43 2011 haveged-1.01.tar.gz
  190K Sep  7 11:43 2009 haveged-0.9.tar.gz
  181K Jul 31 14:56 2009 haveged-0.8.tar.gz
  181K May  1 17:04 2009 haveged-0.7.tar.gz
  180K Apr 29 17:18 2009 haveged-0.6.tar.gz
  180K Apr 28 12:21 2009 haveged-0.5.tar.gz
   75K Apr 26 11:52 2009 haveged.04.tar.gz
   75K Apr 24 10:56 2009 haveged.03.tar.gz
   56K Jan 19       2009 haveged.02.tar.gz

The original version used the irisa HAVEGE library

16K Jan 10 2009 haveged.tar.gz

Release Notes

Version 1.9.2

I am no longer active as a developer but have decided to push out contributor fixes I have accumulated since the last release. Two oustanding bugs are not addressed: 1) Failure to build on IA64 due to busted cpuid and 2) Incorrect exit status when terminated by signal.

Version 1.9.1

Touch up documentation and sample file issues in version 1.9.0 release.

Version 1.9.0

Serious effort was put into the run-time test implementation to fix implementation flaws and performance problems uncovered by large scale continuous tests. The effort included repairing erosion of the diagnostic build to allow a bit by bit comparison of parts of the AIS test suite against and independent port of the AIS-31 reference implementation. Beyond a few build tweaks, other major changes included a rewrite on the man pages postponed since version 1.7 and other efforts to provide a better experience for the libhavege user. Package version format has migrated to a three component numeric format.

Version 1.8

Correct return codes returned by signal handler. Improved install target to better support systemd. Improved man page and other documentation.

Version 1.7c

Correct additional run-time test alignment problems on mips.

Version 1.7b

Correct run-time test alignment problems on sparc and mips. Correct ppc detection in build.

Version 1.7a

Correct VPATH issues and modify check target to support parallel builds and changes in automake 1.13 test harness. Updated sample spec file and other documentation changes.

Version 1.7

The build and sources have been restructured to provide a devel package containing the haveged RNG implementation. Updated documentation, man(8) and man(3) pages, additional build and usage samples are provided. The potential for a rare syssegv resulting from the 1.6 changes has been removed.

Version 1.6a

Fix typo that broke generic build procedure.

Version 1.6

The run time test implementation has been corrected to remove an alignment fault that appeared in AIS test0 on arm64 hosts. The build procedure for clock_gettime() support has been altered to provide better control (now an override for all architectures) and correctly determine dependencies. Minor typos and inaccuracies in the source and man have been corrected.

Version 1.5

A run time test option has been added to haveged that enables the execution of one or both of the principle AIS-31 test suites at haveged initialization and/or continuously during subsequent output. The command option permits the run time tests to be configured to trade off test overhead with test rigor to meet differing application needs. Reasonable default values are provided for daemon and direct invocations. For further details on the testing implementation see the haveged documentation. Several changes have also been made to make haveged work better with both the systemd and sysv init systems.

Version 1.4

The haveged build has been extended to support s390 and 'generic' architectures based upon clock_gettime(). A general cleanup of the build scripts includes the ability to install non-RedHat init scripts without patching the build. The haveged collection loop has been rewritten to support multiple instances and add additional diagnostics which are being used to further improve haveged. Tuning logic for the collection has been totally rewritten to replace buggy cpuid code and incorporate additional information obtained from the /proc and /sys file systems. An experimental multi-threaded option is also provided for those hoping to spread haveged cpu load over multi-processes.

Version 1.3

Haveged has been reorganized to allow its collection mechanism to be better accessed directly through the file system. This reorganization includes the option to suppress the daemon interface in the build so that haveged can now be used in those circumstances where the use of /dev/random is unavailable or inappropriate. This also means that haveged can now be built and used on non-linux systems. For example, the current tarball builds unmodified in mingw on Windows. A new command argument has been added to provide more precise control over file system output including unlimited piped output. The new man page provides many examples of how the new haveged file output features can be used in a linux environment.

Version 1.2

After quite a while, I finally returned to modernizing the build. If you have a recent compiler, the build will use compiler intrinsics to replace the previous inline assembly. This is still somewhat experimental, but may help with build reliability. There are a couple of other features still in the works, but the move to intrinsics had been sitting around for a while and it was time to push it out.