rand_drbg: remove RAND_DRBG.
authorPauli <paul.dale@oracle.com>
Wed, 22 Jul 2020 02:55:31 +0000 (12:55 +1000)
committerPauli <paul.dale@oracle.com>
Fri, 7 Aug 2020 04:16:47 +0000 (14:16 +1000)
commit7d615e2178fbffa53f05a67f68e5741374340308
tree8e5cdbb8c39e24727e64af790831980b2a5d9e6a
parent4df0d37ff6cc399b93f9ef2524d087c2d67d41b5
rand_drbg: remove RAND_DRBG.

The RAND_DRBG API did not fit well into the new provider concept as
implemented by EVP_RAND and EVP_RAND_CTX. The main reason is that the
RAND_DRBG API is a mixture of 'front end' and 'back end' API calls
and some of its API calls are rather low-level. This holds in particular
for the callback mechanism (RAND_DRBG_set_callbacks()) and the RAND_DRBG
type changing mechanism (RAND_DRBG_set()).

Adding a compatibility layer to continue supporting the RAND_DRBG API as
a legacy API for a regular deprecation period turned out to come at the
price of complicating the new provider API unnecessarily. Since the
RAND_DRBG API exists only since version 1.1.1, it was decided by the OMC
to drop it entirely.

Other related changes:

Use RNG instead of DRBG in EVP_RAND documentation.  The documentation was
using DRBG in places where it should have been RNG or CSRNG.

Move the RAND_DRBG(7) documentation to EVP_RAND(7).

Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/12509)
52 files changed:
CHANGES.md
NEWS.md
crypto/err/openssl.txt
crypto/evp/e_aria.c
crypto/evp/evp_enc.c
crypto/evp/evp_local.h
crypto/evp/evp_rand.c
crypto/rand/build.info
crypto/rand/drbg_lib.c [deleted file]
crypto/rand/rand_err.c
crypto/rand/rand_lib.c
crypto/rand/rand_local.h
crypto/rand/rand_meth.c [new file with mode: 0644]
crypto/rand/randfile.c
doc/man1/openssl-rand.pod.in
doc/man3/BIO_get_ex_new_index.pod
doc/man3/BN_rand.pod
doc/man3/CRYPTO_get_ex_new_index.pod
doc/man3/EVP_RAND.pod
doc/man3/RAND_DRBG_generate.pod [deleted file]
doc/man3/RAND_DRBG_get0_public.pod [deleted file]
doc/man3/RAND_DRBG_new.pod [deleted file]
doc/man3/RAND_DRBG_reseed.pod [deleted file]
doc/man3/RAND_DRBG_set_callbacks.pod [deleted file]
doc/man3/RAND_add.pod
doc/man3/RAND_bytes.pod
doc/man3/RAND_get0_primary.pod [new file with mode: 0644]
doc/man7/EVP_RAND.pod [moved from doc/man7/RAND_DRBG.pod with 77% similarity]
doc/man7/RAND.pod
doc/man7/provider-rand.pod
include/openssl/core_dispatch.h
include/openssl/evp.h
include/openssl/rand.h
include/openssl/rand_drbg.h [deleted file]
include/openssl/randerr.h
providers/fips/fipsprov.c
providers/implementations/include/prov/rand_pool.h
providers/implementations/rands/drbg.c
providers/implementations/rands/drbg_ctr.c
providers/implementations/rands/drbg_hash.c
providers/implementations/rands/drbg_hmac.c
providers/implementations/rands/drbg_local.h
ssl/ssl_lib.c
test/build.info
test/drbg_cavs_data_ctr.c [deleted file]
test/drbg_cavs_data_hash.c [deleted file]
test/drbg_cavs_data_hmac.c [deleted file]
test/drbg_cavs_test.c [deleted file]
test/drbg_extra_test.c [deleted file]
test/drbgtest.c
test/recipes/05-test_rand.t
util/libcrypto.num