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