diff options
author | Jay Berkenbilt <ejb@ql.org> | 2020-04-06 16:19:37 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2020-04-06 17:23:02 +0200 |
commit | 77198d5310d961ba3605db74fe1d213bb5d19f34 (patch) | |
tree | a92ae4e8056d6a8a5bf284c78460a6112710424e /libqpdf/QPDFCrypto_gnutls.cc | |
parent | 52749b85df2e25c5ca35d5e0d07fbe4248b6f99b (diff) | |
download | qpdf-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.cc | 12 |
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(); |