crypto_bigint/modular/boxed_monty_form/
pow.rs1use super::BoxedMontyForm;
4use crate::{BoxedUint, PowBoundedExp, modular::pow::pow_montgomery_form_amm};
5
6impl BoxedMontyForm {
7 #[must_use]
9 pub fn pow(&self, exponent: &BoxedUint) -> Self {
10 self.pow_bounded_exp(exponent, exponent.bits_precision())
11 }
12
13 #[must_use]
19 pub fn pow_bounded_exp(&self, exponent: &BoxedUint, exponent_bits: u32) -> Self {
20 Self {
21 montgomery_form: pow_montgomery_form_amm(
22 &self.montgomery_form,
23 exponent,
24 exponent_bits,
25 &self.params,
26 ),
27 params: self.params.clone(),
28 }
29 }
30}
31
32impl PowBoundedExp<BoxedUint> for BoxedMontyForm {
33 fn pow_bounded_exp(&self, exponent: &BoxedUint, exponent_bits: u32) -> Self {
34 self.pow_bounded_exp(exponent, exponent_bits)
35 }
36}