operating-system provided entropy as it is more secure and
faster for the typical use case of generating one uuid at
a time.
This is a breaking change for anyone passing a mt19937
into one of the explicit constructors of random_generator,
which would be quite rare.
Changed the default random provider on Windows to use BCrypt
where available, falling back to Wincrypt when necessary or
when explicitly requested through a macro.
Provide a new random_generator_mt19937 type definition for
use cases where a large number of uuids need to be created
with high performance. This is equivalent to the previous
definition of random_generator.
Provide a random generation benchmark test showing the
cutoff where the mt19937-based generator will outperform the
standard generator based on wall time.
Removed template specialization for boost::random::random_device
so that any UniformRandomNumberGenerator can be used properly
with random_generator.
Replaced the seed_rng detail implementation (which had a number
of flaws) with a replacement header-only random_provider
implementation.
Note: entropy generation errors will cause an entropy_error
to be thrown from random_generator. The previous implementation
ignored errors and silently failed.
Added internal support for entropy generation on cloudabi
platform leveraging the new random_provider implementation.
Added internal support for Universal Windows Platform (UWP)
development leveraging the new random_provider implementation.
Added internal support for getentropy() on Linux and OpenBSD
if certain requirements are met.
This fixes#24
This closes#53
and provide backwards compatibility for sha1, and also added
md5 to complete the RFC 4122 spec implementation
as such, boost::uuids::name_generator is deprecated, however
still defined to use the same implementation in previous boost
releases, and name_generator_sha1 as well as name_generator_md5
now exist, in preparation for whatever will replace sha1.
to properly test the new header structure, I took the bjam
rule from winapi to isolate each header as an include and make sure
it has no dependencies on other headers to be included first,
and was able to remove a few test files that became unnecessary.
This fixes#26