8 #include <botan/internal/openssl_engine.h> 9 #include <botan/internal/bn_wrap.h> 18 class OpenSSL_Modular_Exponentiator :
public Modular_Exponentiator
21 void set_base(
const BigInt& b) { base = b; }
22 void set_exponent(
const BigInt& e) { exp = e; }
23 BigInt execute()
const;
24 Modular_Exponentiator* copy()
const 25 {
return new OpenSSL_Modular_Exponentiator(*
this); }
27 OpenSSL_Modular_Exponentiator(
const BigInt& n) : mod(n) {}
29 OSSL_BN base, exp, mod;
36 BigInt OpenSSL_Modular_Exponentiator::execute()
const 39 BN_mod_exp(r.value, base.value, exp.value, mod.value, ctx.value);
51 return new OpenSSL_Modular_Exponentiator(n);
Modular_Exponentiator * mod_exp(const BigInt &, Power_Mod::Usage_Hints) const