aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFCrypto_gnutls.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/QPDFCrypto_gnutls.cc
parent52749b85df2e25c5ca35d5e0d07fbe4248b6f99b (diff)
downloadqpdf-77198d5310d961ba3605db74fe1d213bb5d19f34.tar.zst
Delegate random number generation to crypto provider (fixes #418)
Diffstat (limited to 'libqpdf/QPDFCrypto_gnutls.cc')
-rw-r--r--libqpdf/QPDFCrypto_gnutls.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/libqpdf/QPDFCrypto_gnutls.cc b/libqpdf/QPDFCrypto_gnutls.cc
index d9383064..c57e153f 100644
--- a/libqpdf/QPDFCrypto_gnutls.cc
+++ b/libqpdf/QPDFCrypto_gnutls.cc
@@ -30,6 +30,18 @@ QPDFCrypto_gnutls::~QPDFCrypto_gnutls()
}
void
+QPDFCrypto_gnutls::provideRandomData(unsigned char* data, size_t len)
+{
+ int code = gnutls_rnd (GNUTLS_RND_KEY, data, len);
+ if (code < 0)
+ {
+ throw std::runtime_error(
+ std::string("gnutls: random number generation error: ") +
+ std::string(gnutls_strerror(code)));
+ }
+}
+
+void
QPDFCrypto_gnutls::MD5_init()
{
MD5_finalize();