aboutsummaryrefslogtreecommitdiffstats
path: root/src/elgamal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/elgamal.cpp')
-rw-r--r--src/elgamal.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/elgamal.cpp b/src/elgamal.cpp
index 65fd22180..bcb8a6cc0 100644
--- a/src/elgamal.cpp
+++ b/src/elgamal.cpp
@@ -7,6 +7,7 @@
#include <botan/numthry.h>
#include <botan/keypair.h>
#include <botan/util.h>
+#include <botan/libstate.h>
namespace Botan {
@@ -35,7 +36,10 @@ void ElGamal_PublicKey::X509_load_hook()
SecureVector<byte> ElGamal_PublicKey::encrypt(const byte in[],
u32bit length) const
{
- BigInt k = random_integer(2 * dl_work_factor(group_p().bits()));
+ BigInt k = random_integer(
+ global_state().prng_reference(),
+ 2 * dl_work_factor(group_p().bits()));
+
return core.encrypt(in, length, k);
}
@@ -50,11 +54,12 @@ u32bit ElGamal_PublicKey::max_input_bits() const
/*************************************************
* ElGamal_PrivateKey Constructor *
*************************************************/
-ElGamal_PrivateKey::ElGamal_PrivateKey(const DL_Group& grp)
+ElGamal_PrivateKey::ElGamal_PrivateKey(const DL_Group& grp,
+ RandomNumberGenerator& rng)
{
group = grp;
- x = random_integer(2 * dl_work_factor(group_p().bits()));
+ x = random_integer(rng, 2 * dl_work_factor(group_p().bits()));
PKCS8_load_hook(true);
}