aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QUtil.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2020-04-06 16:19:37 +0200
committerJay Berkenbilt <ejb@ql.org>2020-04-06 17:23:02 +0200
commit77198d5310d961ba3605db74fe1d213bb5d19f34 (patch)
treea92ae4e8056d6a8a5bf284c78460a6112710424e /libqpdf/QUtil.cc
parent52749b85df2e25c5ca35d5e0d07fbe4248b6f99b (diff)
downloadqpdf-77198d5310d961ba3605db74fe1d213bb5d19f34.tar.zst
Delegate random number generation to crypto provider (fixes #418)
Diffstat (limited to 'libqpdf/QUtil.cc')
-rw-r--r--libqpdf/QUtil.cc27
1 files changed, 2 insertions, 25 deletions
diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc
index fa0cf8ae..94132fa5 100644
--- a/libqpdf/QUtil.cc
+++ b/libqpdf/QUtil.cc
@@ -3,10 +3,7 @@
#include <qpdf/QUtil.hh>
#include <qpdf/PointerHolder.hh>
-#ifdef USE_INSECURE_RANDOM
-# include <qpdf/InsecureRandomDataProvider.hh>
-#endif
-#include <qpdf/SecureRandomDataProvider.hh>
+#include <qpdf/CryptoRandomDataProvider.hh>
#include <qpdf/QPDFSystemError.hh>
#include <qpdf/QTC.hh>
#include <qpdf/QIntC.hh>
@@ -891,29 +888,9 @@ class RandomDataProviderProvider
};
RandomDataProviderProvider::RandomDataProviderProvider() :
- default_provider(0),
+ default_provider(CryptoRandomDataProvider::getInstance()),
current_provider(0)
{
-#ifdef USE_INSECURE_RANDOM
- static RandomDataProvider* insecure_random_data_provider =
- InsecureRandomDataProvider::getInstance();
-#else
- static RandomDataProvider* insecure_random_data_provider = 0;
-#endif
- static RandomDataProvider* secure_random_data_provider =
- SecureRandomDataProvider::getInstance();
-
- this->default_provider = (
- secure_random_data_provider ? secure_random_data_provider
- : insecure_random_data_provider ? insecure_random_data_provider
- : 0);
-
- // QUtil.hh has comments indicating that getRandomDataProvider(),
- // which calls this method, never returns null.
- if (this->default_provider == 0)
- {
- throw std::logic_error("QPDF has no random data provider");
- }
this->current_provider = default_provider;
}